一、路由反射器使用的场景
1、路由反射器用于减少IBGP全连接的复杂性和资源消耗。
原理是同一集群内的客户机只需与RR交换路由信息,通过Originator_ID和Cluster_List属性防止环路。配置包括设置RR、客户机和非客户机,以及配置集群ID。多集群和备份RR策略提高网络可靠性。
2、在大型网络中,减少设备的开销和管理员的配置工作量
一个AS有多台运行BGP协议的设备,这些设备之间需要使用BGP相互传递路由,这样就需要所有设备之间都建立IBGP对等体关系。但是如果在所有设备之间建立逻辑全连接(Full-mesh)关系,那么设备的开销和管理员的配置工作量都很大,而且不便于后续维护。用户希望有一种方法既可以简化网络配置,又能减小设备的开销,同时不能影响路由的传递。
3、在在型网络中减少网络资源和CPU消耗
网络设备数量多,路由条目多,为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接(Full-mesh)关系。假设在一个AS内部有n台BGP设备,那么应该建立的IBGP连接数就为n(n-1)/2。当IBGP对等体数目很多时,对网络资源和CPU资源的消耗都很大。利用路由反射可以解决这一问题。
二、路由反射器中的几个角色与概念
1、路由反射器RR(Route Reflector)
在一个AS内,其中一台中心BGP设备作为路由反射器RR。
2、客户机(Client)
在一个AS内,除RR路由反射器之外的其他BGP设备为客户机Client。客户机与路由反射器之间建立IBGP连接。
3、非客户机(Non-Client)
既不是反射器也不是客户机的BGP设备被称为非客户机(Non-Client)。非客户机与路由反射器之间,以及所有的非客户机之间仍然必须建立全连接关系。
4、集群(Cluster也称反射簇)
路由反射器和它的客户机组成一个集群(Cluster)。路由反射器在客户机之间反射路由信息,客户机之间不需要建立BGP连接。
5、Originator_ID属性(Originator_ID属性和Cluster_List属性用于检测和防止路由环路。)
(1)始发者(Originator):在AS内部始发路由的设备。Originator_ID属性用于防止集群内产生路由环路。
(2)Originator ID由RR产生,使用的Router ID的值标识路由的始发者,用于防止集群内产生路由环路。Originator_ID属性长4字节,携带了本地AS内部路由发起者的Router ID。
(3)当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID。
(4)当其他BGP Speaker接收到这条路由的时候,将比较收到的Originator_ID和本地的Router ID,如果两个ID相同,BGP Speaker会忽略掉这条路由,不做处理。
6、Cluster_List属性(Originator_ID属性和Cluster_List属性用于检测和防止路由环路。)
(1)用于防止集群间产生路由环路。一个集群内可能有多台反射器,因为单个反射器可能会产生单点故障问题。RR是另一个RR的客户机。
(2)路由反射器和它的客户机组成一个集群(Cluster),使用AS内唯一的Cluster ID作为标识。
(3)为了防止集群间产生路由环路,路由反射器使用Cluster_List属性,记录路由经过的所有集群的Cluster ID。Cluster_List由一系列的Cluster_ID组成,描述了一条路由所经过的反射器路径,这和描述路由经过的As路径的AS_Path属性有相似之处。Cluster_List由路由反射器产生。
(4)对于AS之间,BGP用于防止环路的主要措施是通过AS_Path属性记录途经的AS路径,带有本地AS号的路由将被设备丢弃;对于AS之内,BGP防止路由环路的方法是禁止IBGP对等体发布从AS内部学来的路由。
(5)RR的实现是基于放宽对“BGP在AS内学到的路由不会在AS中转发”的要求,即允许IBGP对等体之间发布从AS内部学来的路由。在这种情况下,Cluster_List属性被引入,可用于防止AS内部的环路。
(6)当RR在它的客户机之间或客户机与非客户机之间反射路由时,RR会把本地Cluster_ID添加到Cluster_List的前面。如果Cluster_List为空,RR就创建一个。
(7)当RR接收到一条更新路由时,RR会检查Cluster_List。如果Cluster_List中已经有本地Cluster_ID,丢弃该路由;如果没有本地Cluster_ID,将其加入Cluster_List,然后反射该更新路由。
三、路由反射器RR的宣告原则
1、当RR收到对等体发来的路由,首先使用BGP选路策略来选择最佳路由。在向IBGP邻居发布学习到的路由信息时,RR按照如下规则发布路由。
2、从非客户机IBGP对等体学到的路由,发布给此RR的所有客户机。
3、从客户机学到的路由,发布给此RR的所有非客户机和客户机。
4、从EBGP对等体学到的路由,发布给所有的非客户机和客户机。
5、RR的配置方便,只需要对作为反射器的BGP设备进行配置,客户机并不需要知道自己是客户机。
四、多集群路由反射器
一个AS中可以存在多个集群,各个集群的RR之间建立IBGP对等体。当RR所处的网络层不同时,可以将较低网络层次的RR配成客户机,形成分级RR。当RR所处的网络层相同时,可以将不同集群的RR全连接,形成同级RR。
1、同级反射器:
(1)当RR所处的网络层相同时,可以将不同集群的RR全互联,形成同级RR。
(2)在一个AS内存在多个集群(反射簇),各个RR是IBGP对等体关系。
(3)为什么使用RR全互联方式,是根据冗余设计,防止单点故障造成通信中断。
下图中,一个骨干网被分成多个反射集群,RR1、RR2、RR3、RR4部署全互联的IBGP邻居关系。每个客户机只与所在集群的RR建立IBGP连接。每个集群cluster的路由器会接收由RR路由反射器发送的路由信息。
2、分级反射器:
当RR所处的网络层不同时,可以将较低网络层次的RR配成客户机,形成分级RR。
下图中,在Cluster 1集群从一台客户机上学习到路由,就会由RR1路由反射器发送给集群内的客户机RR2,这时RR2既是客户机以是反射器,RR2就会把从RR1上学到的路由发送给客户端RR3和RR4,RR3和RR4同时也反射器,分别将学习到的路由发送到各自的集群内。
3、备份路由反射器
为增加网络的可靠性,防止单点故障对网络造成影响,有时需要在一个集群中配置一个以上的RR路由反射器。路由反射器RR1和RR2在同一个集群内,配置了相同的Cluster ID。
五、本例拓扑图
上图中,AR1、AR2为RR路由反射器,有集群cluster1与cluster2,集群中的AR3、AR4为cluster1中的成员,AR5与AR6为cluster2中的成员,AR7与AR8为非客户端non client,AR7与AR1、AR2建立了EBGP邻居关系,AR8与AR2建立iBGP邻居关系。目标:AR1、AR2……AR7均能学习到AR3上BGP路由宣告的100.100.100.100/32的路由,也能学习到AR6上BGP宣告的200.200.200.200/32的路由;AR8这台反射器的非客户机仅能学习到200.200.200.200/32的路由。整张拓扑图的loopback 0用于建立BGP的邻居关系,loopback1用于BGP宣告的路由。
六、配置过程
(一)配置思路
1、配置各设备接口ip
2、OSPF打通所有路由
3、创建BGP路由反射
4、BGP路由network环回
5、检查BGP路由状态
(二)配置指令
1、配置AR1路由反射器
System-view
sysname AR1
router id 1.1.1.1
interface GigabitEthernet0/0/0
ip address 10.0.3.1 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.0.1.1 255.255.255.0
interface GigabitEthernet0/0/2
ip address 10.0.4.1 255.255.255.0
interface GigabitEthernet2/0/0
ip address 10.0.5.1 255.255.255.0
interface GigabitEthernet2/0/1
ip address 10.0.6.1 255.255.255.0
interface GigabitEthernet2/0/2
ip address 10.0.7.1 255.255.255.0
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
bgp 100
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0
peer 7.7.7.7 as-number 200
peer 7.7.7.7 ebgp-max-hop 255
peer 7.7.7.7 connect-interface LoopBack0
group in_1 internal
peer 3.3.3.3 as-number 100
peer 3.3.3.3 group in_1
peer 3.3.3.3 connect-interface LoopBack0
peer 4.4.4.4 as-number 100
peer 4.4.4.4 group in_1
peer 4.4.4.4 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
reflector cluster-id 1
peer 2.2.2.2 enable
peer 2.2.2.2 next-hop-local
peer 7.7.7.7 enable
peer in_1 enable
peer in_1 reflect-client
peer in_1 next-hop-local
peer 3.3.3.3 enable
peer 3.3.3.3 group in_1
peer 4.4.4.4 enable
peer 4.4.4.4 group in_1
ospf 1
area 0.0.0.0
network 0.0.0.0 255.255.255.255
2、配置AR2路由反射器
System-view
sysname AR2
router id 2.2.2.2
interface GigabitEthernet0/0/0
ip address 10.0.3.2 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.0.12.2 255.255.255.0
interface GigabitEthernet0/0/2
ip address 10.0.8.2 255.255.255.0
interface GigabitEthernet2/0/0
ip address 10.0.9.2 255.255.255.0
interface GigabitEthernet2/0/1
ip address 10.0.10.2 255.255.255.0
interface GigabitEthernet2/0/2
ip address 10.0.11.2 255.255.255.0
interface GigabitEthernet2/0/3
ip address 10.0.2.2 255.255.255.0
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
bgp 100
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
peer 7.7.7.7 as-number 200
peer 7.7.7.7 ebgp-max-hop 255
peer 7.7.7.7 connect-interface LoopBack0
peer 8.8.8.8 as-number 100
peer 8.8.8.8 connect-interface LoopBack0
group in_1 internal
group in_2 internal
peer 5.5.5.5 as-number 100
peer 5.5.5.5 group in_2
peer 6.6.6.6 as-number 100
peer 6.6.6.6 group in_2
ipv4-family unicast
undo synchronization
reflector cluster-id 2
peer 1.1.1.1 enable
peer 1.1.1.1 next-hop-local
peer 7.7.7.7 enable
peer 8.8.8.8 enable
peer 8.8.8.8 next-hop-local
peer in_1 enable
peer in_2 enable
peer in_2 reflect-client
peer in_2 next-hop-local
peer 5.5.5.5 enable
peer 5.5.5.5 group in_2
peer 6.6.6.6 enable
peer 6.6.6.6 group in_2
ospf 1
area 0.0.0.0
network 0.0.0.0 255.255.255.255
3、配置cluster1集群中的AR3
System-view
sysname AR3
router id 3.3.3.3
interface GigabitEthernet0/0/0
ip address 10.0.4.3 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.0.8.3 255.255.255.0
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
interface LoopBack1
ip address 100.100.100.100 255.255.255.255
bgp 100
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
network 100.100.100.100 255.255.255.255
peer 1.1.1.1 enable
peer 1.1.1.1 next-hop-local
ospf 1
area 0.0.0.0
network 0.0.0.0 255.255.255.255
4、配置cluster1集群中的AR4
System-view
sysname AR4
router id 4.4.4.4
interface GigabitEthernet0/0/0
ip address 10.0.5.4 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.0.9.4 255.255.255.0
interface LoopBack0
ip address 4.4.4.4 255.255.255.255
bgp 100
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
peer 1.1.1.1 enable
peer 1.1.1.1 next-hop-local
ospf 1
area 0.0.0.0
network 0.0.0.0 255.255.255.255
5、配置cluster2集群中的AR5
System-view
sysname AR4
router id 5.5.5.5
interface GigabitEthernet0/0/0
ip address 10.0.6.5 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.0.10.5 255.255.255.0
interface GigabitEthernet0/0/2
ip address 5.5.5.5 255.255.255.255
bgp 100
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
peer 2.2.2.2 next-hop-local
ospf 1
area 0.0.0.0
network 0.0.0.0 255.255.255.255
6、配置cluster2集群中的AR6
System-view
sysname AR4
router id 6.6.6.6
interface GigabitEthernet0/0/0
ip address 10.0.7.6 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.0.11.6 255.255.255.0
interface GigabitEthernet0/0/2
interface LoopBack0
ip address 6.6.6.6 255.255.255.255
interface LoopBack1
ip address 200.200.200.200 255.255.255.255
bgp 100
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
network 200.200.200.200 255.255.255.255
peer 2.2.2.2 enable
peer 2.2.2.2 next-hop-local
ospf 1
area 0.0.0.0
network 0.0.0.0 255.255.255.255
7、配置non client的AR7
System-view
sysname AR4
router id 7.7.7.7
interface GigabitEthernet0/0/0
ip address 10.0.1.7 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.0.2.7 255.255.255.0
interface LoopBack0
ip address 7.7.7.7 255.255.255.255
bgp 200
peer 1.1.1.1 as-number 100
peer 1.1.1.1 ebgp-max-hop 255
peer 1.1.1.1 connect-interface LoopBack0
peer 2.2.2.2 as-number 100
peer 2.2.2.2 ebgp-max-hop 255
peer 2.2.2.2 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
peer 1.1.1.1 enable
peer 2.2.2.2 enable
ospf 1
area 0.0.0.0
network 0.0.0.0 255.255.255.255
8、配置non client的AR8
System-view
sysname AR4
router id 8.8.8.8
interface GigabitEthernet0/0/0
ip address 10.0.12.8 255.255.255.0
interface LoopBack0
ip address 8.8.8.8 255.255.255.255
bgp 100
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
peer 2.2.2.2 next-hop-local
ospf 1
area 0.0.0.0
network 0.0.0.0 255.255.255.255
七、验证结果
1、在AR1上查看BGP邻居关系
2、在AR2上查看BGP邻居关系
3、在AR3上的BPG路由中宣告loopback 1:100.100.100.100/32和AR4上的BPG路由中宣告loopback1:200.200.200.200/32,路由反射工作正常后,在AR4、AR6上查看BGP路由表,如下图:
可以看出,在AR4上不仅有cluster1中反射的AR3上宣告的路由,也有cluster2中反射的AR6上宣告的路由,说明BGP路由反射器工作正常。
4、在AR5上查看BGP路由表,在AR5上不仅有cluster1中反射的AR3上宣告的路由,也有cluster2中反射的AR6上宣告的路由,如下图:
5、AR7为路由反射器的非客户机,在AR7上与AR1、AR2都建立了EBGP邻居关系,查看AR7上的BGP路由表时,如下图:
6、AR8为路由反射器的非客户机,在AR8上与AR2建立了iBGP邻居关系,查看AR8上的BGP路由表时,仅有cluster 2上AR6宣告的路由。
至此本文结束,可以看出BGP的路由反射器,主要减少IBGP全连接的复杂性和资源消耗,减少设备的开销和管理员的配置工作量,主要用到了路由反射器RR(Route Reflector)、客户机(Client)、非客户机(Non-Client)、集群(Cluster也称反射簇)几个概念。