BGP协议 选路规则
一、技术背景
(1)当BGP设备学习到去往同一个目的网络的多条BGP路由(路径)时,设备将这些路由都装载到BGP路由表,并在这些条目中进行路由优选,最终决策出最优(Best)的路由,将该BGP路由加载到全局路由表中,作为数据转发的依据。
(2)当存在多路径时,BGP只会将其选择出来的最优路由通告给其他对等体。
(3)BGP定义了一系列路由优选规则,从而使得设备能够在多条路由中选择出最优的路由。BGP在选择路由时严格按照先后顺序比较路由的属性,如果通过当前的属性就可以选出最优路由,BGP将不再进行后面的比较。
BGP路由表示例 :
注:可用的(Valid),可用的路由在表项行首存在“*”号,可用意味着该BGP路由的Next_hop是路由可达的,设备在其全局路由表中查询到了去往该Hext_hop地址的路由,即认为该BGP路由可用。
优选的(best),最优的路由将出现“>”符号,它将被加载到设备的全局路由表中。
二、BGP路由优选规则
1.优选具有最大Preferred-Value的路由
2.优选具有最大Local_Preference的路由
3.优选起源于本地的路由
4.优选AS_Path最短的路由
5.Origin(IGP > EGP > Incomplete)
6.优选MED最小的路由
7.优选EBGP对等体所通告的路由
8.优选到Next_Hop的IGP度量值最小的路由
9.BGP路由负载分担
10.优选Cluster_List 最短的路由
11.优选Router-ID最小的BGP对等体发来的路由
12.优选Peer-IP地址最小的对等体发来的路由
三、Preferred-Value
(1)私有的路径属性,相当于路由的权重值,取值范围:0~65535;该值越大,则路由越优先。
(2)Preferred-Value只能在路由器本地配置,而且只影响本设备的路由优选。该属性不会传播给任何BGP对等体。
(3)路由器本地始发的BGP路由默认的Preferred-Value为0,从其他BGP对等体学习到的路由默认Preferred-Value也为0。
四、Local_Preference
(1)也即本地优先级属性,是公认自决属性,用于告诉AS中的路由器,哪条路径是离开AS的首选路径。
(2)Local_Preference属性值越大则BGP路由越优,缺省的Local_Preference值为100。
(3)该属性只能被传递给IBGP对等体,而不能传递给EBGP对等体。
五、源于本地的路由
(1)在其他条件相同的情况下,优选本地生成的路由(本地生成的路由优先级高于从邻居学来的路由)
(2)本地生成的路由包括通过network或import-route命令引入的路由、手工汇总路由和自动汇总路由。这些本地生成的路由之间的优选如下:
1.优选汇总路由(汇总路由优先级高于非汇总路由)。
2.通过aggregate命令生成的手动汇总路由的优先级高于通过summary automatic命令生成的自动汇总路由。
3.通过network命令引入的路由的优先级高于import-route命令引入的路由。
六、AS_Path最短的路由
AS_Path最短的路径则最优先。
七、Origin(IGP > EGP > Incomplete)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!