Route-Reflector-Client

Test BGP address-family ipv6-unicast 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.

../../../../../../_images/route-reflector-client.svg

iBGP IPv6 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 '2001:db8:1::1/64'
set interfaces ethernet eth1 address '2001:db8:2::1/64'
set protocols bgp 100 neighbor client1 address-family ipv6-unicast activate
set protocols bgp 100 neighbor client1 remote-address '2001:db8:1::2'
set protocols bgp 100 neighbor client1 remote-as 100
set protocols bgp 100 neighbor client2 address-family ipv6-unicast activate
set protocols bgp 100 neighbor client2 remote-address '2001:db8:2::2'
set protocols bgp 100 neighbor client2 remote-as 100
set protocols bgp 100 parameters router-id 1.1.1.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 '2001:db8:10::1/64'
set interfaces ethernet eth0 address '2001:db8:1::2/64'
set protocols bgp 100 address-family ipv6-unicast redistribute connected
set protocols bgp 100 neighbor rr address-family ipv6-unicast activate
set protocols bgp 100 neighbor rr remote-address '2001:db8:1::1'
set protocols bgp 100 neighbor rr remote-as 100
set protocols bgp 100 parameters router-id 1.1.1.1
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Set the following configuration in DUT2 :

set interfaces ethernet eth1 address '2001:db8:2::2/64'
set protocols bgp 100 neighbor rr address-family ipv6-unicast activate
set protocols bgp 100 neighbor rr remote-address '2001:db8:2::1'
set protocols bgp 100 neighbor rr remote-as 100
set protocols bgp 100 parameters router-id 1.1.1.2
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 ipv6 summary at DUT0 and check if output matches the following regular expressions:

2001:db8:1::2.*Established.*\n.*2001:db8:2::2.*Established
Show output
IPv6 Unicast Summary:
BGP router identifier 1.1.1.100, local AS number 100 VRF default vrf-id 0
BGP table version 0
RIB entries 0, using 0 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
2001:db8:1::2   0.0.0.0         4        100         4         4        0    0    0 00:00:01  Established        0        0 FRRouting/10.4.1
2001:db8:2::2   0.0.0.0         4        100         2         2        0    0    0 00:00:00  Established        0        0 FRRouting/10.4.1

Total number of neighbors 2

Attention

Verify DUT2 does NOT receive the route 2001:db8:10::/64 (iBGP split-horizon).

Step 5: Run command protocols bgp show ipv6 at DUT2 and check if output does not match the following regular expressions:

2001:db8:10::/64
Show output
No BGP prefixes displayed, 0 exist

Route Reflector IPv6 Reflects Routes Between Clients

Description

Verify that address-family ipv6-unicast 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 '2001:db8:1::1/64'
set interfaces ethernet eth1 address '2001:db8:2::1/64'
set protocols bgp 100 neighbor client1 address-family ipv6-unicast activate
set protocols bgp 100 neighbor client1 address-family ipv6-unicast route-reflector-client
set protocols bgp 100 neighbor client1 remote-address '2001:db8:1::2'
set protocols bgp 100 neighbor client1 remote-as 100
set protocols bgp 100 neighbor client2 address-family ipv6-unicast activate
set protocols bgp 100 neighbor client2 address-family ipv6-unicast route-reflector-client
set protocols bgp 100 neighbor client2 remote-address '2001:db8:2::2'
set protocols bgp 100 neighbor client2 remote-as 100
set protocols bgp 100 parameters router-id 1.1.1.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 '2001:db8:10::1/64'
set interfaces ethernet eth0 address '2001:db8:1::2/64'
set protocols bgp 100 address-family ipv6-unicast redistribute connected
set protocols bgp 100 neighbor rr address-family ipv6-unicast activate
set protocols bgp 100 neighbor rr remote-address '2001:db8:1::1'
set protocols bgp 100 neighbor rr remote-as 100
set protocols bgp 100 parameters router-id 1.1.1.1
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Set the following configuration in DUT2 :

set interfaces ethernet eth1 address '2001:db8:2::2/64'
set protocols bgp 100 neighbor rr address-family ipv6-unicast activate
set protocols bgp 100 neighbor rr remote-address '2001:db8:2::1'
set protocols bgp 100 neighbor rr remote-as 100
set protocols bgp 100 parameters router-id 1.1.1.2
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 ipv6 summary at DUT0 and check if output matches the following regular expressions:

2001:db8:1::2.*Established.*\n.*2001:db8:2::2.*Established
Show output
IPv6 Unicast Summary:
BGP router identifier 1.1.1.100, 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
2001:db8:1::2   0.0.0.0         4        100         6         5        2    0    0 00:00:02  Established        2        2 FRRouting/10.4.1
2001:db8:2::2   0.0.0.0         4        100         2         3        0    0    0 00:00:00  Established        0        0 FRRouting/10.4.1

Total number of neighbors 2

Attention

Verify DUT2 receives the route 2001:db8:10::/64 via route reflection.

Step 5: Run command protocols bgp show ipv6 at DUT2 and check if output matches the following regular expressions:

2001:db8:10::/64
Show output
BGP table version is 0, local router ID is 1.1.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 2001:db8:1::/64  2001:db8:1::2            0    100      0 ?
   i 2001:db8:10::/64 2001:db8:1::2            0    100      0 ?

Displayed 2 routes and 2 total paths