BGP(3):BGP 的路径优选

BGP路径属性详解 一、BGP路径属性 1.1路径属性 1.2路径属性分类 1.2.1公认属性Well-Known ①公认必遵属性Well-known mandatory ②公认自由决定属性Well-known discretionary 1.2.2可选属性Optional ①可选传递的Optional non-transitive ②可选非传递的 Optional non-transitive 1.3BGP UPdate报文 1.4 Preferred-Value ①华为私有的路径属性,相当于路由的权重值,取值范围:0 阅读详情

10.3 BGP 的路径优选

BGP Speaker 在收到它的邻居发送过来的路由通告(BGP Update 报文)时,除了要泛洪出去(如果需要的话),还会根据通告中的路由信息处理自己的 BGP 路由表。

对于通告信息中的“Withdrawn Routes”信息,其处理相对简单,根据“Withdrawn Routes”中的二元组“<Length, Prefix>”列表,逐个删除 BGP 路由表中的对应的路由表项即可。

对于通告信息中的 NLRI(Network Layer Reachability Information),如果对应的目的地只有1条路径,那也简单,把相应的路由信息安装进 BGP 路由表即可。

但是,如果到达同一个目的地,存在多条路径,该将哪条路径所对应的路由信息安装进 BGP 路由表呢?或者说,BGP 的最优路径规则是什么呢?

BGP 的最优路径规则,简单地说,就是比较候选路径上的相关属性及这些属性的优先级,以选出相对最优的路径。

下面我们讲述这些属性的比较规则。

  • 第1优先级:Local_Perf

BGP 选择最优路径,首先考虑是域内的最优。也就是说,两条路径,如果其中一条是域内最优的,那么 BGP 就选这条了,再也不会管整体的所谓最短路径(最小 AS 跳数)。

而 BGP 所考虑的域内最优,是基于属性 Local_Pref,如图10-18所示。

 

图10-18 基于 Local_Pref 选择最优路径

图10-18中,R1 到达 8.8.8.0/24 网段的路由有2个。

(1)A 路径:AS1(R1-R2)-AS2-AS3-AS4-AS5-AS6

(2)B 路径:AS1(R1-R3)-AS7-AS6

显然,如果如果比较 AS_Path,则 B 路径比 A 路径要优的多(因为路径短)。但是 BGP 优选路径的第1优先级规则,不是最短 AS_Path,而是 Local_Pref。

这有点出人意料,却也在情理之中。毕竟路径长度影响的是时延,而本地优先级影响的则是带宽。在绝大部分场景下,带宽的优先级要大于时延。

说明:

(1)并不是说 Local_Pref 一定要与接口带宽挂钩,只是说,绝大部分场景下,接口带宽与 Local_Pref 有着强相关性

(2)AS_Path 最短,并不意味着实际的物理距离最短,只不过两者也有着一定的强相关性罢了

  • 第2优先级:AS_Path

最短路径终于粉墨登场!如果多条候选路径的 Local_Path 的值是一样的,那么 BGP第2优先级选路的指标就是“最短路径”。这个我们不做过多解释,因为这个符合直观感受。BGP 所谓的最短路径,就是看 AS_Path 里面的 AS 数量(经过了几个 AS),如图10-19所示。 

 

图10-19 基于 AS_Path 选择最优路径

图10-19中,由于第1优先级的 Local_Perf 没有分出“胜负”,所以基于第2优先级的 AS_Path“一决雌雄”,结果 B 路径“AS1(R1-R3)-AS7-AS6”胜出。

需要说明一点,既然是最短路径,为什么选择最短的 AS 跳数(AS_Path),而不是更直接更彻底的路由器(网关)跳数?答案是做不到!

在 BGP 当前协议中,直接与路径长短属性相关的就是 AS_Path,间接相关的,或者说仅有一点点关系的是 Next_Hop。AS_Path 顾名思义,只有 AS 跳数,而没有网关跳数。而 Next_Hop,顾名思义,只有1跳而已。要想通过 Next_Hop,推导出到达目的地到底要经过多少跳,这是 BGP 协议无法承担的重任。

  • 第3优先级:MED

BGP 选择最优路径的第3优先级就是 MED,如图10-20所示。 

 

图10-20 基于 MED 选择最优路径

图10-20中 R1 到达 8.8.8.0/24 网段的路径有2个。

(1)A 路径:R1(AS1)-R2(AS2)-R4(AS3)

(2)B 路径:R1(AS1)-R3(AS2)-R4(AS3)

两个条路径的 Local_Pref、AS_Path 两个指标都一样,按照第3个指标 MED(谁小谁优先),第1条路径“R1(AS1)-R2(AS2)-R4(AS3)”胜出。

不过 MED 有个特点,那就是“只有多条路径到达同一个 AS,MED 才有意义”,如图10-21所示。 

图10-21 目的地是不同 AS 的 MED

图10-21中 R1 到达 8.8.8.0/24 网段的路径有2个。

(1)A 路径:R1(AS1)-R2(AS2)-R4(AS3)

(2)B 路径:R1(AS1)-R3(AS3)-R4(AS3)

图10-21与图10-20最大的不同是:前者的“R2、R3”分属不同的 AS,而后者的“R2、R3”属于同1个 AS。这就造成了图10-21中,无法根据 MED 来选择哪条路径更优。

当然,即使是属于同1个 AS,如果多条候选路径的 MED 相同(Local_Perf、AS_Path 这两个参数的值也得相同),也无法选出哪条路径最优。

此时,只能依赖第4个参数。

  • 第4优先级:路由来源

BGP 选择最优路径所依据的前3个参数(Local_Perf、AS_Path、MED)都是路径的属性,第4个参数,则与路径属性无关,而与路由的来源有关。所谓路由来源,就是1个路由器所收到的路由信息,是通过 eBGP 路由通告还是 iBGP 路由通告。

BGP 的选路规则是:eBGP 的路由优于 iBGP 的路由,如图10-22所示。

   

 

图10-22 基于路由来源选择最优路径

图10-22中,R1、R2 分别与 R4 组建了 eBGP peer,R1 与 R2 组建了 iBGP peer。R1 通过 eBGP 和 iBGP 学习到了2条路由。

(1)路由 A(路由来源 eBGP):Dst = 8.8.8.0/24,Next_Hop = R4

(2)路由 B(路由来源 iBGP):Dst = 8.8.8.0/24,Next_Hop = R4

表面上看这两2路由没有任何区别,仅仅是来源不同。但是两条路由所经历的的网关跳数,其实是不一样的。

(1)路由 A 的跳数是1跳(R1-R4)

(2)路由 B 的跳数是3跳(R1-R3-R2-R4)

实际上,到达 AS 域外目的地,iBGP 学习到的路由,至少要比 eBGP 学习到的路由多1跳。所以,BGP 规定:(在其他指标都相同的情况下)eBGP 学习到的路由优于 iBGP 学习到的路由。

说明:

到目前为止,经过了4个参数的比较(Local_Perf、AS_Path、MED、路由来源),如果所选择的“最优”路径还是不止1条,那么就有2种作法。

(1)放弃比较,多条路径负载分担

(2)依据其他参数,继续比较下去

如果选择“放弃比较”,那需要 BGP 开启“负载分担”特性。但是一般来说,BGP 的“负载分担”特性都没有打开,所以绝大部分情况下,BGP 还得继续比较下去,一定要选出1个最优路径。

  • 第5优先级:路由学习时间

所谓路由学习时间,实际上指的是路由器接收 BGP 路由通告的时间。路由学习时间也不是 BGP 的路径属性,而是 BGP 程序本身记录下来的——什么时间收到了路由通告,就记录下来,作为相应路由的学习时间,如图10-23所示。 

图10-23 基于路由学习时间选择最优路径

图10-23中,如果前几个比较参数(Local_Perf、AS_Path、MED、路由来源)都相同,BGP 则会比较路由学习时间。我们假设 t1 < t2(即 t1 比 t2 更早),那么 BGP 则会选择路径“R1-R2-R4”。

BGP 选择“学习时间更早”的路由,是考虑到路由翻转。由于接口不稳定(一会 up,一会 down)等原因,BGP 的路由,就会出现路由翻转:一会增加这条路由,一会取消这条路由。而选择一个学习时间最长的路由,则这条路由出现路由翻转的概率就相对最小。

  • 第6优先级:Cluster_List

Cluster_List、Cluster ID,我们会放到10.4节再详细讲述。不过这2个概念与 BGP 最优路径选择相关,所以我们这里提前介绍一点相关的内容。

我们可以把 Cluster_List 类比为“AS_Path”,把 Cluster ID 类比为“AS ID”,这样的话,就可以理解 BGP 基于 Cluster_List 的最优路径选择规则:Cluster_List 最短者当选,所谓最短,就是 Cluster_List 里所包含的 Cluster ID 最少。

这个规则只有在 iBGP 选路时才会用到,因为 Cluster_List、Cluster ID 只与 iBGP 相关。

  • 第7优先级:下一跳的 Router ID

如果说以上参数(Local_Perf、AS_Path、MED、路由来源、路由学习时间、Cluster_ID)还是“讲道理”的话(毕竟参数值的不同,可以代表路径的优劣),那么接下来的参数跟“闭着眼随便选1个”也没有本质区别,因为这个参数是 Router ID。

BGP 的最优选路规则是:如果“Local_Perf、AS_Path、MED、路由来源、路由学习时间”这些参数的值都相同,那么下一跳的 Router ID 最小者,其所在路径为最优路径。如图10-24所示。 

 

图10-24 基于下一跳的 Router ID 选择最优路径

图10-24中,由于 R2 的 Router ID 比 R3 的小,所以 BGP 会选择路径“R1-R2-R4”。

说明:BGP的Router ID,BGP 在启用BGP协议的时候会自动赋值 Router ID,其赋值规则有2个。

(1)所有 loopback 地址中最大者为 Router ID

(2) 如果没有 loopback 接口,则所有处于 up 状态的物理接口地址最大者为 Router ID

  • 第8优先级:下一跳的 IP

“下一跳的接口 IP”这个参数,也是跟“闭着眼随便选1个”没有本质区别,其应用场景如图10-25所示。 

 

图10-25 基于下一跳 IP 选择最优路径

图10-25所描述的场景是多个接口之间创建了多条3层连接,而且其他参数(Local_Perf、AS_Path、MED、路由来源、路由学习时间、下一跳的 Router ID)都相同,此时 BGP 就根据下一跳 IP 选择最优路径,下一跳 IP 最小者当选。

对于图10-25来说,其最优路径是“R1.inf1-R2.inf1-R4”。

需要说明的是,到此为止,BGP 可能能选出1条最优路径,除非路由器接口 IP 重复。不过 IP 重复,这种异常情况,不是 BGP“最优路径规则”所要考虑的范围。

 

  • 小结

BGP 的最优路径选择规则,是将一系列的参数按照优先级排列,逐个比较,直至选出最优路径。

这一系列的参数,有2种分类方法。

(1)一种是按照参数的归属分类

(1.1)Local_Perf、AS_Path、MED、Cluster_List,属于 BGP 的路径属性

(1.2)路由来源、路由学习时间、下一跳的 Router ID、下一跳的 IP,则不属于 BGP 的路径属性

 

(2)另一种是按照是否“讲道理”来分类

(2.1)Local_Perf、AS_Path、MED、Cluster_List、路由来源、路由学习时间,这些参数是“讲道理”的,因为通过参数的比较,可以评估路径的优劣

(2.2)下一跳的 Router ID、下一跳的 IP,这2个参数是“不讲道理”的,根据它们无法评估路径的优劣。只是由于必须要选出1个“最优”路径,才不得已让这些参数“上马”。实际上它们与“闭着眼随便选1个”没有本质区别。

为什么一定要选1个“最优”路径呢?这是因为 BGP 在大部分场景下没有开启“负载分担”的特性,此时,如果到达同一个目的地存在多条路径,那 BGP 会一脸茫然。

如果开启了“负载分担”,那么 BGP 的参数是到“MED”为止。也就是说,如果根据 MED 选出了多条“最优”路径,那 BGP 也不会再比较下去,而是将这多条路径基于“负载分担”方案,当作“1”条“最优”路径。

BGP 的选路参数,对于 eBGP 和 iBGP 来说,绝大部分是相同的,只有1个例外,那就是“Cluster_List”。因为 Cluster_List 只是 iBGP 里面的一个概念。

我们将 BGP 的最优路径选择规则,总结为图10-26所示。 

 

图10-26 BGP 最优路径选择规则

我们继续将 BGP 最优路径选择规则总结为表10-4所示。

表10-4  BGP 最优路径选择规则

参数优先级

参数

参数比较规则

1

Local_Pref

Local_Pref 最大者当选

2

AS_Path

AS_Path 中包含 AS 最少者当选

3

MED

MED 最小者当选

4

路由来源

路由来源于 eBGP 者当选

5

Cluster_List

Cluster_List 中包含 Cluster_ID 最少者当选

6

路由学习时间

路由学习时间靠前者当选

7

下一跳 Router ID

下一跳 Router ID 最小者当选

8

下一跳 IP

下一跳 IP 最小者当选

BGP学习二:BGP通告原则,BGP反射器,BGP路径属性细致讲解,新手小白无负担 BGP通告原则,BGP发射器,BGP RR,BGP路径属性,community,MEO,本地优先级,AS_Path,locak preference,origin 阅读详情

相关推荐

BGP 路径属性 (Path attribute)

说明:该笔记作用于 BGP 路径属性讲解,及命令解析,参考即可 参考视频:红茶三杯 参考手册:../Cisco参考手册/综合参考/BGP.pdf 前置 BGP 路径规则建立在 BGP 路径属性的基础之上,只有了解了 BGP 路径属性,我们才能操作住 BGP 路由策略,其 BGP 路径属性拥有 13 种属性 我们可以通过特定工具,来控制 BGP 路径属性,从而来影响 BGP 的路由优选 路径属性存在的概念就是如此 0x01 属性分类 ???? BGP 属性大致分为如下二类 公认

m0_63825213的博客 2781

BGP路由优选(超详细的实验操作过程)

Ip地址规划,例如:R1连R2,则R1路由器IP为12.1.1.1/24,R2路由器IP为12.1.1.2/24,其他路由器同上。 基础命令: R1: bgp 100 peer 12.1.1.2 as-number 200 #与AS区域号为200内的12.1.1.2路由器建立对等体 ipv4-family unicast undo synchronization network 15.1.1.0 255.255.255.0 #将15.1.1.0网段宣告出去,注:宣告的网段一定要在自

weixin_49225555的博客 6560

实战分享:如何用Jetson Nano+HM30图传搭建低空YOLOv5检测系统(附VNC避坑指南)

本文详细介绍了如何利用Jetson Nano和HM30图传搭建低空YOLOv5检测系统,重点解决了无人机应用中的硬件连接和VNC延迟优化问题。通过对比WiFi直连与图传方案的优劣,提供了网络配置、VNC优化及YOLOv5模型加速的实战技巧,帮助开发者实现高效稳定的低空目标检测系统。

weixin_29174385的博客 110

BGP的路由优选原则

BGP的路由优选原则

cangyu51462的博客 1万+

Mann-Kendall检验全解析:从原理到11种变体及Python实现

本文全面解析Mann-Kendall检验,从基础原理到应对自相关、季节性等复杂数据的11种关键变体,如Hamed-Rao修正、季节性MK和趋势自由预白化(TFPW)。详细阐述各方法的适用场景与数学原理,并提供完整的Python实战代码,帮助研究者针对不同数据特性选择最稳健的趋势分析方法。

weixin_29050271的博客 457

HFSS入门学习笔记——微带一分四功分器的设计与仿真

功率分配器是将输入信号功率分成相等或不相等的几路功率输出的一种多端口无源微波网络,用于功率分配和功率合成。工程上常用的微带功分器有T型功分器和威尔金森功分器。经典的威尔金森功分器有几个缺点:①、多应用于低频段,高频段时,波长会与隔离电阻的尺寸相比拟,此时需要考虑电阻的分布参数效应;②、大功率应用时,隔离电阻的耗散功率要很大,因此隔离电阻的体积也会比较大。

weixin_42126696的博客 2万+

BGP的基础概念和BGP路径优选

为了方便管理不断扩大的网络,网络园区被分为不同的AS的自治系统,在早期的时候,EGP(内部网关协议)被用于不同的AS之间的动态路由的交换信息,但是EGP的设计比较简单,只发布网路路由可达的信息,而不对路由信息进行优选.BGP是为取代最初的EGP而设计的另一种外部网关协议。不同于最初的EGPBGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息。bgp的概述:BGP是一种实现自治系统AS之间的路由可达,并选择最佳路由的矢量性协议。

2302_80851659的博客 1309

COCO2017数据集类别分布深度解析

本文深入解析了COCO2017数据集的类别分布情况,包括80个常见物体的分类统计和样本数量分析。通过对比训练集与验证集的分布一致性,探讨了数据均衡性问题,并针对高频和低频类别提出了实用的数据预处理和模型训练建议,帮助优化计算机视觉任务的性能。

weixin_42533751的博客 369

BGP协议介绍总结(全干货)

想弄清bgp概念之前,先了解什么是bgp。bgp协议:边界网关协议(Border Gateway Protocol,BGP)是一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议。由于不同的管理机构分别控制着他们各自的路由选择域,因此,路由选择域经常被称为自治系统AS(Autonomous System)。

Hello 2万+

Mac电脑用Latex论文排版3天速成5天实战de笔记

我后悔了,这五天竞赛搞得我视力都下降了...一个冲动的决定后成为数模竞赛论文写手,3天速成+5天时间=点亮攻克latex写论文技能💡关于Overleaf我是Mac,曾经按照大部分推荐的方式用TEXshop+vs code,但是把模板导入就开始报错。跟着少之又少的适配mac的教程(此时我已知道大概是走错路了)改了配置也无效。海鲜市场找佬改了半天,佬问我:一定要用VC吗?我说,那倒也不是。于是佬推荐我overleaf,三下五除二帮我挑配了环境,美汁汁收了我30块钱。

luwanjoyce的博客 2247

手把手教你用EGM96模型校正DEM数据(含在线工具推荐)

本文详细介绍了如何使用EGM96地球重力场模型校正DEM数据中的高程偏差。通过对比WGS84椭球面与大地水准面的差异,解释了校正原理,并提供了从在线工具快速验证到Python脚本批量处理的全流程实战指南,帮助GIS开发者和数据分析师确保高程数据基准一致,提升空间分析精度。

ttt77的博客 1007

BGP(Broader Gateway Protocol)边界网关协议的十三条选路规则详情

注意:这里严格的说应该这样表述:我从两个BGP邻居各收到一条路由,这两条BGP路由有相同的路由前缀,首先这两条BGP路由的NEXT-HOP是不相同的,否则不具有可比性,那么我比较本地到达这两个NEXT-HOP的IGP度量值,谁metric小,我就会选谁。-默认情况下,只比较来自同一邻居AS的BGP路由的MED值,就是说如果同一个目的地的两条路由来自不同的AS,则不进行MED值的比较,如果仍希望比较来自不同邻接AS对的路由,可使用如下命令。

weixin_45216877的博客 1822

CANoe如何实现TLS协议

TLS,Transport Layer Security,传输层安全协议。是在传输层和应用层之间,为了保证应用层数据能够安全可靠地通过传输层传输且不会泄露的安全防护。

jasonj333 1159

BGP 路由优选系列脚本: Local_Preference 属性

实验拓扑包含 5 台设备(AR1 - AR5),分属 3 个自治系统(AS100、AS200、AS300)。AS200 内运行 OSPF,各设备通过特定接口互联,且所有设备创建 Loopback0 接口,IP 地址为 10.0.x.x(x 为设备编号),并以环回口地址作为 Router ID。AS 内部基于 Loopback0 建立 IBGP 对等体关系,AS 之间基于直连接口建立 EBGP 对等体关系,R4、R5 将相同网段 10.0.45.0/24 的直连路由注入 BGP,用于验证规则。

仕别三日的博客 1138

Spring AI Alibaba实战训练营-13语音生成应用开发指南

本文介绍了如何基于Spring AI Alibaba创建DashScope语音应用,支持文本转语音(TTS)和语音转文本(STT)功能。主要内容包括:1)环境准备要求Java 17+、Maven 3.6+及阿里云DashScope API Key;2)通过Spring Initializr创建项目并配置相关依赖;3)设置API密钥的安全配置方法;4)实现语音合成的同步和流式功能,包括创建控制器类、调用API接口及保存语音文件。文章提供了详细的代码示例和配置说明,帮助开发者快速搭建语音处理应用。

program哲学 402

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

BGP选路原则--Ebgp>Ibgp(7)

如图,R1和R4上都配置了loopback10:10.10.10.10/32,都通过network的方式宣告出去,R3通过IBGP学到了从R2传递过来的路由,R3通过EBGP学到了从R4传递过来的路由。查看R3的BGP路由表可以看到,R3优选了通过EBGP学到的10.10.10.10的路由。

网工_大智兄的专栏 377

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

BGP路由优选规则

BGP路由优选规则一、技术背景二、路径属性2.1 定义2.2 分类三、BGP的选路规则四、BGP属性选路配置4.1 根据local-prefernce控制选路(越大越优)4.1.1 基本概念4.1.2 local-prefernce常用命令4.1.3 实验4.2 使用AS-PATH属性控制选路(越少越优)4.2.1 基本概述4.2.2 as-path 常用命令4.2.3 实验 一、技术背景 当BGP设备学习到去往同一个目的网络的多条BGP路由(路径)时,设备将这些路由都装载到BGP路由表,并在这些条目中

码海小虾米_的博客 2595

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

BGP路由优选

BGP采用路径属性进行路由优选,具有丰富的可比较项是得路由器可以在任何复杂的网络环境下选择出最优的路径以上均为个人笔记,总结于华为技术有限公司学习资料和网络平台资源。

lulinhao的博客 1762

BGP 全网最详解(理论及配置)

为方便管理规模不断扩大的网络,网络被分成了不同的AS(Autonomous System,自治系统)。早期,EGP(Exterior Gateway Protocol,外部网关协议)被用于实现在AS之间动态交换路由信息。但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求。BGP是为取代最初的EGP而设计的另一种外部网关协议。不同于最初的EGP,BGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息。

Lxyand1的博客 2万+

BGP路由优选+EVPN

BGP 的路由优选规则是一套多步决策链,用来确定在多个可行路由中选择最优的路由。BGP 是一种路径向量协议,通过这些优选规则,网络管理员可以控制数据流量的流向,确保网络的稳定性和效率。下面以一个实例来详细说明 BGP 的优选规则及其链条。

怨行客 1689

BGP路由优选原则和团体属性

路由优选13项从上到下进行选取

Hzhile的博客 1603

BGP学习三:BGP路由优选12条规则,闪亮登场啦啦啦啦啦

BGP路由优选12条规则,丢弃下一条不可达,选择首选优先级最高,选择本地优先级最高,本地路由大于BGP学习,AS-path最短,Origin来源,i>e>? MED最小,EBGP>IGNGP,next-hop开销最小,p l l ao man

m0_71203750的博客 1669
上一篇: BGP(2):BGP 的报文格式
下一篇: 这可能是最为详细的Docker入门吐血总结
废言Pro
博客等级 码龄16年 1092粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值