R1、R2、R3、R4 都属于AS 64511,其连接方式、互联接口地址如图所示。每台设备均创建Loopback0接口,IP地址为10.0.x.x/32,其中x为设备编号。R1、R2上的 Loopback1地址分别为10.1.1.1/24、10.2.2.2/24,用于模拟用户网段。
所有设备都使用Loopback0地址作为BGP Router ID,R1与R2、R2与R3、R3与R4、R4与R2之间基于直连接口建立IBGP对等体关系,其中R1为R2的路由反射器客户端,R2为R3的路由反射器客户端,R3为R4的路由反射器客户端。

参考链接:http://e.huawei.com
实验任务:
①设备IP地址配置。
②配置AS内的OSPF,在互联接口、Loopback0接口上激活OSPF。
③配置AS内基于直连接口建立IBGP对等体关系。
④配置路由反射器,将R1配置为R2的客户端、R2配置为R3的客户端、R3配置为R4的客户端。
⑤在R2上将Loopback1接口路由发布进BGP,观察Originator_ID属性如何实现路由防环。
⑥在R1上将Loopback1接口路由发布进BGP,观察Cluster_List属性如何实现路由防环。
任务步骤:
①互联接口、环回口IP地址配置
设备命名
AR1:
<Huawei>system-view
Huaweisysname AR1
R2、R3、R4相同操作,不再重复。
配置R1 GE0/0/0接口、LoopBack0、LoopBack1接口IP地址
AR1interface GigabitEthernet 0/0/0
AR1-GigabitEthernet0/0/0ip address 10.0.12.1 24
AR1-GigabitEthernet0/0/0interface LoopBack 0
AR1-LoopBack0ip address 10.0.1.1 32
AR1-LoopBack0interface LoopBack 1
AR1-LoopBack1ip address 10.1.1.1 24
配置R2 GE0/0/0接口、GE0/0/1接口、GE0/0/2接口、LoopBack0、LoopBack1接口IP地址
AR2interface GigabitEthernet 0/0/0
AR2-GigabitEthernet0/0/0ip address 10.0.12.2 24
AR2-GigabitEthernet0/0/0interface GigabitEthernet 0/0/1
AR2-GigabitEthernet0/0/1ip address 10.0.23.3 24
AR2-GigabitEthernet0/0/1interface GigabitEthernet 0/0/2
AR2-GigabitEthernet0/0/2ip address 10.0.24.2 24
AR2-GigabitEthernet0/0/2interface LoopBack 0
AR2-LoopBack0ip address 10.0.2.2 32
AR2-LoopBack0interface LoopBack 1
AR2-LoopBack1ip address 10.2.2.2 24
配置R3 GE0/0/1接口、GE0/0/2接口、LoopBack0接口IP地址
AR3interface GigabitEthernet 0/0/1
AR3-GigabitEthernet0/0/1ip address 10.0.23.3 24
AR3-GigabitEthernet0/0/1interface GigabitEthernet 0/0/2
AR3-GigabitEthernet0/0/2ip address 10.0.24.3 24
AR3-GigabitEthernet0/0/2interface Loopback 0
AR3-LoopBack0ip address 10.0.3.3 32
配置R4 GE0/0/1接口、GE0/0/2接口、LoopBack0接口IP地址
AR4interface GigabitEthernet 0/0/1
AR4-GigabitEthernet0/0/1ip address 10.0.24.4 24
AR4-GigabitEthernet0/0/1interface GigabitEthernet 0/0/2
AR4-GigabitEthernet0/0/2ip address 10.0.34.4 24
AR4-GigabitEthernet0/0/2interface LoopBack 0
AR4-LoopBack0ip address 10.0.4.4 32
在R2、R3上检测互联地址连通性


②配置AS 64511的OSPF
R1、R2、R3、R4使用Loopback0接口地址作为Router ID,在各个设备的互联接口、Loopback0接口激活OSPF。
配置R1
AR1ospf router-id 10.0.1.1
AR1-ospf-1area 0
AR1-ospf-1-area-0.0.0.0network 10.0.1.1 0.0.0.0
AR1-ospf-1-area-0.0.0.0network 10.0.12.1 0.0.0.0
配置R2
AR2ospf router-id 10.0.2.2
AR2-ospf-1area 0
AR2-ospf-1-area-0.0.0.0network 10.0.2.2 0.0.0.0
AR2-ospf-1-area-0.0.0.0network 10.0.12.2 0.0.0.0
AR2-ospf-1-area-0.0.0.0network 10.0.23.2 0.0.0.0
AR2-ospf-1-area-0.0.0.0network 10.0.24.2 0.0.0.0
配置R3
AR3ospf router-id 10.0.3.3
AR3-ospf-1area 0
AR3-ospf-1-area-0.0.0.0network 10.0.3.3 0.0.0.0
AR3-ospf-1-area-0.0.0.0network 10.0.23.3 0.0.0.0
AR3-ospf-1-area-0.0.0.0network 10.0.34.3 0.0.0.0
配置R4
AR4ospf router-id 10.0.4.4
AR4-ospf-1area 0
AR4-ospf-1-area-0.0.0.0network 10.0.4.4 0.0.0.0
AR4-ospf-1-area-0.0.0.0network 10.0.24.4 0.0.0.0
AR4-ospf-1-area-0.0.0.0network 10.0.34.4 0.0.0.0
在R2、R3上检查OSPF邻居的概要信息


从输出信息可以得OSPF邻居已经全部正常建立。
在R4上查看OSPF路由表

从输出信息可以得知R4已经学习到了全网的路由。
③配置IBGP对等体
配置AS内基于Loopback0接口建立IBGP对等体关系。
配置R1
AR1bgp 64511
AR1-bgprouter-id 10.0.1.1
AR1-bgppeer 10.0.12.2 as-number 64511
配置R2
AR2bgp 64511
AR2-bgprouter-id 10.0.2.2
AR2-bgppeer 10.0.12.1 as-number 64511
AR2-bgppeer 10.0.23.3 as-number 64511
AR2-bgppeer 10.0.24.4 as-number 6451
配置R3
AR3bgp 64511
AR3-bgprouter-id 10.0.3.3
AR3-bgppeer 10.0.23.2 as-number 64511
AR3-bgppeer 10.0.34.4 as-number 64511
配置R4
AR4bgp 64511
AR4-bgprouter-id 10.0.4.4
AR4-bgppeer 10.0.24.2 as-number 64511
AR4-bgppeer 10.0.34.3 as-number 64511
在R2、R3上检查IBGP对等体状态


AS内的IBGP对等体关系已经成功建立。
④配置路由反射器
R2上将R1配置为路由反射器客户端
AR2bgp 64511
AR2-bgppeer 10.0.12.1 reflect-client
R3上将R2配置为路由反射器客户端
AR3bgp 64511
AR3-bgppeer 10.0.23.2 reflect-client
R4上将R3配置为路由反射器客户端
AR4bgp 64511
AR4-bgppeer 10.0.34.3 reflect-client
⑤验证Orginator_ID实现路由防环
在本步骤中,我们将在R2上发布BGP路由10.2.2.0/24,并观察该路由依次经路由反射器R3、R4反射后,被通告回R2从而引发潜在路由环路风险的情况。
缺省情况下,R2发布BGP路由后,该路由将被R2直接通告给R4,另一方面也会通过R3反射给R4,此时R4将优选R2直接通告过来的路由,从而不会再将R3反射过来的路由再反射回给R2。为此,我们需要在R2上部署路由策略,使R2不直接向R4通告10.2.2.0/24路由。
配置路由策略
AR2acl 2000
AR2-acl-basic-2000rule permit
AR2-acl-basic-2000route-policy bgp deny node 10
AR2-route-policyif-match acl 2000
在BGP中调用路由策略
AR2bgp 64511
AR2-bgppeer 10.0.24.4 route-policy bgp export
在R2上发布路由
AR2bgp 64511
AR2-bgpnetwork 10.2.2.0 24
R2上查看BGP路由10.2.2.0/24的明细信息

R2将该条路由通告给了R3、R1,但是并未通告给R4。
R3上查看BGP路由10.2.2.0/24的明细信息

R3将来自反射器客户端的BGP路由10.2.2.0/24反射给了10.0.34.4(R4)。同时该BGP路由的nexthop为10.0.23.2。
R4上查看BGP路由10.2.2.0/24的明细信息

该条路由来自反射器客户端R3,原始路由经由R3反射,路由的nexthop地址并未改变,同时R3为其添加了Orginator_ID属性,值为10.0.2.2。同时R4将该条路由反射给了R2。
再次在R2上查看BGP路由10.2.2.0/24的明细信息

依旧只存在本地通告的BGP路由,没有R4通告的BGP路由。
在R2上查看BGP对等体10.0.24.4的详细信息


从输出信息可以看到R2从R4收到了1个Update 报文,未向R4发送Update 报文(路由策略限制),但是本地BGP路由表中不存在由R4通告的BGP路由10.2.2.0/24。
在R2上触发入方向的软复位,让R4重新发送Update报文
<AR2>refresh bgp 10.0.24.4 import
再次查看R2上Update报文收发数量

接收的Update报文数量增加,R2从R4收到了BGP路由10.2.2.0/24的通告。
再次查看R2上BGP路由10.2.2.0/24的明细信息

依旧只有本地发布的1条BGP路由,R4通告的BGP路由Orginator_ID属性值与本地的Router ID一致,R2忽略了该路由通告。
⑥验证Cluster_List实现路由防环
为了方便观察现象,取消R2上的 BGP路由发布,在R1上将Loopback1接口路由发布到BGP,观察Cluster_List 如何防止环路。
取消R2上的BGP路由发布
AR2bgp 64511
AR2-bgpundo network 10.2.2.0 255.255.255.0
在R1上将Loopback1接口路由发布到BGP
AR1bgp 64511
AR1-bgpnetwork 10.1.1.0 24
依次在R1、R2、R3、R4上查看BGP路由10.1.1.0/24的明细信息

R1为BGP路由10.1.1.0/24的始发者,R1将路由通告给了R2 (10.0.12.2)。

来自路由反射器客户端R1的BGP路由10.1.1.0/24,R2将其反射给了R3 (10.0.23.3)。

来自路由反射器客户端R2的BGP路由10.1.1.0/24,R2反射时添加了Cluster_List属性,值为10.0.2.2,R3将该条路由反射给了R4(10.0.34.4)。

来自路由反射器客户端R3的BGP路由10.1.1.0/24,R3反射时添加了Cluster_List属性的值,当前值为10.0.3.3,10.0.2.2,R4将该条路由反射给了R2(10.0.24.2)。
再次查看R2的BGP路由表

R2的BGP路由表中依旧只有一条来自10.0.12.1的 BGP路由10.1.1.0/24。
在R2上查看BGP对等体10.0.24.4的详细信息


R2从R4收到了4个Update报文,未向R4发送Update报文(路由策略限制),但是本地BGP路由表中没有R4通告的BGP路由10.1.1.0/24。
在R2上触发入方向的软复位,让R4重新发送Update报文
<AR2>refresh bgp 10.0.24.4 import

接收的Update报文数量增加,R2从R4收到了BGP路由10.1.1.0/24的通告。
再次查看R2上BGP路由10.1.1.0 24的明细信息

依旧只有来自R1通告的1条BGP路由,R4通告的BGP路由其Cluster_List属性值中包含了R2的Cluster-ID,R2忽略了该路由通告。
思考:
BGP将路由传递给EBGP对等体时是否携带Originator_ID、Cluster_List属性?
并不会携带,Originator_ID、Cluster_List用于AS内存在RR的场景中防止环路,EBGP对等体之间使用AS_Path进行防环,无需依赖这两个属性。
配置参考:
AR1 :
sysname AR1
interface GigabitEthernet0/0/0
ip address 10.0.12.1 255.255.255.0
interface LoopBack0
ip address 10.0.1.1 255.255.255.255
interface LoopBack1
ip address 10.1.1.1 255.255.255.0
bgp 64511
router-id 10.0.1.1
peer 10.0.12.2 as-number 64511
network 10.1.1.0 255.255.255.0
ospf 1 router-id 10.0.1.1
area 0.0.0.0
network 10.0.1.1 0.0.0.0
network 10.0.12.1 0.0.0.0
AR2 :
sysname AR2
acl number 2000
rule 5 permit
interface GigabitEthernet0/0/0
ip address 10.0.12.2 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.0.23.2 255.255.255.0
interface GigabitEthernet0/0/2
ip address 10.0.24.2 255.255.255.0
interface LoopBack0
ip address 10.0.2.2 255.255.255.255
interface LoopBack1
ip address 10.2.2.2 255.255.255.0
bgp 64511
router-id 10.0.2.2
peer 10.0.12.1 as-number 64511
peer 10.0.23.3 as-number 64511
peer 10.0.24.4 as-number 64511
peer 10.0.12.1 reflect-client
peer 10.0.24.4 route-policy bgp export
ospf 1 router-id 10.0.2.2
area 0.0.0.0
network 10.0.2.2 0.0.0.0
network 10.0.12.2 0.0.0.0
network 10.0.23.2 0.0.0.0
network 10.0.24.2 0.0.0.0
route-policy bgp deny node 10
if-match acl 2000
AR3 :
sysname AR3
interface GigabitEthernet0/0/1
ip address 10.0.23.3 255.255.255.0
interface GigabitEthernet0/0/2
ip address 10.0.34.3 255.255.255.0
interface LoopBack0
ip address 10.0.3.3 255.255.255.255
bgp 64511
router-id 10.0.3.3
peer 10.0.23.2 as-number 64511
peer 10.0.34.4 as-number 64511
peer 10.0.23.2 reflect-client
ospf 1 router-id 10.0.3.3
area 0.0.0.0
network 10.0.3.3 0.0.0.0
network 10.0.23.3 0.0.0.0
network 10.0.34.3 0.0.0.0
AR4 :
sysname AR4
interface GigabitEthernet0/0/1
ip address 10.0.24.4 255.255.255.0
interface GigabitEthernet0/0/2
ip address 10.0.34.4 255.255.255.0
interface LoopBack0
ip address 10.0.4.4 255.255.255.255
bgp 64511
router-id 10.0.4.4
peer 10.0.24.2 as-number 64511
peer 10.0.34.3 as-number 64511
peer 10.0.34.3 reflect-client
ospf 1 router-id 10.0.4.4
area 0.0.0.0
network 10.0.4.4 0.0.0.0
network 10.0.24.4 0.0.0.0
network 10.0.34.4 0.0.0.0