Route-Reflector-Client
Test BGP route-reflector-client functionality for iBGP sessions. In iBGP, routes learned from one peer are not re-announced to other iBGP peers (split-horizon rule). A Route Reflector (RR) bypasses this rule and reflects routes between its clients. DUT0 acts as the RR, DUT1 and DUT2 are clients. DUT1 announces a network, and DUT2 receives it via reflection through DUT0.
iBGP Without Route Reflector Does Not Propagate Routes
Description
Verify that without route-reflector-client, iBGP does not re-announce routes learned from one peer to another (split-horizon rule). DUT1 announces a network but DUT2 does not receive it.
Scenario
Step 1: Set the following configuration in DUT0 :
set interfaces ethernet eth0 address 10.0.0.1/24 set interfaces ethernet eth1 address 10.0.1.1/24 set protocols bgp 100 neighbor client1 remote-address 10.0.0.2 set protocols bgp 100 neighbor client1 remote-as 100 set protocols bgp 100 neighbor client2 remote-address 10.0.1.2 set protocols bgp 100 neighbor client2 remote-as 100 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 2: Set the following configuration in DUT1 :
set interfaces dummy dum0 address 1.1.1.1/24 set interfaces ethernet eth0 address 10.0.0.2/24 set protocols bgp 100 neighbor rr remote-address 10.0.0.1 set protocols bgp 100 neighbor rr remote-as 100 set protocols bgp 100 redistribute connected set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 3: Set the following configuration in DUT2 :
set interfaces ethernet eth0 address 10.0.1.2/24 set protocols bgp 100 neighbor rr remote-address 10.0.1.1 set protocols bgp 100 neighbor rr remote-as 100 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Attention
Verify iBGP sessions are established between DUT0 and both clients.
Step 4: Run command protocols bgp show ip summary at DUT0 and check if output matches the following regular expressions:
10.0.0.2.*Established.*\n.*10.0.1.2.*EstablishedShow output
IPv4 Unicast Summary: BGP router identifier 10.0.1.1, local AS number 100 VRF default vrf-id 0 BGP table version 2 RIB entries 3, using 384 bytes of memory Peers 2, using 47 KiB of memory Neighbor LocalAddr V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State PfxRcd PfxSnt Desc 10.0.0.2 10.0.0.1 4 100 5 4 2 0 0 00:00:02 Established 2 0 FRRouting/10.4.1 10.0.1.2 10.0.1.1 4 100 3 4 2 0 0 00:00:01 Established 0 0 FRRouting/10.4.1 Total number of neighbors 2
Attention
Verify DUT2 does NOT receive the route 1.1.1.0/24 (iBGP split-horizon).
Step 5: Run command protocols bgp show ip at DUT2 and check if output does not match the following regular expressions:
1.1.1.0/24Show output
No BGP prefixes displayed, 0 exist
Route Reflector Reflects Routes Between Clients
Description
Verify that route-reflector-client enables the Route Reflector to reflect routes from one iBGP client to another. DUT1 announces a network and DUT2 receives it via DUT0 (the RR).
Scenario
Step 1: Set the following configuration in DUT0 :
set interfaces ethernet eth0 address 10.0.0.1/24 set interfaces ethernet eth1 address 10.0.1.1/24 set protocols bgp 100 neighbor client1 remote-address 10.0.0.2 set protocols bgp 100 neighbor client1 remote-as 100 set protocols bgp 100 neighbor client1 route-reflector-client set protocols bgp 100 neighbor client2 remote-address 10.0.1.2 set protocols bgp 100 neighbor client2 remote-as 100 set protocols bgp 100 neighbor client2 route-reflector-client set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 2: Set the following configuration in DUT1 :
set interfaces dummy dum0 address 1.1.1.1/24 set interfaces ethernet eth0 address 10.0.0.2/24 set protocols bgp 100 neighbor rr remote-address 10.0.0.1 set protocols bgp 100 neighbor rr remote-as 100 set protocols bgp 100 redistribute connected set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 3: Set the following configuration in DUT2 :
set interfaces ethernet eth0 address 10.0.1.2/24 set protocols bgp 100 neighbor rr remote-address 10.0.1.1 set protocols bgp 100 neighbor rr remote-as 100 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Attention
Verify iBGP sessions are established between DUT0 (RR) and both clients.
Step 4: Run command protocols bgp show ip summary at DUT0 and check if output matches the following regular expressions:
10.0.0.2.*Established.*\n.*10.0.1.2.*EstablishedShow output
IPv4 Unicast Summary: BGP router identifier 10.0.1.1, local AS number 100 VRF default vrf-id 0 BGP table version 2 RIB entries 3, using 384 bytes of memory Peers 2, using 47 KiB of memory Neighbor LocalAddr V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State PfxRcd PfxSnt Desc 10.0.0.2 10.0.0.1 4 100 5 5 2 0 0 00:00:02 Established 2 2 FRRouting/10.4.1 10.0.1.2 10.0.1.1 4 100 3 5 2 0 0 00:00:01 Established 0 2 FRRouting/10.4.1 Total number of neighbors 2
Attention
Verify DUT2 receives the route 1.1.1.0/24 via route reflection.
Step 5: Run command protocols bgp show ip at DUT2 and check if output matches the following regular expressions:
1.1.1.0/24Show output
BGP table version is 0, local router ID is 10.0.1.2, vrf id 0 Default local pref 100, local AS 100 local address - Status codes: s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path i 1.1.1.0/24 10.0.0.2 0 100 0 ? i 10.0.0.0/24 10.0.0.2 0 100 0 ? Displayed 2 routes and 2 total paths