# OSPFv3 (IPv6) Topology Test ## Topology -----\ SW1 - Stub Net 1 SW2 - Stub Net 2 \ fc00:1:1:1::/64 fc00:2:2:2::/64 \ \___________________/ \___________________/ | | | | | | | | ::1 | ::2 | +---------+---------+ +---------+---------+ | | R1 | | R2 | | | FRRouting | | FRRouting | | | Rtr-ID: 10.0.0.1 | | Rtr-ID: 10.0.0.2 | | +---------+---------+ +---------+---------+ | | ::1 | ::2 \ \______ ___________/ OSPFv3 \ / Area 0.0.0.0 \ / / ~~~~~~~~~~~~~~~~~~ | ~~ SW5 ~~ | ~~ Switch ~~ | ~~ fc00:A:A:A::/64 ~~ | ~~~~~~~~~~~~~~~~~~ | | /---- | | ::3 | SW3 - Stub Net 3 | +---------+---------+ /-+ fc00:3:3:3::/64 | | R3 | / | / | FRRouting +--/ \---- / | Rtr-ID: 10.0.0.3 | ::3 ___________/ +---------+---------+ \ | ::3 \ | \ ~~~~~~~~~~~~~~~~~~ | ~~ SW6 ~~ | ~~ Switch ~~ | ~~ fc00:B:B:B::/64 ~~ \ ~~~~~~~~~~~~~~~~~~ OSPFv3 | Area 0.0.0.1 | ::4 / +---------+---------+ /---- | | R4 | | SW4 - Stub Net 4 | | FRRouting +------+ fc00:4:4:4::/64 | | Rtr-ID: 10.0.0.4 | ::4 | / +-------------------+ \---- / -----/ ## FRR Configuration Full config as used is in r1 / r2 / r3 / r4 / r5 subdirectories Simplified `R1` config (R1 is similar) hostname r1 ! interface r1-stubnet vrf r1-cust1 ipv6 ospf6 area 0.0.0.0 ipv6 address fc00:1:1:1::1/64 ipv6 ospf6 network broadcast ! interface r1-sw5 vrf r1-cust1 ipv6 ospf6 area 0.0.0.0 ipv6 address fc00:a:a:a::1/64 ipv6 ospf6 network broadcast ! router ospf6 vrf r1-cust1 router-id 10.0.0.1 log-adjacency-changes detail redistribute static ! ipv6 route fc00:1111:1111:1111::/64 fc00:1:1:1::1234 vrf r1-cust1 Simplified `R3` config hostname r3 ! interface r3-stubnet vrf r3-cust1 ipv6 ospf6 area 0.0.0.0 ipv6 address fc00:3:3:3::3/64 ipv6 ospf6 network broadcast ! interface r3-sw5 vrf r3-cust1 ipv6 ospf6 area 0.0.0.0 ipv6 address fc00:a:a:a::3/64 ipv6 ospf6 network broadcast ! interface r3-sw6 vrf r3-cust1 ipv6 ospf6 area 0.0.0.1 ipv6 address fc00:b:b:b::3/64 ipv6 ospf6 network broadcast ! router ospf6 vrf r3-cust1 router-id 10.0.0.3 log-adjacency-changes detail redistribute static ! ipv6 route fc00:3333:3333:3333::/64 fc00:3:3:3::1234 vrf r3-cust1 ## Tests executed ### Check if FRR is running Test is executed by running vtysh -c "show logging" | grep "Logging configuration for" on each FRR router. This should return the logging information for all daemons registered to Zebra and the list of running daemons is compared to the daemons started for this test (`zebra` and `ospf6d`) ### Verify for OSPFv3 to converge OSPFv3 is expected to converge on each view within 60s total time. Convergence is verified by executing (on each node) vtysh -c "show ipv6 ospf vrf r1-cust1 neigh" and checking for "Full" neighbor status in the output. An additional 15 seconds after the full converge is waited for routes to populate before the following routing table checks are executed ### Verifying OSPFv3 Routing Tables Routing table is verified by running vtysh -c "show ipv6 route vrf r1-cust1" on each node and comparing the result to the stored example config (see `show_ipv6_route.ref` in r1 / r2 / r3 / r4 directories). Link-Local addresses are masked out before the compare. ### Verifying Linux Kernel Routing Table Linux Kernel IPv6 Routing table is verified on each FRR node with ip -6 route vrf r1-cust1 Tables are compared with reference routing table (see `ip_6_address.ref` in r1 / r2 / r3 / r4 directories). Link-Local addresses are translated after getting collected on each node with interface name to make them consistent