转载:BGP 路由反射器
/ 实验介绍:/
原理概述
缺省情况下,路由器从它的一个 IBGP 对等体那里接收到的路由条目不会被该路由器再传递给其他IBGP对等体,这个原则称为BGP水平分割
原则,该原则的根本作用是防止 AS 内部的 BGP 路由环路。因此,在 AS内部,一般需要每台路由器都运行 BGP协议并建立全互联的IBGP对等体关系,这样才能避免BGP路由黑洞等问题。对于有n个BGP路由器的AS来说,全互联的IBGP对等体关系将有nx(n-1)÷2个。对于大型AS来说,数量众多的IBGP对等体关系将导致配置和维护的工作量都非常大,且人为出错的可能性也随之增加。
解决上述问题的方法之一就是使用 BGP 路由反射器。BGP 路由反射器的使用,可以在很大程度上减少大型AS中IBGP对等体关系的数量并简化相应的配置和维护工作。BGP路由反射器是AS内部IBGP网络环境中的一种特殊角色,其他的角色还有反射器的客户端和非客户端。一个反射器和它所有的客户端一起被统称为一个Cluster;客户端与它的反射器建立的是 IBGP 对等体关系;客户端之间无需建立 IBGP 对等体关系;非客户端和反射器建立的是 IBGP 对等体关系;非客户端之间需要建立全互连的IBGP 对等体关系;非客户端和客户端之间无需建立IBGP 对等体关系;一个 AS 内部可以有多个Cluster;一个Cluster中可以有多台反射器。另外,EBGP对等体之间是不存在BGP路由反射器的概念的。
BGP路由反射器在反射路由的时候遵循的原则是:从一个非客户端那里接收到的路由,反射器会将它只传递给所有的客户端;从一个客户端那里接收到的路由,反射器会将它传递给所有其他的客户端以及所有的非客户端;从EBGP对等体那里接收到的路由,反射器会将它传递给所有的客户端和非客户端。
/ 实验目的**/**
-
理解BGP 路由反射器的应用场景
-
理解BGP 路由反射器的工作原理
-
掌握BGP 路由反射器的基本配置方法
/ 实验介绍****/****
实验拓扑如图所示,实验编址如表所示。本实验网络包含了两个AS,两个Cluster。R1、R2、R3属于Cluster1,R4、R5、R6属于Cluster 2,R7 不属于任何Cluster。在AS 100 内部,所有路由器都运行OSPF 协议作为IGP,并将各自的Loopback0接口宣告进OSPF 进程中,使得各路由器可以使用Loopback0接口来建立全互联的IBGP 对等体关系。然后,为了减少配置工作量,决定使用路由反射器,要求是:在Cluster1中,R1为路由反射器,R2和 R3为其客户端;在Cluster2中,R4为路由反射器,R5、R6为其客户端;R7为非客户端;R1与R8为EBGP对等体关系。
/ 实验拓扑**/**
/ 实验编址**/**
/ 实验配置**/**
1、基本配置
[R1]int loop 0
[R1-LoopBack0]ip add 10.0.1.1 32
[R1-LoopBack0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 10.0.12.1 24
[R1-GigabitEthernet0/0/1]int g0/0/2
[R1-GigabitEthernet0/0/2]ip add 10.0.13.1 24
[R1-GigabitEthernet0/0/2]int g0/0/3
[R1-GigabitEthernet0/0/3]ip add 10.0.18.1 24
[R1-GigabitEthernet0/0/3]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 10.0.14.1 24
[R1-GigabitEthernet0/0/0]q
[R1]
[R2]int loop 0
[R2-LoopBack0]ip add 10.0.2.2 32
[R2-LoopBack0]int loop 1
[R2-LoopBack1]ip add 10.0.22.22 32
[R2-LoopBack1]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 10.0.12.2 24
[R2-GigabitEthernet0/0/1]q
[R2]
[R3]int loop 0
[R3-LoopBack0]ip add 10.0.3.3 32
[R3-LoopBack0]int g0/0/2
[R3-GigabitEthernet0/0/2]ip add 10.0.13.3 24
[R3-GigabitEthernet0/0/2]q
[R3]
[R4]int loop 0
[R4-LoopBack0]ip add 10.0.4.4 32
[R4-LoopBack0]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 10.0.14.4 24
[R4-GigabitEthernet0/0/0]int g0/0/1
[R4-GigabitEthernet0/0/1]ip add 10.0.47.4 24
[R4-GigabitEthernet0/0/1]int g0/0/2
[R4-GigabitEthernet0/0/2]ip add 10.0.46.4 24
[R4-GigabitEthernet0/0/2]int g0/0/3
[R4-GigabitEthernet0/0/3]ip add 10.0.45.4 24
[R4-GigabitEthernet0/0/3]q
[R4]
[R5]int loop 0
[R5-LoopBack0]ip add 10.0.5.5 32
[R5-LoopBack0]int g0/0/1
[R5-GigabitEthernet0/0/1]ip add 10.0.45.5 24
[R5-GigabitEthernet0/0/1]q
[R5]
[R6]int loop 0
[R6-LoopBack0]ip add 10.0.6.6 32
[R6-LoopBack0]int g0/0/2
[R6-GigabitEthernet0/0/2]ip add 10.0.46.6 24
[R6-GigabitEthernet0/0/2]q
[R6]
[R7]int loop 0
[R7-LoopBack0]ip add 10.0.7.7 32
[R7-LoopBack0]int g0/0/0
[R7-GigabitEthernet0/0/0]ip add 10.0.47.7 24
[R7-GigabitEthernet0/0/0]q
[R7]
[R8]int loop 0
[R8-LoopBack0]ip add 10.0.8.8 32
[R8-LoopBack0]int g0/0/0
[R8-GigabitEthernet0/0/0]ip add 10.0.18.8 24
[R8-GigabitEthernet0/0/0]q
[R8]
2、配置OSPF路由协议
为了使AS 100内部的路由器之间都能够使用Loopback0接口建立IBGP 对等体关系,需要在每台路由器(R8除外)上配置 OSPF路由协议,并将Loopback0接口通告进OSPF进程。
[R1]ospf 1 router-id 10.0.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.0.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.0.13.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.0.14.0 0.0.0.255[
R2]ospf 1 router-id 10.0.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.0.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255
[R3]ospf 1 router-id 10.0.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 10.0.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 10.0.13.0 0.0.0.255
[R4]ospf 1 router-id 10.0.4.4
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 10.0.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]network 10.0.14.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 10.0.45.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 10.0.46.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 10.0.47.0 0.0.0.255
[R5]ospf 1 router-id 10.0.5.5
[R5-ospf-1]area 0
[R5-ospf-1-area-0.0.0.0]network 10.0.5.5 0.0.0.0
[R5-ospf-1-area-0.0.0.0]network 10.0.45.0 0.0.0.255
[R6]ospf 1 router-id 10.0.6.6
[R6-ospf-1]area 0
[R6-ospf-1-area-0.0.0.0]network 10.0.6.6 0.0.0.0
[R6-ospf-1-area-0.0.0.0]network 10.0.46.0 0.0.0.255
[R7]ospf 1 router-id 10.0.7.7
[R7-ospf-1]area 0
[R7-ospf-1-area-0.0.0.0]network 10.0.7.7 0.0.0.0
[R7-ospf-1-area-0.0.0.0]network 10.0.47.0 0.0.0.255
3、配置BGP路由协议
配置BGP 路由协议,在AS100内部的每台路由器上使用Loopback0接口建立全互联的IBGP 对等体关系,并通告各自的Loopback0接口到BGP 进程中。
[R1]bgp 100
[R1-bgp]router-id 10.0.1.1
[R1-bgp]peer 10.0.2.2 as-number 100
[R1-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[R1-bgp]peer 10.0.2.2 next-hop-local
[R1-bgp]peer 10.0.3.3 as-number 100
[R1-bgp]peer 10.0.3.3 connect-interface LoopBack 0
[R1-bgplpeer 10.0.3.3 next-hop-local
[R1-bgp]peer 10.0.4.4 as-number 100
[R1-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R1-bgp]peer 10.0.4.4 next-hop-local
[R1-bgp]peer 10.0.5.5 as-number 100
[R1-bgp]peer 10.0.5.5 connect-interface LoopBack 0
[R1-bgp]peer 10.0.5.5 next-hop-local
[R1-bgp]peer 10.0.6.6 as-number 100
[R1-bgp]peer 10.0.6.6 connect-interface LoopBack 0
[R1-bgp]peer 10.0.6.6 next-hop-local
[R1-bgp]peer 10.0.7.7 as-number 100
[R1-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R1-bgp]peer 10.0.7.7 next-hop-local
[R1-bgp]network 10.0.1.1 32
[R2]bgp 100
[R2-bgp]router-id 10.0.2.2
[R2-bgp]peer 10.0.1.1 as-number 100
[R2-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R2-bgplpeer 10.0.3.3 as-number 100
[R2-bgp]peer 10.0.3.3 connect-interface LoopBack 0
[R2-bgp]peer 10.0.4.4 as-number 100
[R2-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R2-bgp]peer 10.0.5.5 as-number 100
[R2-bgp]peer 10.0.5.5 connect-interface LoopBack 0
[R2-bgp]peer 10.0.6.6 as-number 100
[R2-bgp]peer 10.0.6.6 connect-interface LoopBack 0
[R2-bgp]peer 10.0.7.7 as-number 100
[R2-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R2-bgp]network 10.0.2.2 32
[R3]bgp 100
[R3-bgp]router-id 10.0.3.3
[R3-bgp]peer 10.0.1.1 as-number 100
[R3-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R3-bgp]peer 10.0.2.2 as-number 100
[R3-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[R3-bgp]peer 10.0.4.4 as-number 100
[R3-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R3-bgp]peer 10.0.5.5 as-number 100
[R3-bgp]peer 10.0.5.5 connect-interface LoopBack 0
[R3-bgp]peer 10.0.6.6 as-number 100
[R3-bgp]peer 10.0.6.6 connect-interface LoopBack 0
[R3-bgp]peer 10.0.7.7 as-number 100
[R3-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R3-bgp]network 10.0.3.3 32
[R4]bgp 100
[R4-bgp]router-id 10.0.4.4
[R4-bgp]peer 10.0.1.1 as-number 100
[R4-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R4-bgp]peer 10.0.2.2 as-number 100
[R4-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[R4-bgp]peer 10.0.3.3 as-number 100
[R4-bgp]peer 10.0.3.3 connect-interface LoopBack 0
[R4-bgp]peer 10.0.5.5 as-number 100
[R4-bgp]peer 10.0.5.5 connect-interface LoopBack 0
[R4-bgp]peer 10.0.6.6 as-number 100
[R4-bgp]peer 10.0.6.6 connect-interface LoopBack 0
[R4-bgp]peer 10.0.7.7 as-number 100
[R4-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R4-bgp]network 10.0.4.4 32
[R5]bgp 100
[R5-bgp]router-id 10.0.5.5
[R5-bgp]peer 10.0.1.1 as-number 100
[R5-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R5-bgp]peer 10.0.2.2 as-number 100
[R5-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[R5-bgp]peer 10.0.3.3 as-number 100
[R5-bgp]peer 10.0.3.3 connect-interface LoopBack 0
[R5-bgp]peer 10.0.4.4 as-number 100
[R5-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R5-bgp]peer 10.0.6.6 as-number 100
[R5-bgp]peer 10.0.6.6 connect-interface LoopBack 0
[R5-bgp]peer 10.0.7.7 as-number 100
[R5-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R5-bgp]network 10.0.5.5 32
[R6]bgp 100
[R6-bgp]router-id 10.0.6.6
[R6-bgp]peer 10.0.1.1 as-number 100
[R6-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R6-bgp]peer 10.0.2.2 as-number 100
[R6-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[R6-bgp]peer 10.0.3.3 as-number 100
[R6-bgp]peer 10.0.3.3 connect-interface Loopback 0
[R6-bgp]peer 10.0.4.4 as-number 100
[R6-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R6-bgp]peer 10.0.5.5 as-number 100
[R6-bgp]peer 10.0.5.5 connect-interface LoopBack 0
[R6-bgp]peer 10.0.7.7 as-number 100
[R6-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R6-bgp]network 10.0.6.6 32
[R7]bgp 100
[R7-bgp]router-id 10.0.7.7
[R7-bgp]peer 10.0.1.1 as-number 100
[R7-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R7-bgp]peer 10.0.2.2 as-number 100
[R7-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[R7-bgp]peer 10.0.3.3 as-number 100
[R7-bgp]peer 10.0.3.3 connect-interface LoopBack 0
[R7-bgp]peer 10.0.4.4 as-number 100
[R7-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R7-bgp]peer 10.0.5.5 as-number 100
[R7-bgp]peer 10.0.5.5 connect-interface LoopBack 0
[R7-bgp]peer 10.0.6.6 as-number 100
[R7-bgp]peer 10.0.6.6 connect-interface LoopBack 0
[R7-bgp]network 10.0.7.7 32
在R1和R8之间使用直连物理接口建立EBGP对等体关系,并通告R8的Loopback 0接口到BGP进程中。
[R1]bgp 100
[R1-bgp]peer 10.0.18.8 as-number 200
[R8]bgp 200
[R8-bgp]router-id 10.0.8.8
[R8-bgp]peer 10.0.18.1 as-number 100
[R8-bgp]network 10.0.8.8 32
查看 AS 100 内部的每台路由器上的 BGP 路由表(这里仅以 R2 为例),同时查看R8的BGP路由表。
<R2>display bgp routing-table
<R8>display bgp routing-table
可以看到,AS 100内部的路由器都已经接收到了关于10.0.8.8/32 的路由信息。R8只接收到了关于 10.0.1.1/32 的路由信息,而没有接收到关于 AS 100 内部其他路由器的Loopback 0的路由信息,这是因为AS 100 内
部OSPF 路由协议的优先级要高于BGP 路由协议的优先级,于是 R1就不会将除了本地起源(即下一跳为 0.0.0.0)的路由之外的其他路由信息传递给R8。显然,这会导致R8与AS 100内部的路由器的互通问题。为了使R8能够与AS 100 内部的所有路由器的Loopback0接口所在的网络进行通信,可以在R8上配置一条聚合的静态路由,下一跳为10.0.18.1。
[R8]ip route-static 10.0.0.0 20 10.0.18.1
配置完成后,网络通信正常,但是整体配置工作量较大。
4、配置BGP路由反射器
对于大型网络来讲,使用路由反射器可以大大减少 IBGP 对等体关系的数量。路由反射器的使用,会明显减少配置工作量,人为出错的可能性也会大大降低。
下面将进行关于路由反射器的实验,首先清除之前各路由器上的BGP进程。在此需要提醒读者的是,在实际场景中如果这样操作,将会导致网络瘫痪一段时间。
以R1为例,清除原来的BGP进程。
[R1]undo bgp 100
R2和R3是路由反射器R1的客户端,它们只需和R1配置成IBGP对等体关系即可,R2 和R3 之间无需配置为IBGP 对等体关系。另外,将R2的Loopback1(10.0.22.22/32)接口通告进BGP进程。
[R2]bgp 100
[R2-bgp]router-id 10.0.2.2
[R2-bgp]peer 10.0.1.1 as-number 100
[R2-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R2-bgp]network 10.0.2.2 32
[R2-bgp]network 10.0.22.22 32
[R3]bgp 100
[R3-bgp]router-id 10.0.3.3
[R3-bgp]peer 10.0.1.1 as-number 100
[R3-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R3-bgp]network 10.0.3.3 32
配置R1为R2和R3的路由反射器,配置Cluster-ID为1,配置R1与R4之间的IBGP对等体关系,配置R1与R8之间的EBGP对等体关系。
[R1]bgp 100
[R1-bgp]router-id 10.0.1.1
[R1-bgp]group in_1
[R1-bgp]peer 10.0.2.2 group in_1
[R1-bgp]peer 10.0.3.3 group in_1
[R1-bgp]peer in_1 reflect-client
[R1-bgp]peer in_1 next-hop-local
[R1-bgp]reflector cluster-id 1
[R1-bgp]peer 10.0.4.4 as-number 100
[R1-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R1-bgp]peer 10.0.4.4 next-hop-local
[R1-bgp]peer 10.0.18.8 as-number 200
R5和R6是路由反射器R4的客户端,它们只需和R4配置成IBGP对等体关系即可,R5和R6之间无需配置为IBGP对等体关系。
[R5]bgp 100
[R5-bgp]router-id 10.0.5.5
[R5-bgp]peer 10.0.4.4 as-number 100
[R5-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R5-bgp]network 10.0.5.5 32
[R6]bgp 100
[R6-bgp]router-id 10.0.6.6
[R6-bgp]peer 10.0.4.4 as-number 100
[R6-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R6-bgp]network 10.0.6.6 32
配置R4为R5和R6的路由反射器,配置Cluster-ID为2,配置R4与R1之间的IBGP对等体关系,配置R4与R7之间的IBGP对等体关系。
[R4]bgp 100
[R4-bgp]router-id 10.0.4.4
[R4-bgp]group in_2
[R4-bgp]peer 10.0.5.5 group in_2
[R4-bgp]peer 10.0.6.6 group in_2
[R4-bgp]peer in_2 reflect-client
[R4-bgp]reflector cluster-id 2
[R4-bgp]peer 10.0.1.1 as-number 100
[R4-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R4-bgp]peer 10.0.7.7 as-number 100
[R4-bgp]peer 10.0.7.7 connect-interface LoopBack 0
R7是非客户端路由器,配置R7与R4之间的IBGP对等体关系。
[R7]bgp 100
[R7-bgp]router-id 10.0.7.7
[R7-bgp]peer 10.0.4.4 as-number 100
[R7-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R7-bgp]network 10.0.7.7 32
配置R8与R1之间的EBGP对等体关系。
[R8]bgp 200
[R8-bgp]router-id 10.0.8.8
[R8-bgp]peer 10.0.18.1 as-number 100
[R8-bgp]network 10.0.8.8 255.255.255.255
5、验证路由反射器的反射原理
根据 IBGP 的水平分割原则,R1从IBGP 对等体 R2 接收到 BGP 路由条目10.0.22.22/32后,不会再传递给其他IBGP对等体,因此R3和R4就应该接收不到这条路由。当然,R1可以将此路由传递给EBGP对等体R8。在R3、R4、R8上查看BGP路由表。
[R3]display bgp routing-table
[R4]display bgp routing-table
[R8]display bgp routing-table
观察发现,R3、R4、R8的BGP路由表中都存在关于10.0.22.22/32的路由信息。由此可见,R1将10.0.22.22/32这条路由传递给了R3和R4,不再受BGP水平分割原则的限制,同时,这条路由也被R1传递给了EBGP对等体R8。实验表明,BGP路由反射器从它的一个客户端接收到路由之后,会将该路由反射给它的其他客户端、非客户端,以及EBGP对等体。
在R5、R6、R7上查看BGP路由表。
[R5]display bgp routing-table
[R6]display bgp routing-table
[R7]display bgp routing-table
可以看到,R4将10.0.22.22/32这条路由传递给了R5和R6,但是没有传递给R7,说明路由反射器会把从非客户端收到的路由传递给客户端,但不会传递给其他非客户端。由于路由反射器认为非客户端之间应该是存在IBGP 对等体关系的,所以路由反射器和非客户端之间依然遵循水平分割原则。
路由反射器R4认为R1与R7之间应该存在IBGP对等体关系,所以没有将从非客户端R1接收到的BGP路由传递给R7。但实际上,R1与R7之间并没有被配置为IBGP对等体关系,这就导致了R7的BGP路由表中并没有关于10.0.22.22/32的路由。解决此问题的办法就是将R1和R7配置为IBGP对等体关系。
[R1]bgp 100
[R1-bgp]peer 10.0.7.7 as-number 100
[R1-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R1-bgp]peer 10.0.7.7 next-hop-local
[R7]bgp 100
[R7-bgp]peer 10.0.1.1 as-number 100
[R7-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R7-bgp]peer 10.0.1.1 next-hop-local
重新查看R7的BGP路由表。
[R7]display bgp routing-table
可以看到,R7现在接收到了10.0.22.22/32这条路由。
在R7上查看10.0.22.22/32这条路由的详细信息。
<R7>display bgp routing-table 10.0.22.22
可以看到,R7上的10.0.22.22/32这条路由信息是从R1(10.0.1.1)传递过来的,而不是从R4传递过来的,这说明路由反射器和非客户端之间是遵循水平分割原则的。
在R1、R2、R3、R4上查看接收到的关于10.0.8.8/32的路由信息。
[R1]display bgp routing-table
[R2]display bgp routing-table
[R3]display bgp routing-table
[R4]display bgp routing-table
可以看到,R1从EBGP对等体R8接收到关于10.0.8.8/32的路由之后将这条路由传递给了R2、R3、R4,说明路由反射器会把从EBGP对等体接收到的路由传递给它的客户端和非客户端。
6、BGP路由反射器的防环原理
在前面的配置中,R1上使用了命令peerin_1reflect-client。这条命令的含义是指定BGP对等体组in1中的路由器(即R2和R3)为R1的客户端,从相反的角度来说,也就是R1被指定成为BGP对等体组in-1中的路由器(即R2和R3)的路由反射器。
在R1、R3、R4上查看10.0.22.22/32这条路由的具体属性。
[R1]display bgp routing-table 10.0.22.22
[R3]display bgp routing-table 10.0.22.22
[R4]display bgp routing-table 10.0.22.22
可以观察到,在R1、R3、R4上关于10.0.22.22/32的路由的属性是有所区别的。在R3 和R4上关于此路由多了0riginator和Cluster List 这两个属性。Originator属性的作用是防止路由在反射器和客户端/非客户端之间出现环路。路由第一次被反射的时候,反射器会将0riginator属性加入这条路由中,用BGP Router-ID 表示,用来标识这条路由的起源路由器。如果路由中已经存在0riginator属性,则反射器不会创建新的Originator。当其他BGP 对等体接收到这条路由时,将对收到的0riginator和本地的BGPRouter-ID 进行比较,如果两者相同,BGP对等体将会忽略掉这条路由不做处理。Originator 属性可以传递给其他的Cluster,路由在AS内传递时该属性不会丢失。
Cluster List 属性可用来防止Cluster间的路由环路。当路由反射器在客户端之间或客户端与非客户端之间反射路由时,会将自己的Cluster-ID 添加到Cluster List 中。路由反射器接收到 BGP 路由后会去检查其中的
如果发现自己的 Cluster-ID 位于Cluster List中,则表明出现Cluster List,了路由环路,因而会忽略该路由。AS内的每台路由反射器都采用了一个唯一的4个8位组来标识Cluster-ID,如果Cluster中包含了多台路由反射器,则必须以手工的方式为每台路由反射器配置Cluster-ID。
在R5上查看10.0.22.22/32这条路由的具体属性。
[R5]display bgp routing-table 10.0.22.22
可以看到,Cluster List 中含有两个Cluster-ID:0.0.0.2 和0.0.0.1,这两个Cluster-ID都是在配置路由反射器时定义的。
在R8上查看10.0.22.22/32这条路由的具体属性。
<R8>display bgp routing-table 10.0.22.22
可以看到,R8 上的10.0.22.22/32 这条路由没有Cluster-ID 和ClusterList 属性信息,说明Cluster-ID 和Cluster List属性不会通告给EBGP 对等体。