哈喽,大家好,好久没跟大家继续分享BGP路由选路规则了。今天接着聊聊BGP路由优选原则,龙哥希望通过一些小实验能够帮助大家理解BGP路由优选原则。截止,我们已经掌握了9条的BGP路由选路原则如下:(如果您正在备考HCIE认证,建议您在理解这些规则的基础上熟记,心里能默背出来最好了)

1、首选值(华为特性)。默认为0,值越高越优选。

2、Local-preference。默认为100,值越高越优选。

3、优选本地生成路由(0.0.0.0)。手工聚合>自动聚合>network>import

4、优选最短的AS路径(AS_Path)。

5、优选Origin类型(i>e>?)。6、优先MED值较小的。7、ebgp路由优于ibgp路由。8、优选下一跳IGP metric较小路由。9、以上全部相同(8条),可以开等价负载。

本期与大家分享的是第10条BGP路由优选原则:

优选Cluster-list最短的



一、拓扑图



BGP路由优选原则:优选Cluster-list最短的_java

(若看不清楚,可单击,放大查看)



二、思路


1、环境准备。(根据拓扑图搭建,规划好IP地址段、BGP AS号等)
2、基础配置。(修改设备名、创建loopback 0口、配置直连IP地址。)3、配置路由。(使用IGP,如OSPF实现全网可达。)
4、配置BGP。
5、R1新增路由。(创建loopback10,ip地址为:10.10.10.0/24,宣告BGP)
6、查看BGP路由。(在R7、R8、R9观察各自反射器发送的BGP路由)7、R4也设为反射器,R7为R4的客户机,R4与R3形成ibgp,R7取消与R3形成ibgp。
8、再次查看BGP路由。



三、配置过程


01

环境准备


略(参考开头拓扑图搭建即可)


02

基础配置


这里以R1为例,其他设备参考即可。IP地址规划这块,我习惯性跟设备名关联。

如R1与R2互联, 那么互联网段就为:12.1.1.0/24 ,如果是R1,最后一字节就为1,即12.1.1.1/24,R2最后一字节就为2,即12.1.1.2/24

其他网段参考类似规划。


R1 基础配置如下:

<Huawei>sys

[Huawei]sys R1

[R1]

[R1]int lo 0

[R1-LoopBack0]ip add 1.1.1.1 32

[R1-LoopBack0]qu

[R1]int g0/0/0

[R1-GigabitEthernet0/0/0]ip add 12.1.1.1 24

[R1-GigabitEthernet0/0/0]quit

[R1]int g0/0/1

[R1-GigabitEthernet0/0/1]ip add 15.1.1.1 24

[R1-GigabitEthernet0/0/1]undo shut

[R1-GigabitEthernet0/0/1]quit

[R1]




02

配置路由


使用IGP,本次实验我将实验OSPF路由协议,9台设备都运行再OSPF 区域0中,实现全网可达。


R1的OSPF配置如下:

[R1]ospf

[R1-ospf-1]area 0

[R1-ospf-1-area-0.0.0.0]net 12.1.1.0 0.0.0.255

[R1-ospf-1-area-0.0.0.0]net 15.1.1.0 0.0.0.255

[R1-ospf-1-area-0.0.0.0

(我这里没有宣告loopback0,因为我待会bgp 使用直连接口去建立ebgp邻居关系)


R2的OSPF配置如下:

[R2]ospf

[R2-ospf-1]area 0

[R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0

[R2-ospf-1-area-0.0.0.0]net 12.1.1.0 0.0.0.255

[R2-ospf-1-area-0.0.0.0]net 23.1.1.0 0.0.0.255

[R2-ospf-1-area-0.0.0.0]


R3的OSPF配置如下:

[R3]ospf

[R3-ospf-1]area 0

[R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0

[R3-ospf-1-area-0.0.0.0]net 23.1.1.0 0.0.0.255

[R3-ospf-1-area-0.0.0.0]net 34.1.1.0 0.0.0.255

[R3-ospf-1-area-0.0.0.0]



R4的OSPF配置如下:

[R4]ospf

[R4-ospf-1]area 0

[R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0

[R4-ospf-1-area-0.0.0.0]net 47.1.1.0 0.0.0.255

[R4-ospf-1-area-0.0.0.0]net 34.1.1.0 0.0.0.255

[R4-ospf-1-area-0.0.0.0]


R7的OSPF配置如下:

[R7]ospf

[R7-ospf-1]area 0

[R7-ospf-1-area-0.0.0.0]net 7.7.7.7 0.0.0.0

[R7-ospf-1-area-0.0.0.0]net 47.1.1.0 0.0.0.255

[R7-ospf-1-area-0.0.0.0]net 79.1.1.0 0.0.0.255

[R7-ospf-1-area-0.0.0.0]


R9的OSPF配置如下:

[R9]ospf

[R9-ospf-1]area 0

[R9-ospf-1-area-0.0.0.0]net 9.9.9.9 0.0.0.0

[R9-ospf-1-area-0.0.0.0]net 79.1.1.0 0.0.0.255

[R9-ospf-1-area-0.0.0.0]net 89.1.1.0 0.0.0.255

[R9-ospf-1-area-0.0.0.0]


R5的OSPF配置如下:

[R5]ospf

[R5-ospf-1]area 0

[R5-ospf-1-area-0.0.0.0]net 5.5.5.5 0.0.0.0

[R5-ospf-1-area-0.0.0.0]net 15.1.1.0 0.0.0.255

[R5-ospf-1-area-0.0.0.0]net 56.1.1.0 0.0.0.255

[R5-ospf-1-area-0.0.0.0]


R6的OSPF配置如下:

[R6]ospf

[R6-ospf-1]area 0

[R6-ospf-1-area-0.0.0.0]net 6.6.6.6 0.0.0.0

[R6-ospf-1-area-0.0.0.0]net 68.1.1.0 0.0.0.255

[R6-ospf-1-area-0.0.0.0]net 56.1.1.0 0.0.0.255

[R6-ospf-1-area-0.0.0.0]


R8的OSPF配置如下:

[R8]ospf

[R8-ospf-1]area 0

[R8-ospf-1-area-0.0.0.0]net 8.8.8.8 0.0.0.0

[R8-ospf-1-area-0.0.0.0]net 68.1.1.0 0.0.0.255

[R8-ospf-1-area-0.0.0.0]net 89.1.1.0 0.0.0.255

[R8-ospf-1-area-0.0.0.0]


所有设备配置完OSPF后,可以检查一下邻居状态及连通性:

以R3为例

BGP路由优选原则:优选Cluster-list最短的_java_02


BGP路由优选原则:优选Cluster-list最短的_java_03





04

配置BGP


说明:

R1与R2、R5形成ebgp,R1在AS100,其他均在AS200。

R3与R2、R4、R7形成ibgp,R3为反射器,R2、R7为R3的客户机;R4暂不设置为反射器,R7与R9形成ibgp,R9为R7的客户机;

R6与R5、R8形成ibgp,R6为反射器,R5、R8为R6的客户机, R8与R9形成ibgp,R9也为R8 的客户机。

BGP路由优选原则:优选Cluster-list最短的_java_04



R1的bgp配置如下:

[R1]bgp 100

[R1-bgp]peer  12.1.1.2 as-number 200

[R1-bgp]peer  15.1.1.5 as-number 200

[R1-bgp]


R2的bgp配置如下:

[R2]bgp 200

[R2-bgp]peer  12.1.1.1 as-number 100

[R2-bgp]peer  12.1.1.1 next-hop-local

[R2-bgp]peer  3.3.3.3 as-number 200

[R2-bgp]peer  3.3.3.3 connect-interface  lo 0

[R2-bgp]peer 3.3.3.3 next-hop-local



R3的bgp配置如下:(指定R2、R7为自己的客户机,即R3就是BGP反射器了)

[R3]bgp 200

[R3-bgp]peer 2.2.2.2 as-number 200 

[R3-bgp]peer 2.2.2.2 connect-interface LoopBack0

[R3-bgp]peer 2.2.2.2 reflect-client

[R3-bgp]peer 7.7.7.7 as-number 200 

[R3-bgp]peer 7.7.7.7 connect-interface LoopBack0

[R3-bgp]peer 7.7.7.7 reflect-client

[R3-bgp]peer 4.4.4.4 as-number 200 

[R3-bgp]peer 4.4.4.4 connect-interface LoopBack0



R4的bgp配置如下:

[R4]bgp 200

[R4-bgp]peer 3.3.3.3 as-number 200 

[R4-bgp]peer 3.3.3.3 connect-interface LoopBack0



R7的bgp配置如下:

[R7]bgp 200

[R7-bgp]peer 3.3.3.3 as-number 200 

[R7-bgp]peer 3.3.3.3 connect-interface LoopBack0

[R7-bgp] peer 9.9.9.9  as-number 200 

[R7-bgp]peer 9.9.9.9  connect-interface LoopBack0

[R7-bgp]peer 9.9.9.9 reflect-client



R9的bgp配置如下:

[R9]bgp 200

[R9-bgp]peer 7.7.7.7 as-number 200 

[R9-bgp]peer 7.7.7.7 connect-interface LoopBack0

[R9-bgp] peer 8.8.8.8 as-number 200

[R9-bgp]peer 8.8.8.8  connect-interface LoopBack0 



R5的bgp配置如下:

[R5]bgp 200

[R5-bgp]peer 6.6.6.6 as-number 200 

[R5-bgp]peer 6.6.6.6 connect-interface LoopBack0

[R5-bgp]peer 15.1.1.1 as-number 100



R6的bgp配置如下:设置R5、R8为R6的客户机,即R6为BGP反射器。

[R6]bgp 200

[R6-bgp]peer 5.5.5.5 as-number 200 

[R6-bgp]peer 5.5.5.5 connect-interface LoopBack0

[R6-bgp]peer 5.5.5.5 reflect-client

[R6-bgp]peer 8.8.8.8 as-number 200 

[R6-bgp]peer 8.8.8.8 connect-interface LoopBack0

[R6-bgp]peer 8.8.8.8 reflect-client



R8的bgp配置如下:

[R8]bgp 200

[R8-bgp]peer 6.6.6.6 as-number 200 

[R8-bgp]peer 6.6.6.6 connect-interface LoopBack0

[R8-bgp]peer 9.9.9.9 as-number 200

[R8-bgp]peer 9.9.9.9 connect-interface LoopBack0

[R8-bgp]peer 9.9.9.9 reflect-client



配置完后,检查一下各个BGP邻居状态是否已建议:

以R3为例:

BGP路由优选原则:优选Cluster-list最短的_java_05



05

R1新增路由


(创建loopback10,ip地址为:10.10.10.0/24,宣告BGP)


R1上配置:

[R1]int lo 10

[R1-LoopBack10]ip add 10.10.10.10 24

[R1-LoopBack10]qu

[R1]

[R1]bgp 100

[R1-bgp]net 10.10.10.0 24




06

查看BGP路由


在R7、R8观察各自反射器发送的BGP路由,同时也在R9查看bgp路由:


R7上查看bgp路由:

BGP路由优选原则:优选Cluster-list最短的_java_06

BGP路由优选原则:优选Cluster-list最短的_java_07


BGP路由优选原则:优选Cluster-list最短的_java_08


R8上查看BGP路由:

BGP路由优选原则:优选Cluster-list最短的_java_09

BGP路由优选原则:优选Cluster-list最短的_java_10


BGP路由优选原则:优选Cluster-list最短的_java_11


由上面可知,R7、R8的cluster-list,列表均只有一个id,即长度为1。


再查看一下,R9的bgp路由:

BGP路由优选原则:优选Cluster-list最短的_java_12


R9收到R7、R8发过来的10.10.10.0/24的bgp路由,最后选择下一跳走5.5.5.5,即选择R8,

BGP路由优选原则:优选Cluster-list最短的_java_13


没有选择R7,是因为走R7的cost 较高,我们来看一下IGP路由表就知道了:

BGP路由优选原则:优选Cluster-list最短的_java_14


R9要去往10.10.10.0,下一跳有5.5.5.5和2.2.2.2。

BGP路由优选原则:优选Cluster-list最短的_java_15


所以就pk他们俩的cost,结果发现,5.5.5.5 开销较小(3<4),所以选择走5.5.5.5,即走R8。


是不是走R8,tracert一下就知道了:

BGP路由优选原则:优选Cluster-list最短的_java_16


但是我们本实验的主题是要pk  cluster-list属性,所以接下来,我们要把cost 调成 一样的,于是龙哥在R6的G0/0/0接口修改ospf cost为2:

[R6]int g0/0/0

[R6-GigabitEthernet0/0/0]ospf cost 2

[R6-GigabitEthernet0/0/0]


在R9查看IGP 的cost,去往5.5.5.5和2.2.2.2的开销一样了,

BGP路由优选原则:优选Cluster-list最短的_java_17


所以,R9接下来,根据选路原则,接着pk,直到最后一条,优选最小的router id:

BGP路由优选原则:优选Cluster-list最短的_java_18


R9去往10.10.10.10 走R7了:

BGP路由优选原则:优选Cluster-list最短的_java_19

BGP路由优选原则:优选Cluster-list最短的_java_20

BGP路由优选原则:优选Cluster-list最短的_java_21

从R9上,我们也可以知道,此时cluster-list都一样长。


接下来,我将在R4也设置反射器,目的是:R9从R7收到的bgp路由,cluster-list长度增加,从而选择走R8。


07

R4也设为反射器,R7为R4的客户机,R7取消与R3形成ibgp。


R4与R7 形成ibgp邻居关系,并把R7设置为 R4的客户机,即R4也是BGP反射器:

[R4]bgp 200

[R4-bgp]peer  7.7.7.7 as-number 200

[R4-bgp]peer  7.7.7.7 connect-interface  lo 0

[R4-bgp]peer  7.7.7.7 reflect-client 

[R4-bgp]



R3与R7取消ibgp邻居关系:

[R3]bgp 200

[R3-bgp]undo peer 7.7.7.7


R7与R3取消ibgp邻居关系,与R4形成ibgp邻居关系:

[R7]bgp 200

[R7-bgp]undo peer 3.3.3.3

[R7-bgp]peer  4.4.4.4 as-number 200

[R7-bgp]peer  4.4.4.4 connect-interface  lo 0


此时,拓扑图上方 R7收到R1发布的bgp路由,已经过两个RR(反射器),而R8收到R1发布的bgp路由,只经过一个RR反射器而已:

BGP路由优选原则:优选Cluster-list最短的_java_22



08

再次查看BGP路由


R7上查看bgp路由:

BGP路由优选原则:优选Cluster-list最短的_java_23


BGP路由优选原则:优选Cluster-list最短的_java_24


上图,可以发现,R7收到这条bgp路由,cluster-list列表长度已经变为2,即有两个id,分别为:4.4.4.4 和3.3.3.3


我们在R8查看一下bgp路由:

BGP路由优选原则:优选Cluster-list最短的_java_25

BGP路由优选原则:优选Cluster-list最短的_java_26

R8上关于这条bgp路由,cluster list列表长度为1,仍然只有一个6.6.6.6.


现在我们再去R9查看bgp路由,看看最终选择谁了?


BGP路由优选原则:优选Cluster-list最短的_java_27


为什么没有选择R7,原因给出来了:没有更优的cluster-list。

BGP路由优选原则:优选Cluster-list最短的_java_28


R7的cluster-list长度为3(3个router id),R8的cluster-list长度为2(2个router-id),

故,根据优选规则:前面9条都无法pk的时候,就pk第10条,优选最短的cluster-list,所以选择走R8。

BGP路由优选原则:优选Cluster-list最短的_java_29



BGP路由优选原则:优选Cluster-list最短的_java_30


BGP路由优选原则:优选Cluster-list最短的_java_31



四、扩展知识


接下来,玩个扩展的:

再增加一台路由器,与R9形成ebgp邻居关系:


BGP路由优选原则:优选Cluster-list最短的_java_32



[R9]int g0/0/2

[R9-GigabitEthernet0/0/2]ip add 90.1.1.9 24

[R9-GigabitEthernet0/0/2]undo shut

Info: Interface GigabitEthernet0/0/2 is not shutdown.

[R9-GigabitEthernet0/0/2]quit

[R9]

[R9]bgp 200

[R9-bgp]peer  90.1.1.10 as-number 300

[R9-bgp]





<Huawei>sys

[Huawei]sys R10

[R10]int lo 0

[R10-LoopBack0]ip add 10.10.10.10 32

[R10-LoopBack0]qu

[R10]

[R10]int g0/0/0

[R10-GigabitEthernet0/0/0]ip add 90.1.1.10 24

[R10-GigabitEthernet0/0/0]qu

[R10]

[R10]bgp 300

[R10-bgp]peer  90.1.1.9 as-number 200

[R10-bgp]



BGP路由优选原则:优选Cluster-list最短的_java_33


我们在R9的两个接口(G0/0/0和G0/0/1)抓包与R10的G0/0/0接口抓包。

抓包前,先把R1的发布的bgp 10.10.10.0/24取消。


[R1]bgp 100

[R1-bgp]undo network 10.10.10.0 24

[R1-bgp]


BGP路由优选原则:优选Cluster-list最短的_java_34


BGP路由优选原则:优选Cluster-list最短的_java_35

在R1上再次发布,就可以看到抓包update报文了,就可以看到这条bgp路由:

[R1]bgp 100

[R1-bgp]network 10.10.10.0 24

[R1-bgp]


R9的G0/0/0接口抓到的报文,可以看到cluster-list:

BGP路由优选原则:优选Cluster-list最短的_java_36



R9的G0/0/1接口抓到的报文,可以看到cluster-list:

BGP路由优选原则:优选Cluster-list最短的_java_37


R10的G0/0/0接口抓到的报文,没有看到cluster-list了。

BGP路由优选原则:优选Cluster-list最短的_java_38


所以,我们可以看出cluster-list的范围,就是本AS。


看到这里,相信你应该对优选cluster-list最短的,有较深的理解了吧。