我们都知道BGP最明显的特点就是:丰富的路由属性。这样才使得BGP可以更好地控制路由的传播。要充分利用好这些路由属性,就需要制定一些原则,才能更公平地去PK相同路由,进行优胜劣汰。BGP选路原则有13条,之前我与大家分享了第一条:首选值。如果BGP收到相同的路由,首选值如果也相同的话,那么就会继续PK下一条原则,即本期要分享的:本地优先级Local_Pref
1
拓扑图
2
配置思路
2、规划好IP地址,标注在拓扑上,IP地址规划规则,如图。R1与R2互联之间网段就用12.1.1.0/24,R1接口就用12.1.1.1/24, R2 接口就用12.1.1.2/24 。3、配置router id。4、配置IGP路由(先把全网打通了,再去配BGP,因为我们都知道BGP是基于TCP的,全网都不通,TCP怎么能建立连接 是吧?),这里我全网就配OSPF路由协议,都在区域0.5、配置BGP。6、修改本地优先级,进行相关测试。
3
关键配置
惯例,router id 、接口ip配置方法这里不再示例。
1、配置IGP路由协议:
R1# (其他路由器参考如下配置。)
2、配置BGP路由协议:
R1#
#
bgp 100
peer 12.1.1.2 as-number 200
peer 13.1.1.3 as-number 200
#
R2#
#
bgp 200
peer 4.4.4.4 as-number 200
peer 4.4.4.4 connect-interface LoopBack0
peer 12.1.1.1 as-number 100
#
R3#
#
bgp 200
peer 4.4.4.4 as-number 200
peer 4.4.4.4 connect-interface LoopBack0
peer 13.1.1.1 as-number 100
#
R4#
#
bgp 200
peer 2.2.2.2 as-number 200
peer 2.2.2.2 connect-interface LoopBack0
peer 3.3.3.3 as-number 200
peer 3.3.3.3 connect-interface LoopBack0
#
4
测试
接下来,我打算在R1发布2条BGP路由,然后在R4查看。
这两条路由分别为:10.10.10.10/24和20.20.20.20/24
1、先在R1创建两个loopback口,然后分别配置上述那两个IP地址。
2、宣告到BGP进程中
3、在R4查看BGP路由,可以看到学到2条Ebgp路由:
从图,可知,R4如果要去往这2个目的地(10.10.10.10或20.20.20.20),都是走R2。
关于为什么会走R2,这里不再重复解释,不清楚的同学,可以浏览之前的文章。
本期主要来研究一下本地优先级,让大家更清晰地了解这个属性。从上图,R4的ebgp路由表,我们可以看到 首选值,默认都为0 ,然后根据BGP路由选路原则,就会继续pk下一条,第二条就是本地优先级,默认都为100,因为本地优先级都一样,所以继续pk下一条,后面几条,后续再与大家分享。接下来,我们尝试修改一下本地优先级,一起认识一下这个属性。
4、在R3设备上修改本地优先级:
现在,我们再R4看看那2条ebgp路由:
从上图可知,R4从R3收到的ebgp路由,关于本地优先级这个属性,已经修改为2000了,并且去往这个两条路由,走R3了。
到这里,我们可以得出结论: 本地优先级的值,是越高越优先。
接下来,我们想更深入了解一下本地优先级的传播范围:5、紧接上面的配置,我们在R2、R3查看一下这2条ebgp路由:
上述2张图,告诉我们不管是否有修改本地优先级的值,本地查看这个2条路由,均为空。那么我们就通过抓包来研究看看。
为了使在R3抓包能捕获到bgp的路由更新报文,先在R3的G0/0/0口和G0/0/1口处进行抓包,然后在R1的G0/0/1口shutdown一下,然后在undo shutdown。
R3的G0/0/0口处抓包如下:
R3的G0/0/1口处抓包如下:
同理,我也在R2的G0/0/0和G0/0/1也抓包看看:
R2的G0/0/0口处抓包如下:
R2的G0/0/1口处抓包如下:
总结,到这里我们已基本认识这个属性了:
1、本地优先级这个属性,只能在AS内传播。2、修改本地优先级属性值,这个值只作用本AS内的其他设备。(说白了,就是设备收到bgp路由后,给这条路由打算本地优先级属性值,如果没修改就打默认值100)3、值越大,越优先。