Example for Configuring a BGP Route Reflector
Networking Requirements
As shown in Figure 9-27, eight Switches need to form an IBGP network. Full-mesh BGP connections have been established between SwitchB, SwitchD, and SwitchE. Users require that the IBGP network be formed without interrupting full-mesh BGP connections between SwitchB, SwitchD, and SwitchE and require simplified device configuration and management.
Switch |
Interface |
VLANIF Interface |
IP Address |
---|---|---|---|
SwitchA |
10GE 1/0/1 |
VLANIF 10 |
10.1.1.2/24 |
SwitchA |
10GE 1/0/2 |
VLANIF 30 |
10.1.3.2/24 |
SwitchA |
10GE 1/0/3 |
VLANIF 100 |
172.16.1.1/24 |
SwitchB |
10GE 1/0/1 |
VLANIF 10 |
10.1.1.1/24 |
SwitchB |
10GE 1/0/2 |
VLANIF 20 |
10.1.2.1/24 |
SwitchB |
10GE 1/0/3 |
VLANIF 40 |
10.1.4.1/24 |
SwitchB |
10GE 1/0/4 |
VLANIF 50 |
10.1.5.1/24 |
SwitchC |
10GE 1/0/1 |
VLANIF 30 |
10.1.3.1/24 |
SwitchC |
10GE 1/0/2 |
VLANIF 20 |
10.1.2.2/24 |
SwitchC |
10GE 1/0/3 |
VLANIF 70 |
10.1.7.1/24 |
SwitchC |
10GE 1/0/4 |
VLANIF 80 |
10.1.8.1/24 |
SwitchC |
10GE 1/0/5 |
VLANIF 90 |
10.1.9.1/24 |
SwitchD |
10GE 1/0/1 |
VLANIF 40 |
10.1.4.2/24 |
SwitchD |
10GE 1/0/2 |
VLANIF 60 |
10.1.6.1/24 |
SwitchE |
10GE 1/0/1 |
VLANIF 50 |
10.1.5.2/24 |
SwitchE |
10GE 1/0/2 |
VLANIF 60 |
10.1.6.2/24 |
SwitchF |
10GE 1/0/1 |
VLANIF 70 |
10.1.7.2/24 |
SwitchG |
10GE 1/0/1 |
VLANIF 80 |
10.1.8.2/24 |
SwitchH |
10GE 1/0/1 |
VLANIF 90 |
10.1.9.2/24 |
Configuration Roadmap
The configuration roadmap is as follows:
Configure SwitchB as the route reflector of Cluster1 and SwitchD and SwitchE as the clients of SwitchB. Prohibit communication between the clients to form an IBGP network without interrupting full-mesh BGP connections between SwitchB, SwitchD, and SwitchE.
Configure SwitchC as the route reflector of Cluster2 and SwitchF, SwitchG, and SwitchH as the clients of SwitchC to simplify device configuration and management.
Procedure
- Configure the VLAN to which each interface belongs.
<HUAWEI> system-view [~HUAWEI] sysname SwitchA [*HUAWEI] commit [~SwitchA] vlan batch 10 30 100 [*SwitchA] interface 10ge 1/0/1 [*SwitchA-10GE1/0/1] port link-type trunk [*SwitchA-10GE1/0/1] port trunk allow-pass vlan 10 [*SwitchA-10GE1/0/1] quit [*SwitchA] interface 10ge 1/0/2 [*SwitchA-10GE1/0/2] port link-type trunk [*SwitchA-10GE1/0/2] port trunk allow-pass vlan 30 [*SwitchA-10GE1/0/2] quit [*SwitchA] interface 10ge 1/0/3 [*SwitchA-10GE1/0/3] port link-type trunk [*SwitchA-10GE1/0/3] port trunk allow-pass vlan 100 [*SwitchA-10GE1/0/3] quit [*SwitchA] commit
The configurations of SwitchB, SwitchC, SwitchD, SwitchE, SwitchF, SwitchG, and SwitchH are similar to the configuration of SwitchA, and are not provided here.
- Configure VLANIF interfaces and assign IP addresses to the VLANIF interfaces.
[~SwitchA] interface vlanif 10 [*SwitchA-Vlanif10] ip address 10.1.1.2 24 [*SwitchA-Vlanif10] quit [*SwitchA] interface vlanif 30 [*SwitchA-Vlanif30] ip address 10.1.3.2 24 [*SwitchA-Vlanif30] quit [*SwitchA] interface vlanif 100 [*SwitchA-Vlanif100] ip address 172.16.1.1 24 [*SwitchA-Vlanif100] quit [*SwitchA] commit
The configurations of SwitchB, SwitchC, SwitchD, SwitchE, SwitchF, SwitchG, and SwitchH are similar to the configuration of SwitchA, and are not provided here.
- Configure IBGP connections between clients, non-clients, and route reflectors.
# Configure SwitchF.
[~SwitchF] bgp 65010 [*SwitchF-bgp] router-id 192.168.6.6 [*SwitchF-bgp] peer 10.1.7.1 as-number 65010 [*SwitchF-bgp] quit [*SwitchF] commit
The configurations of SwitchA, SwitchB, SwitchC, SwitchD, SwitchE, SwitchG, and SwitchH are similar to the configuration of SwitchF, and are not provided here.
- Configure a route reflector on SwitchB and SwitchC.
# Configure SwitchB.
[~SwitchB] bgp 65010
[*SwitchB–bgp] router-id 192.168.2.2
[*SwitchB–bgp] group in_rr internal
[*SwitchB–bgp] peer 10.1.4.2 group in_rr
[*SwitchB–bgp] peer 10.1.5.2 group in_rr
[*SwitchB–bgp] ipv4-family unicast
[*SwitchB–bgp-af-ipv4] peer in_rr reflect-client
[*SwitchB–bgp-af-ipv4] undo reflect between-clients
[*SwitchB–bgp-af-ipv4] reflector cluster-id 1
[*SwitchB–bgp-af-ipv4] commit
[~SwitchB–bgp-af-ipv4] quit
# Configure SwitchC.
[~SwitchC] bgp 65010
[*SwitchC-bgp] router-id 192.168.3.3
[*SwitchC-bgp] group in_rr internal
[*SwitchC-bgp] peer 10.1.7.2 group in_rr
[*SwitchC-bgp] peer 10.1.8.2 group in_rr
[*SwitchC-bgp] peer 10.1.9.2 group in_rr
[*SwitchC-bgp] ipv4-family unicast
[*SwitchC-bgp-af-ipv4] peer in_rr reflect-client
[*SwitchC-bgp-af-ipv4] reflector cluster-id 2
[*SwitchC-bgp-af-ipv4] commit
[~SwitchC-bgp-af-ipv4] quit
# View the BGP routing table of SwitchD.
[~SwitchD] display bgp routing-table 172.16.1.0
BGP local router ID : 192.168.4.4 Local AS number : 65010 Paths: 1 available, 0 best, 0 select, 0 best-external, 0 add-path 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: 192.168.1.1 Cluster list: 0.0.0.1 Not advertised to any peer yet
In the BGP routing table, you can see that SwitchD has learned from SwitchB the route advertised from SwitchA, and see the Originator_ID and Cluster_List attributes of the route.
Configuration Files
Configuration file of SwitchA
# sysname SwitchA # vlan batch 10 30 100 # interface Vlanif10 ip address 10.1.1.2 255.255.255.0 # interface Vlanif30 ip address 10.1.3.2 255.255.255.0 # interface Vlanif100 ip address 172.16.1.1 255.255.255.0 # interface 10GE1/0/1 port link-type trunk port trunk allow-pass vlan 10 # interface 10GE1/0/2 port link-type trunk port trunk allow-pass vlan 30 # interface 10GE1/0/3 port link-type trunk port trunk allow-pass vlan 100 # bgp 65010 router-id 192.168.1.1 peer 10.1.1.1 as-number 65010 peer 10.1.3.1 as-number 65010 # ipv4-family unicast network 172.16.1.0 255.255.255.0 peer 10.1.1.1 enable peer 10.1.3.1 enable # return
Configuration file of SwitchB
# sysname SwitchB # vlan batch 10 20 40 50 # interface Vlanif10 ip address 10.1.1.1 255.255.255.0 # interface Vlanif20 ip address 10.1.2.1 255.255.255.0 # interface Vlanif40 ip address 10.1.4.1 255.255.255.0 # interface Vlanif50 ip address 10.1.5.1 255.255.255.0 # interface 10GE1/0/1 port link-type trunk port trunk allow-pass vlan 10 # interface 10GE1/0/2 port link-type trunk port trunk allow-pass vlan 20 # interface 10GE1/0/3 port link-type trunk port trunk allow-pass vlan 40 # interface 10GE1/0/4 port link-type trunk port trunk allow-pass vlan 50 # bgp 65010 router-id 192.168.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 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
Configuration file of SwitchC
# sysname SwitchC # vlan batch 20 30 70 80 90 # interface Vlanif20 ip address 10.1.2.2 255.255.255.0 # interface Vlanif30 ip address 10.1.3.1 255.255.255.0 # interface Vlanif70 ip address 10.1.7.1 255.255.255.0 # interface Vlanif80 ip address 10.1.8.1 255.255.255.0 # interface Vlanif90 ip address 10.1. 255.255.255.0 # interface 10GE1/0/1 port link-type trunk port trunk allow-pass vlan 30 # interface 10GE1/0/2 port link-type trunk port trunk allow-pass vlan 20 # interface 10GE1/0/3 port link-type trunk port trunk allow-pass vlan 70 # interface 10GE1/0/4 port link-type trunk port trunk allow-pass vlan 80 # interface 10GE1/0/5 port link-type trunk port trunk allow-pass vlan 90 # bgp 65010 router-id 192.168.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 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
Configuration file of SwitchD
# sysname SwitchD # vlan batch 40 60 # interface Vlanif40 ip address 10.1.4.2 255.255.255.0 # interface Vlanif60 ip address 10.1.6.1 255.255.255.0 # interface 10GE1/0/1 port link-type trunk port trunk allow-pass vlan 40 # interface 10GE1/0/2 port link-type trunk port trunk allow-pass vlan 60 # bgp 65010 router-id 192.168.4.4 peer 10.1.4.1 as-number 65010 peer 10.1.6.2 as-number 65010 # ipv4-family unicast peer 10.1.4.1 enable peer 10.1.6.2 enable # return
The configuration files of the other switches are similar to the configuration file of SwitchD, and are not provided here.