ISIS is not working on a IPv6 only environment (or, in general, in dual topology) where other devices are running plain frr.
i.e., given this configuration:
interfaces { dummy dum0 { address 2001:db8:1:1::1/64 } ethernet eth1 { address 2001:db8:3::1/64 description "dut -> x1" mtu 1500 } ethernet eth2 { address 2001:db8:3:1::1/64 description "dut -> x2" mtu 1500 } } protocols { isis { dynamic-hostname interface dum0 { } interface eth1 { network { point-to-point } } interface eth2 { network { point-to-point } } level level-2 net 49.0001.0bad.cafe.0001.00 } }
example other frr config:
hostname x1 service integrated-vtysh-config ! interface eth1 description x1 -> dut ipv6 address 2001:db8:3::2/64 ipv6 nd ra-interval 5 ipv6 router isis Gandalf isis network point-to-point no ipv6 nd suppress-ra exit ! interface lo ipv6 address 2001:db8:1:2::1/64 ipv6 router isis Gandalf exit ! router isis Gandalf is-type level-2-only net 49.0042.0000.0000.0002.00 lsp-timers gen-interval 1 refresh-interval 900 max-lifetime 1800 topology ipv6-unicast log-adjacency-changes exit
no routes are announced:
vyos@dut:~$ sh ipv6 route Codes: K - kernel route, C - connected, 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, > - selected route, * - FIB route, q - queued, r - rejected, b - backup t - trapped, o - offload failure C>* 2001:db8:1:1::/64 is directly connected, dum0, 00:01:21 C>* 2001:db8:3::/64 is directly connected, eth1, 00:01:20 C>* 2001:db8:3:1::/64 is directly connected, eth2, 00:01:19 C * fe80::/64 is directly connected, eth2, 00:01:20 C * fe80::/64 is directly connected, dum0, 00:01:21 C>* fe80::/64 is directly connected, lo, 00:01:31 C * fe80::/64 is directly connected, eth1, 00:01:43 C * fe80::/64 is directly connected, eth0, 00:01:43
It seems there's a missing config on FRR's isisd:
If I manually add:
dut# configure dut(config)# router isis VyOS dut(config-router)# topology ipv6-unicast
then everything starts working:
vyos@dut:~$ sh ipv6 route Codes: K - kernel route, C - connected, 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, > - selected route, * - FIB route, q - queued, r - rejected, b - backup t - trapped, o - offload failure C>* 2001:db8:1:1::/64 is directly connected, dum0, 00:02:57 I>* 2001:db8:1:2::/64 [115/20] via fe80::a8c1:abff:fe77:5770, eth1, weight 1, 00:00:16 I>* 2001:db8:1:3::/64 [115/20] via fe80::a8c1:abff:fe0d:c90f, eth2, weight 1, 00:00:16 C>* 2001:db8:3::/64 is directly connected, eth1, 00:02:56 C>* 2001:db8:3:1::/64 is directly connected, eth2, 00:02:55 C * fe80::/64 is directly connected, eth2, 00:02:56 C * fe80::/64 is directly connected, dum0, 00:02:57 C>* fe80::/64 is directly connected, lo, 00:03:07 C * fe80::/64 is directly connected, eth1, 00:03:19 C * fe80::/64 is directly connected, eth0, 00:03:19