Redistribute Bgp

Scenario to verify RIPng redistribute bgp functionality with metric configuration and route-map filtering options.

../../../../_images/redistributebgp1.svg

Test RIPng Redistribute BGP

Description

Test RIPng redistribute bgp basic functionality across three routers. DUT1 (BGP AS 10) announces a dummy interface route via BGP. DUT0 (BGP AS 10 + RIPng) learns the route via BGP and redistributes it to RIPng. DUT2 (RIPng only) learns the BGP route through RIPng redistribution.

Scenario

Warning

BGP router-id must be explicitly configured. If no IPv4 address exists on the system, BGP will fail to establish without a manual router-id.

Step 1: Set the following configuration in DUT0 :

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

Attention

Verify BGP session is established between DUT0 and DUT1

Step 4: Run command protocols bgp show ipv6 summary at DUT0 and check if output matches the following regular expressions:

2001:db8:1::1
Show output
IPv6 Unicast Summary:
BGP router identifier 1.1.1.1, local AS number 10 VRF default vrf-id 0
BGP table version 0
RIB entries 0, using 0 bytes of memory
Peers 1, using 24 KiB of memory

Neighbor        LocalAddr       V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down        State   PfxRcd   PfxSnt Desc
2001:db8:1::1   0.0.0.0         4         10         0         0        0    0    0    never      Connect        0        0 N/A

Total number of neighbors 1

Attention

Verify DUT0 learns the BGP route 2001:db8:100::/64 from DUT1

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

2001:db8:100::/64
Show output
BGP table version is 2, local router ID is 1.1.1.1, vrf id 0
Default local pref 100, local AS 10
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  fe80::dcad:beff:feef:6c10
                                             0    100      0 ?
 *>i 2001:db8:100::/64
                    fe80::dcad:beff:feef:6c10
                                             0    100      0 ?

Displayed 2 routes and 2 total paths

Attention

Verify DUT2 learns the redistributed BGP route 2001:db8:100::/64 via RIPng

Step 6: Run command protocols ripng show at DUT2 and check if output matches the following regular expressions:

R\(n\) +2001:db8:100::/64
Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric, t - Table-Direct
Sub-codes:
      (n) - normal, (s) - static, (d) - default, (r) - redistribute,
      (i) - interface, (a/S) - aggregated/Suppressed

   Network      Next Hop                      Via     Metric Tag Time
C(i) 2001:db8:2::/64
                  ::                          self       1    0
R(n) 2001:db8:100::/64
                  fe80::dcad:beff:feef:6c01   eth1       2    0  02:58

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

R>\* +2001:db8:100::/64
Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric, t - Table-Direct,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

IPv6 unicast VRF default:
C>* 2001:db8:2::/64 is directly connected, eth1, weight 1, 00:00:02
K * 2001:db8:2::/64 [0/256] is directly connected, eth1, weight 1, 00:00:04
L>* 2001:db8:2::2/128 is directly connected, eth1, weight 1, 00:00:02
R>* 2001:db8:100::/64 [120/2] via fe80::dcad:beff:feef:6c01, eth1, weight 1, 00:00:01
C>* fe80::/64 is directly connected, eth1, weight 1, 00:00:03

Test RIPng Redistribute BGP With Metric

Description

Test RIPng redistribute bgp metric with a custom value (metric 5). DUT0 redistributes BGP routes with metric 5. DUT2 learns the route with metric 6 (incremented by 1 hop).

Scenario

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address '2001:db8:1::100/64'
set interfaces ethernet eth1 address '2001:db8:2::100/64'
set protocols bgp 10 neighbor peer address-family ipv6-unicast activate
set protocols bgp 10 neighbor peer remote-address '2001:db8:1::1'
set protocols bgp 10 neighbor peer remote-as 10
set protocols bgp 10 parameters router-id 1.1.1.1
set protocols ripng network '2001:db8:2::/64'
set protocols ripng redistribute bgp metric 5
set protocols ripng timers update 5
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:100::1/64'
set interfaces ethernet eth0 address '2001:db8:1::1/64'
set protocols bgp 10 address-family ipv6-unicast redistribute connected
set protocols bgp 10 neighbor peer address-family ipv6-unicast activate
set protocols bgp 10 neighbor peer remote-address '2001:db8:1::100'
set protocols bgp 10 neighbor peer remote-as 10
set protocols bgp 10 parameters router-id 2.2.2.2
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 ripng network '2001:db8:2::/64'
set protocols ripng timers update 5
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Attention

Verify BGP session is established between DUT0 and DUT1

Step 4: Run command protocols bgp show ipv6 summary at DUT0 and check if output matches the following regular expressions:

2001:db8:1::1
Show output
IPv6 Unicast Summary:
BGP router identifier 1.1.1.1, local AS number 10 VRF default vrf-id 0
BGP table version 0
RIB entries 0, using 0 bytes of memory
Peers 1, using 24 KiB of memory

Neighbor        LocalAddr       V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down        State   PfxRcd   PfxSnt Desc
2001:db8:1::1   0.0.0.0         4         10         0         0        0    0    0    never      Connect        0        0 N/A

Total number of neighbors 1

Attention

Verify DUT0 learns the BGP route 2001:db8:100::/64 from DUT1

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

2001:db8:100::/64
Show output
BGP table version is 2, local router ID is 1.1.1.1, vrf id 0
Default local pref 100, local AS 10
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  fe80::dcad:beff:feef:6c10
                                             0    100      0 ?
 *>i 2001:db8:100::/64
                    fe80::dcad:beff:feef:6c10
                                             0    100      0 ?

Displayed 2 routes and 2 total paths

Attention

Verify DUT2 learns route 2001:db8:100::/64 with metric 6

Step 6: Run command protocols ripng show at DUT2 and check if output matches the following regular expressions:

R\(n\) +2001:db8:100::/64[\s\S]+eth1 +6
Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric, t - Table-Direct
Sub-codes:
      (n) - normal, (s) - static, (d) - default, (r) - redistribute,
      (i) - interface, (a/S) - aggregated/Suppressed

   Network      Next Hop                      Via     Metric Tag Time
C(i) 2001:db8:2::/64
                  ::                          self       1    0
R(n) 2001:db8:100::/64
                  fe80::dcad:beff:feef:6c01   eth1       6    0  02:58

Test RIPng Redistribute BGP Metric 16 Route Not Announced

Description

Test RIPng redistribute bgp metric 16 - route is not announced. When DUT0 redistributes BGP routes with metric 16 (infinity), the routes are not announced to RIPng neighbors. DUT2 does not see the route.

Scenario

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address '2001:db8:1::100/64'
set interfaces ethernet eth1 address '2001:db8:2::100/64'
set protocols bgp 10 neighbor peer address-family ipv6-unicast activate
set protocols bgp 10 neighbor peer remote-address '2001:db8:1::1'
set protocols bgp 10 neighbor peer remote-as 10
set protocols bgp 10 parameters router-id 1.1.1.1
set protocols ripng network '2001:db8:2::/64'
set protocols ripng redistribute bgp metric 16
set protocols ripng timers update 5
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:100::1/64'
set interfaces ethernet eth0 address '2001:db8:1::1/64'
set protocols bgp 10 address-family ipv6-unicast redistribute connected
set protocols bgp 10 neighbor peer address-family ipv6-unicast activate
set protocols bgp 10 neighbor peer remote-address '2001:db8:1::100'
set protocols bgp 10 neighbor peer remote-as 10
set protocols bgp 10 parameters router-id 2.2.2.2
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 ripng network '2001:db8:2::/64'
set protocols ripng timers update 5
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Attention

Verify BGP session is established between DUT0 and DUT1

Step 4: Run command protocols bgp show ipv6 summary at DUT0 and check if output matches the following regular expressions:

2001:db8:1::1
Show output
IPv6 Unicast Summary:
BGP router identifier 1.1.1.1, local AS number 10 VRF default vrf-id 0
BGP table version 0
RIB entries 0, using 0 bytes of memory
Peers 1, using 24 KiB of memory

Neighbor        LocalAddr       V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down        State   PfxRcd   PfxSnt Desc
2001:db8:1::1   0.0.0.0         4         10         0         0        0    0    0    never      Connect        0        0 N/A

Total number of neighbors 1

Attention

Verify DUT0 learns the BGP route 2001:db8:100::/64 from DUT1

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

2001:db8:100::/64
Show output
BGP table version is 2, local router ID is 1.1.1.1, vrf id 0
Default local pref 100, local AS 10
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  fe80::dcad:beff:feef:6c10
                                             0    100      0 ?
 *>i 2001:db8:100::/64
                    fe80::dcad:beff:feef:6c10
                                             0    100      0 ?

Displayed 2 routes and 2 total paths

Attention

Verify DUT2 does not see route 2001:db8:100::/64 in RIPng database

Step 6: Run command protocols ripng show at DUT2 and expect this output:

Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric, t - Table-Direct
Sub-codes:
      (n) - normal, (s) - static, (d) - default, (r) - redistribute,
      (i) - interface, (a/S) - aggregated/Suppressed

   Network      Next Hop                      Via     Metric Tag Time
C(i) 2001:db8:2::/64
                  ::                          self       1    0

Test RIPng Redistribute BGP With Route-Map

Description

Test RIPng redistribute bgp route-map filtering functionality. DUT1 announces two dummy routes (dum0 and dum1) via BGP. DUT0 uses a route-map to only redistribute 2001:db8:100::/64 to RIPng. DUT2 learns only the matching route, while 2001:db8:200::/64 is filtered out.

Scenario

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address '2001:db8:1::100/64'
set interfaces ethernet eth1 address '2001:db8:2::100/64'
set protocols bgp 10 neighbor peer address-family ipv6-unicast activate
set protocols bgp 10 neighbor peer remote-address '2001:db8:1::1'
set protocols bgp 10 neighbor peer remote-as 10
set protocols bgp 10 parameters router-id 1.1.1.1
set protocols ipv6 prefix-list ALLOW-DUM0 rule 1 action permit
set protocols ipv6 prefix-list ALLOW-DUM0 rule 1 prefix '2001:db8:100::/64'
set protocols ripng network '2001:db8:2::/64'
set protocols ripng redistribute bgp route-map FILTER-BGP
set protocols ripng timers update 5
set protocols route-map FILTER-BGP rule 1 action permit
set protocols route-map FILTER-BGP rule 1 match ipv6 address prefix-list ALLOW-DUM0
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:100::1/64'
set interfaces dummy dum1 address '2001:db8:200::1/64'
set interfaces ethernet eth0 address '2001:db8:1::1/64'
set protocols bgp 10 address-family ipv6-unicast redistribute connected
set protocols bgp 10 neighbor peer address-family ipv6-unicast activate
set protocols bgp 10 neighbor peer remote-address '2001:db8:1::100'
set protocols bgp 10 neighbor peer remote-as 10
set protocols bgp 10 parameters router-id 2.2.2.2
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 ripng network '2001:db8:2::/64'
set protocols ripng timers update 5
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Attention

Verify BGP session is established between DUT0 and DUT1

Step 4: Run command protocols bgp show ipv6 summary at DUT0 and check if output matches the following regular expressions:

2001:db8:1::1
Show output
IPv6 Unicast Summary:
BGP router identifier 1.1.1.1, local AS number 10 VRF default vrf-id 0
BGP table version 0
RIB entries 0, using 0 bytes of memory
Peers 1, using 24 KiB of memory

Neighbor        LocalAddr       V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down        State   PfxRcd   PfxSnt Desc
2001:db8:1::1   0.0.0.0         4         10         0         0        0    0    0    never      Connect        0        0 N/A

Total number of neighbors 1

Attention

Verify DUT0 learns both BGP routes from DUT1

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

2001:db8:100::/64
Show output
BGP table version is 3, local router ID is 1.1.1.1, vrf id 0
Default local pref 100, local AS 10
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  fe80::dcad:beff:feef:6c10
                                             0    100      0 ?
 *>i 2001:db8:100::/64
                    fe80::dcad:beff:feef:6c10
                                             0    100      0 ?
 *>i 2001:db8:200::/64
                    fe80::dcad:beff:feef:6c10
                                             0    100      0 ?

Displayed 3 routes and 3 total paths

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

2001:db8:200::/64
Show output
BGP table version is 3, local router ID is 1.1.1.1, vrf id 0
Default local pref 100, local AS 10
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  fe80::dcad:beff:feef:6c10
                                             0    100      0 ?
 *>i 2001:db8:100::/64
                    fe80::dcad:beff:feef:6c10
                                             0    100      0 ?
 *>i 2001:db8:200::/64
                    fe80::dcad:beff:feef:6c10
                                             0    100      0 ?

Displayed 3 routes and 3 total paths

Attention

Verify DUT2 learns only 2001:db8:100::/64 (matching route-map)

Step 7: Run command protocols ripng show at DUT2 and check if output matches the following regular expressions:

R\(n\) +2001:db8:100::/64
Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric, t - Table-Direct
Sub-codes:
      (n) - normal, (s) - static, (d) - default, (r) - redistribute,
      (i) - interface, (a/S) - aggregated/Suppressed

   Network      Next Hop                      Via     Metric Tag Time
C(i) 2001:db8:2::/64
                  ::                          self       1    0
R(n) 2001:db8:100::/64
                  fe80::dcad:beff:feef:6c01   eth1       2    0  02:58

Attention

Verify DUT2 does NOT learn 2001:db8:200::/64 (filtered by route-map)

Step 8: Run command protocols ripng show at DUT2 and expect this output:

Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric, t - Table-Direct
Sub-codes:
      (n) - normal, (s) - static, (d) - default, (r) - redistribute,
      (i) - interface, (a/S) - aggregated/Suppressed

   Network      Next Hop                      Via     Metric Tag Time
C(i) 2001:db8:2::/64
                  ::                          self       1    0
R(n) 2001:db8:100::/64
                  fe80::dcad:beff:feef:6c01   eth1       2    0  02:58