Redistribute Ospfv3
Scenario to verify RIPng redistribute ospfv3 functionality with metric configuration and route-map filtering options.
Test RIPng Redistribute OSPFv3
Description
Test RIPng redistribute ospfv3 basic functionality across three routers. DUT1 (OSPFv3) announces a dummy interface route via OSPFv3. DUT0 (OSPFv3 + RIPng) learns the route via OSPFv3 and redistributes it to RIPng. DUT2 (RIPng only) learns the OSPFv3 route through RIPng redistribution.
Scenario
Warning
OSPFv3 router-id must be explicitly configured. If no IPv4 address exists on the system, OSPFv3 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 eth0 ipv6 ospfv3 area 0 set interfaces ethernet eth1 address '2001:db8:2::100/64' set protocols ospfv3 parameters router-id 2.2.2.2 set protocols ripng network '2001:db8:2::/64' set protocols ripng redistribute ospfv3 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 dummy dum0 ipv6 ospfv3 area 0.0.0.0 set interfaces ethernet eth0 address '2001:db8:1::1/64' set interfaces ethernet eth0 ipv6 ospfv3 area 0 set protocols ospfv3 parameters router-id 1.1.1.1 set protocols ospfv3 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 '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 OSPFv3 neighbor is established between DUT0 and DUT1
Step 4: Run command protocols ospfv3 show neighbor at DUT0 and check if output matches the following regular expressions:
Full[\s\S]+eth0Show output
Neighbor ID Pri DeadTime State/IfState Duration I/F[State] 1.1.1.1 1 00:00:34 Full/BDR 00:00:01 eth0[DR]
Attention
Verify DUT0 learns the OSPFv3 route 2001:db8:100::/64 from DUT1
Step 5: Run command protocols ipv6 show route at DUT0 and check if output matches the following regular expressions:
2001:db8:100::/64Show 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: O 2001:db8:1::/64 [110/10] is directly connected, eth0, weight 1, 00:00:01 C>* 2001:db8:1::/64 is directly connected, eth0, weight 1, 00:00:52 K * 2001:db8:1::/64 [0/256] is directly connected, eth0, weight 1, 00:00:54 L>* 2001:db8:1::100/128 is directly connected, eth0, weight 1, 00:00:52 C>* 2001:db8:2::/64 is directly connected, eth1, weight 1, 00:00:52 K * 2001:db8:2::/64 [0/256] is directly connected, eth1, weight 1, 00:00:54 L>* 2001:db8:2::100/128 is directly connected, eth1, weight 1, 00:00:52 O>* 2001:db8:100::/64 [110/20] via fe80::dcad:beff:feef:6c10, eth0, weight 1, 00:00:01 C * fe80::/64 is directly connected, eth0, weight 1, 00:00:52 C>* fe80::/64 is directly connected, eth1, weight 1, 00:00:52
Attention
Verify DUT2 learns the redistributed OSPFv3 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::/64Show 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 16 0 01:59
Step 7: Run command protocols ipv6 show route at DUT2 and check if output matches the following regular expressions:
R>\* +2001:db8:100::/64Show 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:52 K * 2001:db8:2::/64 [0/256] is directly connected, eth1, weight 1, 00:00:53 L>* 2001:db8:2::2/128 is directly connected, eth1, weight 1, 00:00:52 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:52
Test RIPng Redistribute OSPFv3 With Metric
Description
Test RIPng redistribute ospfv3 metric with a custom value (metric 5).
DUT0 redistributes OSPFv3 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 eth0 ipv6 ospfv3 area 0 set interfaces ethernet eth1 address '2001:db8:2::100/64' set protocols ospfv3 parameters router-id 2.2.2.2 set protocols ripng network '2001:db8:2::/64' set protocols ripng redistribute ospfv3 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 dummy dum0 ipv6 ospfv3 area 0.0.0.0 set interfaces ethernet eth0 address '2001:db8:1::1/64' set interfaces ethernet eth0 ipv6 ospfv3 area 0 set protocols ospfv3 parameters router-id 1.1.1.1 set protocols ospfv3 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 '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 OSPFv3 neighbor is established between DUT0 and DUT1
Step 4: Run command protocols ospfv3 show neighbor at DUT0 and check if output matches the following regular expressions:
Full[\s\S]+eth0Show output
Neighbor ID Pri DeadTime State/IfState Duration I/F[State] 1.1.1.1 1 00:00:34 Full/BDR 00:00:01 eth0[DR]
Attention
Verify DUT0 learns the OSPFv3 route 2001:db8:100::/64 from DUT1
Step 5: Run command protocols ipv6 show route at DUT0 and check if output matches the following regular expressions:
2001:db8:100::/64Show 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: O 2001:db8:1::/64 [110/10] is directly connected, eth0, weight 1, 00:00:01 C>* 2001:db8:1::/64 is directly connected, eth0, weight 1, 00:00:53 K * 2001:db8:1::/64 [0/256] is directly connected, eth0, weight 1, 00:00:54 L>* 2001:db8:1::100/128 is directly connected, eth0, weight 1, 00:00:53 C>* 2001:db8:2::/64 is directly connected, eth1, weight 1, 00:00:52 K * 2001:db8:2::/64 [0/256] is directly connected, eth1, weight 1, 00:00:54 L>* 2001:db8:2::100/128 is directly connected, eth1, weight 1, 00:00:52 O>* 2001:db8:100::/64 [110/20] via fe80::dcad:beff:feef:6c10, eth0, weight 1, 00:00:01 C * fe80::/64 is directly connected, eth0, weight 1, 00:00:52 C>* fe80::/64 is directly connected, eth1, weight 1, 00:00:53
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 +6Show 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:59
Test RIPng Redistribute OSPFv3 Metric 16 Route Not Announced
Description
Test RIPng redistribute ospfv3 metric 16 - route is not announced.
When DUT0 redistributes OSPFv3 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 eth0 ipv6 ospfv3 area 0 set interfaces ethernet eth1 address '2001:db8:2::100/64' set protocols ospfv3 parameters router-id 2.2.2.2 set protocols ripng network '2001:db8:2::/64' set protocols ripng redistribute ospfv3 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 dummy dum0 ipv6 ospfv3 area 0.0.0.0 set interfaces ethernet eth0 address '2001:db8:1::1/64' set interfaces ethernet eth0 ipv6 ospfv3 area 0 set protocols ospfv3 parameters router-id 1.1.1.1 set protocols ospfv3 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 '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 OSPFv3 neighbor is established between DUT0 and DUT1
Step 4: Run command protocols ospfv3 show neighbor at DUT0 and check if output matches the following regular expressions:
Full[\s\S]+eth0Show output
Neighbor ID Pri DeadTime State/IfState Duration I/F[State] 1.1.1.1 1 00:00:33 Full/BDR 00:00:01 eth0[DR]
Attention
Verify DUT0 learns the OSPFv3 route 2001:db8:100::/64 from DUT1
Step 5: Run command protocols ipv6 show route at DUT0 and check if output matches the following regular expressions:
2001:db8:100::/64Show 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: O 2001:db8:1::/64 [110/10] is directly connected, eth0, weight 1, 00:00:01 C>* 2001:db8:1::/64 is directly connected, eth0, weight 1, 00:00:52 K * 2001:db8:1::/64 [0/256] is directly connected, eth0, weight 1, 00:00:54 L>* 2001:db8:1::100/128 is directly connected, eth0, weight 1, 00:00:52 C>* 2001:db8:2::/64 is directly connected, eth1, weight 1, 00:00:52 K * 2001:db8:2::/64 [0/256] is directly connected, eth1, weight 1, 00:00:54 L>* 2001:db8:2::100/128 is directly connected, eth1, weight 1, 00:00:52 O>* 2001:db8:100::/64 [110/20] via fe80::dcad:beff:feef:6c10, eth0, weight 1, 00:00:01 C * fe80::/64 is directly connected, eth0, weight 1, 00:00:52 C>* fe80::/64 is directly connected, eth1, weight 1, 00:00:52
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 OSPFv3 With Route-Map
Description
Test RIPng redistribute ospfv3 route-map filtering functionality.
DUT1 announces two dummy routes (dum0 and dum1) via OSPFv3.
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 eth0 ipv6 ospfv3 area 0 set interfaces ethernet eth1 address '2001:db8:2::100/64' 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 ospfv3 parameters router-id 2.2.2.2 set protocols ripng network '2001:db8:2::/64' set protocols ripng redistribute ospfv3 route-map FILTER-OSPF set protocols ripng timers update 5 set protocols route-map FILTER-OSPF rule 1 action permit set protocols route-map FILTER-OSPF 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 dum0 ipv6 ospfv3 area 0.0.0.0 set interfaces dummy dum1 address '2001:db8:200::1/64' set interfaces dummy dum1 ipv6 ospfv3 area 0.0.0.0 set interfaces ethernet eth0 address '2001:db8:1::1/64' set interfaces ethernet eth0 ipv6 ospfv3 area 0 set protocols ospfv3 parameters router-id 1.1.1.1 set protocols ospfv3 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 '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 OSPFv3 neighbor is established between DUT0 and DUT1
Step 4: Run command protocols ospfv3 show neighbor at DUT0 and check if output matches the following regular expressions:
Full[\s\S]+eth0Show output
Neighbor ID Pri DeadTime State/IfState Duration I/F[State] 1.1.1.1 1 00:00:34 Full/BDR 00:00:01 eth0[DR]
Attention
Verify DUT0 learns both OSPFv3 routes from DUT1
Step 5: Run command protocols ipv6 show route at DUT0 and check if output matches the following regular expressions:
2001:db8:100::/64Show 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: O 2001:db8:1::/64 [110/10] is directly connected, eth0, weight 1, 00:00:01 C>* 2001:db8:1::/64 is directly connected, eth0, weight 1, 00:00:52 K * 2001:db8:1::/64 [0/256] is directly connected, eth0, weight 1, 00:00:54 L>* 2001:db8:1::100/128 is directly connected, eth0, weight 1, 00:00:52 C>* 2001:db8:2::/64 is directly connected, eth1, weight 1, 00:00:53 K * 2001:db8:2::/64 [0/256] is directly connected, eth1, weight 1, 00:00:54 L>* 2001:db8:2::100/128 is directly connected, eth1, weight 1, 00:00:53 O>* 2001:db8:100::/64 [110/20] via fe80::dcad:beff:feef:6c10, eth0, weight 1, 00:00:01 O>* 2001:db8:200::/64 [110/20] via fe80::dcad:beff:feef:6c10, eth0, weight 1, 00:00:01 C * fe80::/64 is directly connected, eth0, weight 1, 00:00:52 C>* fe80::/64 is directly connected, eth1, weight 1, 00:00:53
Step 6: Run command protocols ipv6 show route at DUT0 and check if output matches the following regular expressions:
2001:db8:200::/64Show 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: O 2001:db8:1::/64 [110/10] is directly connected, eth0, weight 1, 00:00:01 C>* 2001:db8:1::/64 is directly connected, eth0, weight 1, 00:00:52 K * 2001:db8:1::/64 [0/256] is directly connected, eth0, weight 1, 00:00:54 L>* 2001:db8:1::100/128 is directly connected, eth0, weight 1, 00:00:52 C>* 2001:db8:2::/64 is directly connected, eth1, weight 1, 00:00:53 K * 2001:db8:2::/64 [0/256] is directly connected, eth1, weight 1, 00:00:54 L>* 2001:db8:2::100/128 is directly connected, eth1, weight 1, 00:00:53 O>* 2001:db8:100::/64 [110/20] via fe80::dcad:beff:feef:6c10, eth0, weight 1, 00:00:01 O>* 2001:db8:200::/64 [110/20] via fe80::dcad:beff:feef:6c10, eth0, weight 1, 00:00:01 C * fe80::/64 is directly connected, eth0, weight 1, 00:00:52 C>* fe80::/64 is directly connected, eth1, weight 1, 00:00:53
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::/64Show 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