Redistribute Bgp

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

../../../../_images/redistributebgp.svg

Test RIP Redistribute BGP

Description

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

Scenario

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address 10.1.1.100/24
set interfaces ethernet eth1 address 10.2.2.100/24
set protocols bgp 10 neighbor peer remote-address 10.1.1.1
set protocols bgp 10 neighbor peer remote-as 10
set protocols rip network 10.2.2.0/24
set protocols rip redistribute bgp
set protocols rip 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 192.168.100.1/24
set interfaces ethernet eth0 address 10.1.1.1/24
set protocols bgp 10 neighbor peer remote-address 10.1.1.100
set protocols bgp 10 neighbor peer remote-as 10
set protocols bgp 10 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 eth1 address 10.2.2.2/24
set protocols rip network 10.2.2.0/24
set protocols rip 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 ip summary at DUT0 and check if output matches the following regular expressions:

10.1.1.1
Show output
IPv4 Unicast Summary:
BGP router identifier 10.2.2.100, 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
10.1.1.1        10.1.1.100      4         10         2         3        0    0    0 00:00:01  Established        0        0 FRRouting/10.4.1

Total number of neighbors 1

Attention

Verify DUT0 learns the BGP route 192.168.100.0/24 from DUT1

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

192.168.100.0/24
Show output
BGP table version is 2, local router ID is 10.2.2.100, 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
 *ui 10.1.1.0/24      10.1.1.1                 0    100      0 ?
 *ui 192.168.100.0/24 10.1.1.1                 0    100      0 ?

Displayed 2 routes and 2 total paths

Attention

Verify DUT2 learns the redistributed BGP route 192.168.100.0/24 via RIP

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

R\(n\) +192.168.100.0/24
Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIP, 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

     Network            Next Hop         Metric From            Tag Time
C(i) 10.2.2.0/24        0.0.0.0               1 self              0
R(n) 192.168.100.0/24   10.2.2.100            2 10.2.2.100        0 02:59

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

R>\* +192.168.100.0/24
Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIP, 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,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

IPv4 unicast VRF default:
C>* 10.2.2.0/24 is directly connected, eth1, weight 1, 00:00:03
L>* 10.2.2.2/32 is directly connected, eth1, weight 1, 00:00:03
R>* 192.168.100.0/24 [120/2] via 10.2.2.100, eth1, weight 1, 00:00:02

Test RIP Redistribute BGP With Metric

Description

Test RIP 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 10.1.1.100/24
set interfaces ethernet eth1 address 10.2.2.100/24
set protocols bgp 10 neighbor peer remote-address 10.1.1.1
set protocols bgp 10 neighbor peer remote-as 10
set protocols rip network 10.2.2.0/24
set protocols rip redistribute bgp metric 5
set protocols rip 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 192.168.100.1/24
set interfaces ethernet eth0 address 10.1.1.1/24
set protocols bgp 10 neighbor peer remote-address 10.1.1.100
set protocols bgp 10 neighbor peer remote-as 10
set protocols bgp 10 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 eth1 address 10.2.2.2/24
set protocols rip network 10.2.2.0/24
set protocols rip 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 ip summary at DUT0 and check if output matches the following regular expressions:

10.1.1.1
Show output
IPv4 Unicast Summary:
BGP router identifier 10.2.2.100, 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
10.1.1.1        10.1.1.100      4         10         2         3        0    0    0 00:00:00  Established        0        0 FRRouting/10.4.1

Total number of neighbors 1

Attention

Verify DUT0 learns the BGP route 192.168.100.0/24 from DUT1

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

192.168.100.0/24
Show output
BGP table version is 2, local router ID is 10.2.2.100, 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
 *ui 10.1.1.0/24      10.1.1.1                 0    100      0 ?
 *ui 192.168.100.0/24 10.1.1.1                 0    100      0 ?

Displayed 2 routes and 2 total paths

Attention

Verify DUT2 learns route 192.168.100.0/24 with metric 6

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

R\(n\) +192.168.100.0/24\s+10.2.2.100\s+6\s+10.2.2.100
Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIP, 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

     Network            Next Hop         Metric From            Tag Time
C(i) 10.2.2.0/24        0.0.0.0               1 self              0
R(n) 192.168.100.0/24   10.2.2.100            6 10.2.2.100        0 02:59

Test RIP Redistribute BGP Metric 16 Route Not Announced

Description

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

Scenario

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address 10.1.1.100/24
set interfaces ethernet eth1 address 10.2.2.100/24
set protocols bgp 10 neighbor peer remote-address 10.1.1.1
set protocols bgp 10 neighbor peer remote-as 10
set protocols rip network 10.2.2.0/24
set protocols rip redistribute bgp metric 16
set protocols rip 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 192.168.100.1/24
set interfaces ethernet eth0 address 10.1.1.1/24
set protocols bgp 10 neighbor peer remote-address 10.1.1.100
set protocols bgp 10 neighbor peer remote-as 10
set protocols bgp 10 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 eth1 address 10.2.2.2/24
set protocols rip network 10.2.2.0/24
set protocols rip 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 ip summary at DUT0 and check if output matches the following regular expressions:

10.1.1.1
Show output
IPv4 Unicast Summary:
BGP router identifier 10.2.2.100, 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
10.1.1.1        10.1.1.100      4         10         2         3        0    0    0 00:00:00  Established        0        0 FRRouting/10.4.1

Total number of neighbors 1

Attention

Verify DUT0 learns the BGP route 192.168.100.0/24 from DUT1

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

192.168.100.0/24
Show output
BGP table version is 2, local router ID is 10.2.2.100, 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 10.1.1.0/24      10.1.1.1                 0    100      0 ?
 *>i 192.168.100.0/24 10.1.1.1                 0    100      0 ?

Displayed 2 routes and 2 total paths

Attention

Verify DUT2 does not see route 192.168.100.0/24 in RIP database

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

Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIP, 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

     Network            Next Hop         Metric From            Tag Time
C(i) 10.2.2.0/24        0.0.0.0               1 self              0

Test RIP Redistribute BGP With Route-Map

Description

Test RIP redistribute bgp route-map filtering functionality. DUT1 announces two dummy routes (dum0 and dum1) via BGP. DUT0 uses a route-map to only redistribute 192.168.100.0/24 to RIP. DUT2 learns only the matching route, while 192.168.200.0/24 is filtered out.

Scenario

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address 10.1.1.100/24
set interfaces ethernet eth1 address 10.2.2.100/24
set protocols bgp 10 neighbor peer remote-address 10.1.1.1
set protocols bgp 10 neighbor peer remote-as 10
set protocols ip prefix-list ALLOW-DUM0 rule 1 action permit
set protocols ip prefix-list ALLOW-DUM0 rule 1 prefix 192.168.100.0/24
set protocols rip network 10.2.2.0/24
set protocols rip redistribute bgp route-map FILTER-BGP
set protocols rip timers update 5
set protocols route-map FILTER-BGP rule 1 action permit
set protocols route-map FILTER-BGP rule 1 match ip 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 192.168.100.1/24
set interfaces dummy dum1 address 192.168.200.1/24
set interfaces ethernet eth0 address 10.1.1.1/24
set protocols bgp 10 neighbor peer remote-address 10.1.1.100
set protocols bgp 10 neighbor peer remote-as 10
set protocols bgp 10 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 eth1 address 10.2.2.2/24
set protocols rip network 10.2.2.0/24
set protocols rip 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 ip summary at DUT0 and check if output matches the following regular expressions:

10.1.1.1
Show output
IPv4 Unicast Summary:
BGP router identifier 10.2.2.100, 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
10.1.1.1        10.1.1.100      4         10         2         3        0    0    0 00:00:00  Established        0        0 FRRouting/10.4.1

Total number of neighbors 1

Attention

Verify DUT0 learns both BGP routes from DUT1

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

192.168.100.0/24
Show output
BGP table version is 3, local router ID is 10.2.2.100, 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
 *ui 10.1.1.0/24      10.1.1.1                 0    100      0 ?
 *ui 192.168.100.0/24 10.1.1.1                 0    100      0 ?
 *ui 192.168.200.0/24 10.1.1.1                 0    100      0 ?

Displayed 3 routes and 3 total paths

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

192.168.200.0/24
Show output
BGP table version is 3, local router ID is 10.2.2.100, 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 10.1.1.0/24      10.1.1.1                 0    100      0 ?
 *>i 192.168.100.0/24 10.1.1.1                 0    100      0 ?
 *>i 192.168.200.0/24 10.1.1.1                 0    100      0 ?

Displayed 3 routes and 3 total paths

Attention

Verify DUT2 learns only 192.168.100.0/24 (matching route-map)

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

R\(n\) +192.168.100.0/24
Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIP, 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

     Network            Next Hop         Metric From            Tag Time
C(i) 10.2.2.0/24        0.0.0.0               1 self              0
R(n) 192.168.100.0/24   10.2.2.100            2 10.2.2.100        0 02:59

Attention

Verify DUT2 does NOT learn 192.168.200.0/24 (filtered by route-map)

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

Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIP, 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

     Network            Next Hop         Metric From            Tag Time
C(i) 10.2.2.0/24        0.0.0.0               1 self              0
R(n) 192.168.100.0/24   10.2.2.100            2 10.2.2.100        0 02:59