配置BGP路由反射器示例
BGP反射器避免IBGP邻居全连接,简化了网络,减少了配置工作量,有利于后续维护。
组网需求
在大型网络中,一个AS内存在多台运行BGP协议的路由器,这些路由器之间需要使用BGP相互传递路由,这样就需要所有路由器之间都建立IBGP对等体关系。但是如果在所有路由器之间建立逻辑全连接(Full-mesh)关系,那么路由器的开销和管理员的配置工作量都很大,而且不便于后续维护。用户希望有一种方法既可以简化网络配置,又能减小路由器的开销,同时不能影响路由的传递。
使用路由反射器可以解决这个问题。如图10-38所示,在AS65010内,可以把该AS分为两个Cluster,分别为Cluster1和Cluster2,其中把DeviceB配置成Cluster1的路由反射器,DeviceD和DeviceE是它的两个客户机。把DeviceC配置成Cluster2的路由反射器,DeviceF、DeviceG和DeviceH是它的客户机。DeviceA为DeviceB和DeviceC的非客户机,DeviceB和DeviceC互为非客户机。
本例中interface1,interface2,interface3,interface4,interface5分别代表GE0/1/0,GE0/2/0,GE0/3/0,GE0/1/1,GE0/1/2。
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
---|---|---|---|---|---|
DeviceA |
GE 0/3/0 |
172.16.1.1/24 |
DeviceC |
GE 0/1/1 |
10.1.8.1/24 |
GE 0/1/0 |
10.1.1.2/24 |
GE 0/1/2 |
10.1.9.1/24 |
||
GE 0/2/0 |
10.1.3.2/24 |
DeviceD |
GE 0/1/0 |
10.1.4.2/24 |
|
DeviceB |
GE 0/1/0 |
10.1.1.1/24 |
GE 0/2/0 |
10.1.6.1/24 |
|
GE 0/2/0 |
10.1.4.1/24 |
DeviceE |
GE 0/2/0 |
10.1.6.2/24 |
|
GE 0/3/0 |
10.1.5.1/24 |
GE 0/3/0 |
10.1.5.2/24 |
||
GE 0/1/1 |
10.1.2.1/24 |
DeviceF |
GE 0/1/0 |
10.1.7.2/24 |
|
DeviceC |
GE 0/1/0 |
10.1.2.2/24 |
DeviceG |
GE 0/1/0 |
10.1.8.2/24 |
GE 0/2/0 |
10.1.3.1/24 |
DeviceH |
GE 0/2/0 |
10.1.9.2/24 |
|
GE 0/3/0 |
10.1.7.1/24 |
配置注意事项
在配置过程中,需注意以下事项:
当一个集群里有多个路由反射器时,需要使用reflector cluster-id命令给所有位于同一个集群内的路由反射器配置相同的Cluster ID,以避免路由环路。
引用对等体组时,需注意区分对等体组名称的大小写。
数据准备
为完成此配置例,需准备如下的数据:
DeviceA、DeviceB、DeviceC、DeviceD、DeviceE、DeviceF、DeviceG、DeviceH的Router ID和所在AS号。
DeviceB所在集群的Cluster ID。
操作步骤
- 配置各接口的IP地址(略)
- 配置客户机、非客户机与路由反射器之间的IBGP连接(略)
- 配置路由反射器
# 配置DeviceB。
[~DeviceB] bgp 65010
[*DeviceB–bgp] router-id 2.2.2.2
[*DeviceB–bgp] group in_rr internal
[*DeviceB–bgp] peer 10.1.4.2 group in_rr
[*DeviceB–bgp] peer 10.1.5.2 group in_rr
[*DeviceB–bgp] ipv4-family unicast
[*DeviceB–bgp-af-ipv4] peer in_rr reflect-client
[*DeviceB–bgp-af-ipv4] undo reflect between-clients
[*DeviceB–bgp-af-ipv4] reflector cluster-id 1
[*DeviceB–bgp-af-ipv4] commit
[~DeviceB–bgp-af-ipv4] quit
# 配置DeviceC。
[~DeviceC] bgp 65010
[*DeviceC-bgp] router-id 3.3.3.3
[*DeviceC-bgp] group in_rr internal
[*DeviceC-bgp] peer 10.1.7.2 group in_rr
[*DeviceC-bgp] peer 10.1.8.2 group in_rr
[*DeviceC-bgp] peer 10.1.9.2 group in_rr
[*DeviceC-bgp] ipv4-family unicast
[*DeviceC-bgp-af-ipv4] peer in_rr reflect-client
[*DeviceC-bgp-af-ipv4] reflector cluster-id 2
[*DeviceC-bgp-af-ipv4] commit
[~DeviceC-bgp-af-ipv4] quit
# 查看DeviceD的路由表。
[~DeviceD] display bgp routing-table 172.16.1.0
BGP local router ID : 4.4.4.4 Local AS number : 65010 Paths: 1 available, 0 best, 0 select BGP routing table entry information of 172.16.1.0/24: From: 10.1.4.1 (2.2.2.2) Route Duration: 00h00m14s Relay IP Nexthop: 0.0.0.0 Relay IP Out-Interface: Original nexthop: 10.1.1.2 Qos information : 0x0 AS-path Nil, origin igp, MED 0, localpref 100, pref-val 0, internal, pre 255 Originator: 1.1.1.1 Cluster list: 0.0.0.1 Not advertised to any peer yet
从路由表中可以看到,DeviceD从DeviceB那里学到了DeviceA通告的路由,而且还可以看到该路由的Originator和Cluster_ID属性。
配置文件
DeviceA的配置文件
#
sysname DeviceA
#
interface GigabitEthernet0/1/0
undo shutdown
ip address 10.1.1.2 255.255.255.0
#
interface GigabitEthernet0/2/0
undo shutdown
ip address 10.1.3.2 255.255.255.0
#
interface GigabitEthernet0/3/0
undo shutdown
ip address 172.16.1.1 255.255.255.0
#
bgp 65010
router-id 1.1.1.1
peer 10.1.1.1 as-number 65010
peer 10.1.3.1 as-number 65010
#
ipv4-family unicast
undo synchronization network 172.16.1.0 255.255.255.0
peer 10.1.1.1 enable
peer 10.1.3.1 enable
#
return
DeviceB的配置文件
#
sysname DeviceB
#
interface GigabitEthernet0/1/0
undo shutdown
ip address 10.1.1.1 255.255.255.0
#
interface GigabitEthernet0/2/0
undo shutdown
ip address 10.1.4.1 255.255.255.0
#
interface GigabitEthernet0/3/0
undo shutdown
ip address 10.1.5.1 255.255.255.0
#
interface GigabitEthernet0/1/1
undo shutdown
ip address 10.1.2.1 255.255.255.0
#
bgp 65010
router-id 2.2.2.2
peer 10.1.1.2 as-number 65010
peer 10.1.2.2 as-number 65010
group in_rr internal
peer 10.1.4.2 as-number 65010
peer 10.1.4.2 group in_rr
peer 10.1.5.2 as-number 65010
peer 10.1.5.2 group in_rr
#
ipv4-family unicast
undo synchronization undo reflect between-clients
reflector cluster-id 1
peer 10.1.1.2 enable
peer 10.1.2.2 enable
peer in_rr enable
peer in_rr reflect-client
peer 10.1.4.2 enable
peer 10.1.4.2 group in_rr
peer 10.1.5.2 enable
peer 10.1.5.2 group in_rr
#
return
DeviceC的配置文件
#
sysname DeviceC
#
interface GigabitEthernet0/1/0
undo shutdown
ip address 10.1.2.2 255.255.255.0
#
interface GigabitEthernet0/2/0
undo shutdown
ip address 10.1.3.1 255.255.255.0
#
interface GigabitEthernet0/3/0
undo shutdown
ip address 10.1.7.1 255.255.255.0
#
interface GigabitEthernet0/1/1
undo shutdown
ip address 10.1.8.1 255.255.255.0
#
interface GigabitEthernet0/1/2
undo shutdown
ip address 10.1.9.1 255.255.255.0
#
bgp 65010
router-id 3.3.3.3
peer 10.1.2.1 as-number 65010
peer 10.1.3.2 as-number 65010
group in_rr internal
peer 10.1.7.2 as-number 65010
peer 10.1.7.2 group in_rr
peer 10.1.8.2 as-number 65010
peer 10.1.8.2 group in_rr
peer 10.1.9.2 as-number 65010
peer 10.1.9.2 group in_rr
#
ipv4-family unicast
undo synchronization reflector cluster-id 2
peer 10.1.2.1 enable
peer 10.1.3.2 enable
peer in_rr enable
peer in_rr reflect-client
peer 10.1.7.2 enable
peer 10.1.7.2 group in_rr
peer 10.1.8.2 enable
peer 10.1.8.2 group in_rr
peer 10.1.9.2 enable
peer 10.1.9.2 group in_rr
#
return
DeviceD的配置文件
#
sysname DeviceD
#
interface GigabitEthernet0/1/0
undo shutdown
ip address 10.1.4.2 255.255.255.0
#
interface GigabitEthernet0/2/0
undo shutdown
ip address 10.1.6.1 255.255.255.0
#
bgp 65010
router-id 4.4.4.4
peer 10.1.4.1 as-number 65010
peer 10.1.6.2 as-number 65010
#
ipv4-family unicast
undo synchronization peer 10.1.4.1 enable
peer 10.1.6.2 enable
#
return
其他路由器的配置文件与DeviceD的配置文件类似,此处省略。