BGP的路径属性及选路规则

news2024/11/17 4:48:05

路径属性


路径属性对于BGP而言,BGP路径属性描述了该条路由的各项特征,同时,路由携带的路径属性也在某些场景下影响BGP路由优选的决策。

  • 公认属性-----所有的BGP路由器均可以识别的属性
    • 强制属性-----指当BGP路由器使用update报文通报路由更新时,必须携带的路径属性
    • 自由决定属性---指当BGP路由器使用update报文通告路由更新时,不要求必须携带的路径属性

  • 可选属性-----不要求所有的BGP路由器都可以识别的路径属性
    • 传递属性----如果BGP路由器不能识别该路径属性,那么也应该接受携带该路径属性的BGP路由更新报文,并且当路由器将该路由通告给其他对等体时必须携带该路径属性
    • 非可传递属性----如果BGP路由器不能识别该路径属性,那么该路由器将会忽略携带该属性的BGP更新报文,并且不会将路由通告给其他BGP对等体。
属性名类型
AS_Path(AS路径属性)公认 强制
Origin(起源属性)公认 强制
Atomic_Aggregate(预警属性)公认 自由决定
Aggregator可选 传递
Originator-ID(起源ID)

可选 非传递

Cluster-List(集群列表)

可选 非传递

Next-Hop (下—跳属性)公认 强制
Local_Preference (本地优先级)公认 自由决定
MED(多出口区分属性)

可选 非传递

Preferen-value(优选值)华为私有属性
Community(团体属性)可选 传递

BGP的优选规则

当到达同一个目的网段存在多条路由时,BGP通过如下的次序进行路由优选:丢弃下一跳不可达的路由。
1.优选Preferred-Value属性值最大的路由。

2.优选Local_Preference属性值最大的路由。

3本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合 > 自动聚合 > networkoimport > 从对等体学到的.

4.优选AS_Path属性值最短的路由。

5.优选origin属性最优的路由。Origin属性值按优先级从高到低的排列是:IGP、EGP及incamplete。

6.优选MED属性值最小的路由,

7.选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由).

8.优选到Next_Hop的IGP度量值最小的路由,

9.优选Cluster_List最短的路由。

10.优选Router lD (orginator__ID)最小的设备通告的路由。

11.优选具有最小护地址的对等体通告的路由.
 

选路的前提条件:任何一条BGP路由在参与优选之前都必须先经过检查。设备会检查BGP路由的next-hop是否可达(在本地路由表中检查),若不可达,则BGP路由被视为不可用,该路由将无论如何都不会被优选,也不会被设备使用或通告给其他对等体。在优选规则之前,还有需要保证所有的路由的优先级相同,也即是255.

1.优选Preferred-Value属性值最大的路由。

 PreVal----PV 属性,是华为的私有属性,可以看做权重,数值越大,对应的路由优先级越高,默认值为0。

因为PV值是所有选路原则中的第一条原则,所以,该属性是本设备上选路最方便的一个属性。-…-该属性只有在本地生效,无法传递给任何BGP对等体。

方法一:全局修改

[r4-bgp]peer 10.1.34.3 preferred-value 60000 ---该命令用于将对等体10.1.34.3传递过来的路由的PV值在本地修改为60000。pv值范围(0-65535)。
 

该命令是全局修改方式,可能会导致R3压力过大,最终设备宕机。而我们更希望实现的效果是负载分担。---.让不同的流量走不同的线路,分担单—线路的数据压力。
 

方法二:精细化修改

1、抓取流量

[r4]ip ip-prefix PV permit 10.10.0.0 16


2、配置策略

[r4]route-policy Pv permit node 10

[r4-route-policy]if-match ip-prefix PV

[r4-route-policy]apply preferred-value 100

[r4]route-policy Pv permit node 20

3、调用策略

[r4-bgp]peer 10.1.34.3 route-policy PV import----因为该属性为私有不传递属性,故调用时,只能在本地的入方向调用,来影响本地的BGP路由表。

(出--影响别人;入:影响别人和自己)

属性名称传播范围默认值

评判标准

preferred-value不传播0(0-65535)越大越优先

2.优选Local_Preference属性值最大的路由

该属性的默认值为100,并且LP属性只能在IBGP对等体之间传递,而不能在EBGP对等体之间传递。如果路由在传递到本地时并不携带LP属性,则BGP在决策时,使用缺省值来计算。该属性越大越优。该属性的传递范围为本AS内部。该属性是AS内部优选路由的最佳选择。

方法一:全局修改

[r3]bgp 234
[r3-bgp]default local-preference 200---修改全局默认LP值,R3之后发给IBGP对等体的路由的LP属性都将被修改为200
 

方法二:精细化修改

1.抓取流量

[r4]ip ip-prefix LP permit 10.11.0.0 16
 

2.配置策略

[r4]route-policy LP permit node 10

[r4-route-policy]if-match ip-prefix LP
[r4-route-policy]apply local-preference 200

[r4]route-policy LP permit node 20
 

3.调用策略

[r4-bgp]peer 3.3.3.3 route-policy LP import

属性名称传播范围默认值

评判标准

Local_PreferenceAS内部0100越大越优先

3.本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合>自动聚合>network>import>从对等体学到的。

4.优选AS_Path属性值最短的路由。

AS-Path属性

一台路由器将BGP路由通告给自己的EBGP对等体时,会将本地的AS号插入到该路由原有的AS_Path之前。

作用:

  • 可以实现EBGP路由的环路避免
  • 用于BGP路由优选的决策
    • AS-Path属性越短则该路由越优,因为这条路径距离目的地所要经过的AS个数更少。

AS_Path属性最开始是空的列表,当该路由被通告给一个EBGP对等体邻居时,才会被加上一个AS号,在每次经过一个AS时,都会在AS_Path属性的最前端增加最新的AS号。而该属性在IBGP对等体之间传播时,这条属性是不会发生改变的。
 

方法一: 

1.抓取流量

[r1]ip ip-prefix AS permit 10.13.0.0 16


2.配置策略

[r1]route-policy AS permit node 10
[r1-route-policy]if-match ip-prefix AS
[r1-route-policy]apply as-path 11 22 33 overwrite -----覆盖操作
[r1]route-policy AS permit node 20


3.调用策略

[r1-bgp]peer 10.1.13.3 route-policy As export


 

方法二:

1.抓取流量

[r3]ip ip-prefix AS permit 10.13.0.0 162


2.配置策略

[r3]route-policy As permit node 10
[r3-route-policy]if-match ip-prefix AS
[r3-route-policy]apply as-path 11 22 33 additive
[r3]route-policy AS permit node 20


3.调用策略

[r3-bgp]peer 10.1.13.1 route-policy AS import

additive参数(只能在前面添加AS)

  • 在原有AS_Path属性的基础上添加配置的AS号,在最前方添加。

overwrite参数(常用,随机位置添加AS)

  • 直接覆盖原有的AS-Path属性
  • 优势在于灵活多变
    • 隐藏陆游的真实路径信息
    • 用于形成负载均衡
    • 缩短AS-Path长度
[r3-route-policy]apply as-path none overwrite将AS_Pah属性列表更改为空表

overwrite重写参数additive添加参数
出方向先重写,在添加上发出者的AS号先添加,再增加发出者的AS号
入方向直接覆盖原有的所有内容直接在原本的AS之前添加内容

强调一下,AS_Path属性是BGP非常重要的属性,EBGP路由的防环依赖于AS_Path属性的正常工作,因此,如果出于影响路由优选的目的修改AS_Path属性,操作需要非常慎重,一般情况下,不建议修改AS_Path属性值。若不得不修改该参数,建议添加或覆盖的AS号为曾经出现过的AS号,这样既加长了AS_Path长度,又对网络的影响降低到最小。
 

[r3-bgp]bestroute as-path-ignore ----让路由器在选路时,忽略对AS_Path属性的检查。该命令经常会被使用在实现BGP负载分担时。


 

属性名称传播范围默认值评判标准
AS-PathBGP所有对等体之间该属性为列表,初始为空记录的数据越少越好

5.优选Origin属性最优的路由。Origin属性值按优先级从高到低的排列是:lGP、EGP及lncomplete。
 

OGN起源码一共存在三种

  • i --- 代表该条路由信息起源于AS内部使用network通告出来的(不限于IGP)
  • e --- 代表该条路由信息起源于EGP协议
  • ? --- 除了以上两种

 

1.抓取流量

[r2]ip ip-prefix aa permit 10.14.0.0 16

2.配置策略00

r2]route-policy aa permit node 10

[r2-route-policy]if-match ip-prefix aa

[r2-route-policy]apply origin egp 23

[r2]route-policy aa permit node 20

3.调用策略

[r2-bgp]peer 10.1.24.4 route-policy aa export


 

6.优选MED属性值最小的路由

MED----多出口鉴别属性

MED值是继承了IGP协议的度量值。

MED属性值可以传递给自己的EBGP对等体,并且该EBGP对等体可以将该路由传递给自己的IBGP对等体,并且因为AS-BY-AS规则,该属性在IBGP对等体之间传递时不变。

MED属性可以干扰访问本地的流量走向。也就是说,本AS的调整可以影响到别的AS对路径的判断,这是在BGP选路中唯一一个可以影响到其他AS的属性

BGP规定,非本地始发的BGP路由信息,在传递给自己的EBGP对等体时,将MED值修改为0.

边界设备均发布路由信息。

总结:

        MED值默认初始值并不为0,而是继承了路由表中该路由条目的开销值,所以,MED参数可以反映到达目的网段在本AS内部的开销大小,通过这个参数,别的AS的流量在进入本AS时可以选择开销较小的入口进入。通过修改该属性,可以影响其他AS的流量流入本AS路径。

        若本地通过IBGP对等体学习到一条BGP路由,其中存在MED值,之后需要将这条路由在传递给本地的EBGP对等体时,则不再携带该属性。这种设置将有可能造成选路不佳的情况,所以,建议,如果存在多组边界设备需要将路由发送给EBGP对等体关系时,需要将所有的路由信息均发布。
 

MED的传播范围只能是在发布该路由的AS以及他直连的AS内部。
 

注意:

MED值影响的是别的AS的流量通过多个出口进入到本AS内部,如果流入的不是同一个AS,也就是说收到的路由条目中的AS_Path属性最左边的AS号不同,则将不比较第六条,直接比较第七条。
 

[r4-bgp]default med 10----全局修改MED值

该命令仅对本地聚合路由或者引入的路由才有意义,并且是在传递给EBGP对等体时才会携带。
 

出方向---R2

1.抓取流量

[r2]ip ip-prefix MED permit 10.14.0.0 16

2.配置策略

[r2]route-policy MED permit node 10
[r2-route-policy]if-match ip-prefix MED
[r2-route-policy]apply cost 20
[r2]route-policy MED permit node 20


3调用策略

[r2-bgp]peer 10.1.24.4 route-policy MED export
属性名称传播范围默认值

评判标准

MED本AS及直连AS内部继承全局路由表中的开销值越小越优

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/438936.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习实战:Python基于DT决策树模型进行分类预测(六)

文章目录 1 前言1.1 决策树的介绍1.2 决策树的应用 2 Scikit-learn数据集演示2.1 导入函数2.2 导入数据2.3 建模2.4 评估模型2.5 可视化决策树2.6 优化模型2.7 可视化优化模型 3 讨论 1 前言 1.1 决策树的介绍 决策树(Decision Tree,DT)是一…

R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习技术应用

Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,最早出现于“循证医学”,现已广泛应用于农林生态,资源环境等方面。…

【springboot】缓存之@Cacheable、@CachePut、@CacheEvict的用法

目录 一、注解参数说明1.1 属性说明1.1.1 value/cacheNames 属性1.1.2 key属性1.1.3 keyGenerator属性1.1.4 cacheManager属性1.1.5 cacheResolver属性1.1.6 condition属性1.1.7 unless 属性1.1.8 sync 属性 1.2 Cacheable注解1.3 CachePut注解1.4 CacheEvict注解1.4.1 allEntr…

低代码产品如何分类,大部分人都没有搞清楚

最近许多技术峰会都出现了低代码这个名词,可以说,低代码是中台之后,又一个热门话题和名词了。 一、什么是低代码平台? 低代码平台是无需编码或通过少量代码就可以快速生成应用程序的开发平台。也是一款图形化、拖拉拽方式快速实…

hadoop伪分布式安装

文章目录 1. 将安装包hadoop-3.1.3.tar.gz上次至linux中2. 进行解压操作3. 修改目录名称4. 配置环境变量5. 修改自定义配置文件5.1 hadoop-env.sh5.2 core-site.xml5.3 hdfs-site.xml5.4 workers 6. 格式化集群7. 免密登录8. 启动hdfs9. 关闭hdfs 1. 将安装包hadoop-3.1.3.tar.…

群晖NAS与阿里云盘同步的方法

同步方法:通过在 docker 中安装 aliyundrive-webdav 实现与阿里云盘同步。 下载和安装 aliyundrive-webdav 在 docker 的注册表中搜素 aliyun,选择点赞比较多的 messense/aliyundrive-webdav: 下载后安装。建议在配置和启动之前&#xff…

Docker 的安装和镜像容器的基本操作

文章目录 一、Docker 概述1、Docker的概念2、容器的优点3、容器与虚拟机的区别4、容器在内核中支持2种重要技术5、Docker核心概念 二、Docker的安装1、docker的安装步骤2、实例操作:安装docker 三、Docker 镜像操作1、搜索镜像2、获取镜像3、镜像加速下载4、查看镜像…

基础工业工程(易树平、郭伏)——第三草 工作研究

第三草 工作研究 第一节 工作研究概述 一、工作研究的对象 工作研究的对象是作业系统,这是一个由多个相互关联的因素所组成的有机整体,旨在实现预定的功能和目标。作业系统的目标表现为输出一定的“产品”或“服务”,主要由材料、设备、能…

超级简洁、彻底组件化的轻量级Android Kotlin Jetpack MVVM组件化框架

结构 特点: 彻底组件化,且更简洁,Module具有独立的Application、AndroidMinifast、资源文件等;Application和Library的切换更加快捷;超级简洁、且多功能的网络层封装,自带2级缓存,App端内嵌了日…

盛元广通高校实验室安全智能管理平台

实验室安全问题一直以来都是高校管理的重点,依据《高等学校实验室安全规范》相关要求,应教育相关部门以及应急管理部门的相关规定,关于安全工作的系列重要指示和部署,必须按照危险源管控分级管理体系对实验室进行分级分类管理&…

ebay、速卖通、ozon销量下滑怎么办?怎样可以提高转化率

单量不好,就开始焦虑,而真正需要了解为什么会出现销量下滑的原因,从不断更新自己的知识,提高自己的技能,如何提高自己的技能呢? 把所学到的知识学以致用,listing的评分,退货率&…

ESP32学习四-自定义分区表

1、简介 ESP32-WROOM-32集成了4MB SPI FLASH。对应的,也会对这4MB FLAHS进行分区处理。在编译esp32程序时,通过make menuconfig -> Partition Table可以设置三种分区。 工厂程序(无OTA分区) 工厂程序(双OTA分…

自旋锁/读者写者问题

自旋锁 自旋锁的概念和理解 锁在处理需要申请加锁的线程的时候,一般有两种处理方法:一种是挂起等待,另外一种是自旋。自旋即轮询。 挂起等待: 当一个线程成功申请锁,并进入临界区后,其它线程在申请的时候…

【经验分享】硬件工程师需要知道的DFM可制造性设计

最近,有硬件工程师朋友找我讨论DFM,也就是可制造性设计。Design for Manufacturability。 什么是可制造性设计,看一张图很容易明白: 过大的PCB,无法上产线批量生产,极大的PCB面积浪费,自然是失…

Spring Batch 指南

SpringBatch 介绍 目前,Spring Batch是批处理框架界为数不多的优秀框架(Java语言开发)。 Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。 Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,…

.Net 6.0 部署Linux+Nginx +PM2教程

今天带大家将本地.Net6.0项目部署到Linux系统中,其中有用到Nginx反向代理和PM2进程管理工具,希望本偏文章能对你有所帮助,成为你成功路上的垫脚石! 背景: 在.Net 5.0横空出世之后,.Net已经支持夸平台了,身为一名合格的码农,你敢说你不会用Linux? 哈哈哈开个玩笑,因为工作最近接…

Idea启动运行报错:Error:java: 无效的源发行版: 13

最近在做Springboot项目时,常常出现上述错误,小编也不知道怎么回事,到网上找了这个方面的解决办法,但是却发现根本解决不了,最终通过小编多次尝试,终于发现,为什么会报这个错误。(应该是Java版本…

基于广泛数据增强的新型白质束ONE-SHOT分割

文章目录 One-Shot Segmentation of Novel White Matter Tracts via Extensive Data Augmentation摘要方法One-Shot分割的广泛数据增强 实验结果 One-Shot Segmentation of Novel White Matter Tracts via Extensive Data Augmentation 摘要 探索了新WM束的One-Shot分割问题由…

Kubernetes 如何保障容器可用性?一文介绍探针的使用

有时候,应用因为无限循环或死锁而停止响应,为确保应用在这种情况下可以重新启动,需要有一种机制检查应用程序的运行状况,而不是依赖应用程序内部的检测。 K8s 主要提供了三种探针来针对这种机制: 存活探针&#xff1a…

Swift之深入解析内存安全

一、内存安全 一般来说,Swift 会阻止代码中的不安全行为。例如,Swift 会保证变量在被使用前已经初始化,在释放某变量后其内存也会变得不可访问,以及检查数组索引是否存在越界错误。Swift 还通过要求修改内存中位置的代码具有对该…