BGP 十一条选路原则与BGP路由传递的注意事项介绍
十一条选路规则
1.优选Preferred-Value 属性值最大的路由。
2.优选Local_Preference 属性值最大的路由。
3.本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合>自动聚合>network>import>从对等体学到的。
即本地产生的BGP路由更优先,而本地的路由又分为普通路由与聚合路由,其中聚合路由更优先。
4.优选AS_Path属性值最短的路由。
5.优选Origin属性最优的路由。Origin属性值按优先级从高到低的排列是:IGP、EGP及Incomplete。
6.优选MED属性值最小的路由。
7.优选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由)。
指学习到两条相同目的路由时,一条为IBGP路由,一条为EBGP路由,将优先选择EBGP路由。
8.优选到Next_Hop的IGP度量值最小的路由。
9.优选Cluster_List最短的路由。
经过反射簇次数最少的路由条目。
10.优选Router ID(Originator_ID)最小的设备通告的路由。
指学习到两条相同目的路由,其它属性一致,但通告的router-id(或反射后的路由Originator ID)不一致时,优先选择地址最小的通告者路由。
11.优选具有最小IP地址的对等体通告的路由。
选路规则口诀
1、在BGP路由选择中,如果存在多条路由的前8条规则相同,那么这些路由将会进行负载分担。
前8条相同路由会负载分担,但默认负载分担的条目只有1条,故只看到一个下一跳。
需要存在多个下一跳,需要在BGP模式中输入:
[实现IBGP路由负载分担]
maximum load-balancing ibgp 2[实现EBGP路由负载分担]
maximum load-balancing 2
虽然说前8条相同则在IBGP内负载,但对外EBGP不可能说存在两条相同的路由,故需要后3条进行选举出最优的路由传递给EBGP。
2、为了方便记忆这些规则可记忆该口诀:漂亮老男人(PL LAO MEN)
P= preferred-value协议首选值
L= Local_Preference本地优先级L= Local,本地始发路由的更优先
A= AS_Path
O= Origin起源M= Med值
E= EBGP对等体优先于IBGP
N= Next_Hop下一跳最小
BGP路由传递注意事项
1、建立邻居时,需要确保TCP可达
如何定义TCP可达?
两端都有对方的路由,中间设备无TCP过滤(TCP/179)
2、路由传递时,从IBGP邻居学习到的路由不会传递给IBGP邻居(水平分割机制,用来防止环路产生)
3、路由传递时,从EBGP邻居学习到的路由可以传递给其它EBGP邻居,也可以传递给IBGP邻居,但传递给IBGP邻居时,下一跳不变。
BGP在传递路由时,从EBGP邻居学习到的路由,发布给IBGP邻居时,下一跳不变。
【十大路径属性中Next_Hop缺省值定义提到】
为了解决EBGP下一跳不变,通过命令:
peer 邻居 next-hop-local
有下一跳改变,也有下一跳不改变:
peer 邻居 next-hop-invariable
4、在建立IBGP邻居时建议使用Loop环回口建立,保证网络的冗余性、可靠性。
避免使用物理接口建立邻居时,链路坏了还需要重新配置。
使用环回口建立邻居,如果一边不指定源环回口,一边指定源,结果还是会正常进行建立邻居的。
因为BGP只要建立起了一个TCP连接就能够建立起BGP邻居并传递路由。
在ENSP中,BGP建立双向邻居时,会产生两个TCP连接,但最终只会保留router-id大的一方发起的TCP连接。
但在实际环境中,BGP建立邻居产生的两个TCP连接,只会保留最后建立的TCP连接。
关于BGP的TCP连接数量个人见解
以IBGP使用环回口建立为例,如果双方路由器都相互指定环回口建立,那么在这个BGP对等关系中将会产生两条TCP连接。虽然最后会自动删除掉一条TCP连接,但这个过程还是消耗了设备与链路的一定资源。
当网络存在多个邻居,重复如此建立两条TCP连接,又删除一条连接的动作,对设备的负担和链路的负担是直线上升的。
为此,IBGP在使用环回口建立邻居时,进行单向的指定即可。
这样只会建立一条TCP连接,同时也能正常的进行传递路由。
5、在建立EBGP邻居时一般使用直连接口建立,因为EBGP邻居建立时考虑到安全问题,默认数据包的TTL为1,只有直连链路会接收并处理该数据包,非直连链路不会处理该数据包(TTL归0)。
如果通过环回口建立EBGP邻居,首先保证两台设备之间的环回口TCP可达,其次需要更改EBGP默认的TTL,才能让EBGP邻居之间通过环回口建立邻居关系。
1、EBGP邻居建立关系时,使用环回口建立:
peer 1.1.1.1 connect-interface loopback0
2、设置TTL最大跳数:
peer 1.1.1.1 ebgp-max-hop 100
6、运行BGP的设备,默认情况下同一条路由有多个下一跳时,只会将BGP路由表中最优且有效的路由,将进路由表中(即BGP路由条目左侧有*>)。
若该路由条目没有*也没有>,表示该路由条目并非最优的、非有有效的,自身不计算该路由同时也不会传递给其它邻居。(BGP只传递最优路由,只计算有效路由)
7、BGP的同步机制
同步机制,指路由器学习到一条IBGP路由时,默认不能将该路由通告给其它BGP对等体。
除非它又从IGP协议(例如OSPF等,此处也包含静态路由)学习到这条IBGP路由,也就是要求IBGP路由与IGP路由同步时才能将进行传递给其它BGP邻居。
同步规则主要用于规避BGP路由黑洞问题。
原因:我学习到该IBGP路由,我并不一定知道去往该路由的下一跳(学习到的IBGP路由并不一定有效)故不会使用且不会通告给其它IBGP邻居,如果我配置的IGP知道路由下一跳的话,我才就能使用和通告该路由。
扩展:华为设备默认禁止BGP路由同步机制,故学习到的IBGP路由可以传递给其它邻居。即使说该IBGP的下一跳不可达,也会进行传递出去。
关于BGP的一些疑惑记录
1、IBGP进行跨设备建立时,会产生BGP路由黑洞,那么如何解决BGP路由黑洞呢?
1、建立BGP全互联,BGP两两建立,但手动建立的命令数量过大。
2、配置BGP反射器,大减少命令配置。会打破原先的水平分割机制,但也引入其它防环机制(cluster-list、Originator ID)。
3、还有后面会介绍到的MPLS标签交换
2、跨设备配置BGP的好处?
减轻中间网络设备的负担
3、为什么说BGP一般传业务路由,不会传递邻居的链路信息?
假设两个EBGP邻居通过环回口建立建立邻居,必然需要提前配置去往对端环回口的静态路由(优先级60)。
那么EBGP中发布环回口的话,EBGP路由优先级为255,很明显没有静态路由的优先,故BGP一般传业务不传建立邻居路由信息。
IGBP建立发布也是一样的,底层的IGP路由肯定比IBGP的路由优先级高。
BGP 十一条选路原则与BGP路由传递的注意事项介绍相关推荐
- BGP十三条选路原则、路由反射器
BGP十三条选路原则 #当到达同一目的地存在多条路由时,BGP依照如下策略顺序进行选路 1:若此路由的下一跳不可达,则忽略该路由 2:优选协议首选值(PrefVal)最高的路由(华为私有特性) 3:优 ...
- bgp通告四原则_BGP的十三条选路原则
BGP的13条选路原则: 1.优选具有最大Weight值的路由 2.优选具有最大Local_Preference值的路由 3.优选起源于本地的路由(如本地network.aggregate或redis ...
- Cisco(37)——BGP的十三条选路原则演示
思科网络实验(34)--BGP的十三条选路原则 实验拓扑: 实验说明: 1.拓扑中含有三个AS,只有在AS10内存在三台路由器,在AS10内部运行EIGRP传路由,剩余的AS内部只有一台路由器. 2. ...
- Cisco(34)——BGP的十三条选路原则
思科网络实验(37)--BGP的十三条选路原则演示https://blog.csdn.net/hdq1745/article/details/98470286 consider only (synch ...
- BGP的十三条选路原则
BGP的十三条选路原则 1.优选具有最大Weight值的路由 2.优选具有最大Local_Preference值的路由(仅在IBGP对等体之间交换,不通告给其他AS) 3.优选起源于本地的路由(如本地 ...
- BGP 13条选路规则
边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议.BGP强大的选路规则正是BGP最大的亮点 Prefer highest weight (local to router). 首选权重 ...
- BGP的13条选路原则
一.Weight 权重 介绍:Cisco私有参数,范围0-65535,本地始发默认32768,其他默认0. 仅在本地有效,无法传递,且越大越优先. 例如:图1-1 在R1上宣告自己的回环口1.1.1. ...
- BGP属性+13条选路原则(转载)
原文:http://blog.sina.com.cn/s/blog_be409c2f0102x6sg.html BGP(Border Gateway Protocol)边界网关协议 BGP(Borde ...
- BGP------BGP工作原理、BGP属性及选路原则
BGP工作原理 一.BGP报文 1.open报文 作用:建立邻居.协商参数 open报文只在邻居建立时发送,不会周期发送 内容: version:BGP版本 My AS:自身的AS号 hold tim ...
最新文章
- Scrum项目1.0
- android studio 自动生成对象,在Android Studio中快速导入可绘制对象的方法?
- java tree json,基于jstree使用JSON数据组装成树
- DIV中class和id的区别
- PHP IE中下载附件问题
- mysql写什么不同_mysql - 编译配置PHP时,两种配置写法有什么不同
- SpringCloud微服务(05):Zuul组件,实现路由网关控制
- JS编程建议——32:使用制表
- 信息服务器怎么恢复,服务器数据恢复怎么弄
- 125w短波通信距离_125W军用自主选频短波电台
- 分布式系统认证方案_分布式系统认证方案_Spring Security OAuth2.0认证授权---springcloud工作笔记136
- GML C++ Camera Calibration Toolbox 相机标定畸变矫正
- 北京的一場演出-私人行程
- Windows删除服务
- python音频分析(一)绘制wav的时域频域图
- 最全的熬粥方法Word计算机考试怎么做,各种粥的做法大全Word文档.doc
- app兼容性测试方案
- 微信群运营怎么做?一文讲透社群活跃技巧及发展模式
- train_test_split(),随机划分训练集和测试集的函数
- 为什么outlook不能改成HTML格式,如何解决Outlook 2016中的HTML格式问题