IS-IS no network migration from level-1 to level-2 database

Hello VyOS forum,
on router V2 the migration from the 10.10.10.0/24 network from the level-1 database to the level-2 database is not done.
The same on V4 for the 20.20.20.0/24 network from V3.

Topology and commands:


vyos@Vx:~$ sh version
Version: VyOS 1.4-rolling-202308280021
Release train: current

Built by: autobuild@vyos.net
Built on: Mon 28 Aug 2023 00:23 UTC
Build UUID: 2f75cb27-26e9-4724-8212-acbe0f0547ce
Build commit ID: ac5a48ecda2880

Architecture: x86_64
Boot via: installed image
System type: KVM guest

Hardware vendor: QEMU
Hardware model: Standard PC (i440FX + PIIX, 1996)
Hardware S/N:
Hardware UUID: afa3c146-909a-46d0-a5f0-180d210f186c

Copyright: VyOS maintainers and contributors
vyos@Vx:~$

V1:
vyos@V1:~$ sh configuration commands
set interfaces ethernet eth0 address ‘192.168.12.1/24’
set interfaces ethernet eth3 address ‘10.10.10.1/24’
set protocols isis interface eth0
set protocols isis interface eth3 passive
set protocols isis level ‘level-1’
set protocols isis net ‘49.0012.0000.0000.0001.00’
set system host-name ‘V1’

vyos@V1:~$ sh isis database detail
Area VyOS:
IS-IS Level-1 link-state database:
LSP ID PduLen SeqNumber Chksum Holdtime ATT/P/OL
V1.00-00 * 93 0x00000003 0xd640 1145 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0012
Hostname: V1
TE Router ID: 192.168.12.1
Router Capability: 192.168.12.1 , D:0, S:0
Extended Reachability: 0000.0000.0001.02 (Metric: 10)
IPv4 Interface Address: 192.168.12.1
Extended IP Reachability: 192.168.12.0/24 (Metric: 10)
Subtlvs:
Extended IP Reachability: 10.10.10.0/24 (Metric: 10)
Subtlvs:

V1.02-00 * 51 0x00000001 0x8843 1138 0/0/0
Extended Reachability: 0000.0000.0001.00 (Metric: 0)
Extended Reachability: 0000.0000.0002.00 (Metric: 0)

V2.00-00 93 0x00000003 0x3c44 1136 1/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0012
Hostname: V2
TE Router ID: 192.168.24.2
Router Capability: 192.168.24.2 , D:0, S:0
Extended Reachability: 0000.0000.0001.02 (Metric: 10)
IPv4 Interface Address: 192.168.24.2
Extended IP Reachability: 192.168.12.0/24 (Metric: 10)
Extended IP Reachability: 192.168.24.0/24 (Metric: 10)

3 LSPs

V2:
vyos@V2:~$ sh conf commands
set interfaces ethernet eth0 address ‘192.168.12.2/24’
set interfaces ethernet eth3 address ‘192.168.24.2/24’
set protocols isis interface eth0
set protocols isis interface eth3
set protocols isis level ‘level-1-2’
set protocols isis net ‘49.0012.0000.0000.0002.00’
set system host-name ‘V2’

vyos@V2:~$ sh isis database d
Area VyOS:
IS-IS Level-1 link-state database:
LSP ID PduLen SeqNumber Chksum Holdtime ATT/P/OL
V1.00-00 93 0x00000003 0xd640 1014 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0012
Hostname: V1
TE Router ID: 192.168.12.1
Router Capability: 192.168.12.1 , D:0, S:0
Extended Reachability: 0000.0000.0001.02 (Metric: 10)
IPv4 Interface Address: 192.168.12.1
Extended IP Reachability: 192.168.12.0/24 (Metric: 10)
Extended IP Reachability: 10.10.10.0/24 (Metric: 10)

V1.02-00 51 0x00000001 0x8843 1007 0/0/0
Extended Reachability: 0000.0000.0001.00 (Metric: 0)
Extended Reachability: 0000.0000.0002.00 (Metric: 0)

V2.00-00 * 93 0x00000003 0x3c44 1005 1/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0012
Hostname: V2
TE Router ID: 192.168.24.2
Router Capability: 192.168.24.2 , D:0, S:0
Extended Reachability: 0000.0000.0001.02 (Metric: 10)
IPv4 Interface Address: 192.168.24.2
Extended IP Reachability: 192.168.12.0/24 (Metric: 10)
Subtlvs:
Extended IP Reachability: 192.168.24.0/24 (Metric: 10)
Subtlvs:

3 LSPs

IS-IS Level-2 link-state database:
LSP ID PduLen SeqNumber Chksum Holdtime ATT/P/OL
V2.00-00 * 93 0x00000011 0xf380 1030 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0012
Hostname: V2
TE Router ID: 192.168.24.2
Router Capability: 192.168.24.2 , D:0, S:0
Extended Reachability: 0000.0000.0004.05 (Metric: 10)
IPv4 Interface Address: 192.168.24.2
Extended IP Reachability: 192.168.12.0/24 (Metric: 10)
Subtlvs:
Extended IP Reachability: 192.168.24.0/24 (Metric: 10)
Subtlvs:

V4.00-00 93 0x00000011 0x0a10 984 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0034
Hostname: V4
TE Router ID: 192.168.34.2
Router Capability: 192.168.34.2 , D:0, S:0
Extended Reachability: 0000.0000.0004.05 (Metric: 10)
IPv4 Interface Address: 192.168.34.2
Extended IP Reachability: 192.168.34.0/24 (Metric: 10)
Extended IP Reachability: 192.168.24.0/24 (Metric: 10)

V4.05-00 51 0x00000006 0x6e4d 979 0/0/0
Extended Reachability: 0000.0000.0004.00 (Metric: 0)
Extended Reachability: 0000.0000.0002.00 (Metric: 0)

3 LSPs

vyos@V2:~$

The 10.10.10.0/24 network in clearly in the level-1 database on V2, but not in the level-2 database.
It’s an issue in FRR, (I think):
vyos@V2:~$ vtysh

Hello, this is FRRouting (version 9.0).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

V2# sh isis database detail
Area VyOS:
IS-IS Level-1 link-state database:
LSP ID PduLen SeqNumber Chksum Holdtime ATT/P/OL
V1.00-00 93 0x00000003 0xd640 930 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0012
Hostname: V1
TE Router ID: 192.168.12.1
Router Capability: 192.168.12.1 , D:0, S:0
Extended Reachability: 0000.0000.0001.02 (Metric: 10)
IPv4 Interface Address: 192.168.12.1
Extended IP Reachability: 192.168.12.0/24 (Metric: 10)
Extended IP Reachability: 10.10.10.0/24 (Metric: 10)

V1.02-00 51 0x00000001 0x8843 923 0/0/0
Extended Reachability: 0000.0000.0001.00 (Metric: 0)
Extended Reachability: 0000.0000.0002.00 (Metric: 0)

V2.00-00 * 93 0x00000003 0x3c44 921 1/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0012
Hostname: V2
TE Router ID: 192.168.24.2
Router Capability: 192.168.24.2 , D:0, S:0
Extended Reachability: 0000.0000.0001.02 (Metric: 10)
IPv4 Interface Address: 192.168.24.2
Extended IP Reachability: 192.168.12.0/24 (Metric: 10)
Subtlvs:
Extended IP Reachability: 192.168.24.0/24 (Metric: 10)
Subtlvs:

3 LSPs

IS-IS Level-2 link-state database:
LSP ID PduLen SeqNumber Chksum Holdtime ATT/P/OL
V2.00-00 * 93 0x00000011 0xf380 946 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0012
Hostname: V2
TE Router ID: 192.168.24.2
Router Capability: 192.168.24.2 , D:0, S:0
Extended Reachability: 0000.0000.0004.05 (Metric: 10)
IPv4 Interface Address: 192.168.24.2
Extended IP Reachability: 192.168.12.0/24 (Metric: 10)
Subtlvs:
Extended IP Reachability: 192.168.24.0/24 (Metric: 10)
Subtlvs:

V4.00-00 93 0x00000011 0x0a10 900 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0034
Hostname: V4
TE Router ID: 192.168.34.2
Router Capability: 192.168.34.2 , D:0, S:0
Extended Reachability: 0000.0000.0004.05 (Metric: 10)
IPv4 Interface Address: 192.168.34.2
Extended IP Reachability: 192.168.34.0/24 (Metric: 10)
Extended IP Reachability: 192.168.24.0/24 (Metric: 10)

V4.05-00 51 0x00000006 0x6e4d 895 0/0/0
Extended Reachability: 0000.0000.0004.00 (Metric: 0)
Extended Reachability: 0000.0000.0002.00 (Metric: 0)

3 LSPs

V2#

It’s in the routing table of V2:
vyos@V2:~$ sh ip route
Codes: K - kernel route, C - connected, 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,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure

I>* 10.10.10.0/24 [115/20] via 192.168.12.1, eth0, weight 1, 00:07:55
I 192.168.12.0/24 [115/20] via 192.168.12.1, eth0 inactive, weight 1, 00:07:44
C>* 192.168.12.0/24 is directly connected, eth0, 00:08:27
C>* 192.168.24.0/24 is directly connected, eth3, 00:08:27
I>* 192.168.34.0/24 [115/20] via 192.168.24.1, eth3, weight 1, 00:07:55
vyos@V2:~$

But it’s not forwarded to V4 …
vyos@V4:~$ sh ip route
Codes: K - kernel route, C - connected, 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,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure

I>* 20.20.20.0/24 [115/20] via 192.168.34.1, eth0, weight 1, 00:44:40
I>* 192.168.12.0/24 [115/20] via 192.168.24.2, eth3, weight 1, 00:09:01
C>* 192.168.24.0/24 is directly connected, eth3, 00:57:23
I 192.168.34.0/24 [115/20] via 192.168.34.1, eth0 inactive, weight 1, 00:01:30
C>* 192.168.34.0/24 is directly connected, eth0, 00:49:31
vyos@V4:~$

Even when using “set protocols isis metric-style wide” it is not working.

I am showing this behavior too. I have 4 routers connected in a somewhat similar setup and I am seeing the same. The edge routers can’t see each other, and the backbone routers can’t see the edge router of the “other side” either:

vyos@VYOS-EDGE-LEFT:~$ show isis database
Area VyOS:
IS-IS Level-1 link-state database:
LSP ID                  PduLen  SeqNumber   Chksum  Holdtime  ATT/P/OL
VYOS-BB-LEFT.00-00        105   0x00000005  0x67d1     720    1/0/0
VYOS-EDGE-LEFT.00-00 *    107   0x00000005  0xc8e3     761    0/0/0
VYOS-EDGE-LEFT.02-00 *     51   0x00000002  0xe59b     761    0/0/0
    3 LSPs

vyos@VYOS-EDGE-RIGHT:~$ show isis database
Area VyOS:
IS-IS Level-1 link-state database:
LSP ID                  PduLen  SeqNumber   Chksum  Holdtime  ATT/P/OL
VYOS-EDGE-RIGH.00-00 *    108   0x00000005  0x1650     789    0/0/0
VYOS-EDGE-RIGH.02-00 *     51   0x00000002  0xceb9     787    0/0/0
VYOS-BB-RIGHT.00-00       106   0x00000005  0x03e4     743    1/0/0
    3 LSPs
vyos@VYOS-BB-LEFT:~$ show isis database
Area VyOS:
IS-IS Level-1 link-state database:
LSP ID                  PduLen  SeqNumber   Chksum  Holdtime  ATT/P/OL
VYOS-BB-LEFT.00-00   *    105   0x00000005  0x67d1     714    1/0/0
VYOS-EDGE-LEFT.00-00      107   0x00000005  0xc8e3     755    0/0/0
VYOS-EDGE-LEFT.02-00       51   0x00000002  0xe59b     755    0/0/0
    3 LSPs

IS-IS Level-2 link-state database:
LSP ID                  PduLen  SeqNumber   Chksum  Holdtime  ATT/P/OL
VYOS-BB-RIGHT.00-00       106   0x00000005  0x8963     712    0/0/0
VYOS-BB-LEFT.00-00   *    105   0x00000005  0x60e0     716    0/0/0
VYOS-BB-LEFT.03-00   *     51   0x00000002  0xcbb5     906    0/0/0
    3 LSPs

vyos@VYOS-BB-RIGHT:~$ show isis database
Area VyOS:
IS-IS Level-1 link-state database:
LSP ID                  PduLen  SeqNumber   Chksum  Holdtime  ATT/P/OL
VYOS-EDGE-RIGH.00-00      108   0x00000005  0x1650     787    0/0/0
VYOS-EDGE-RIGH.02-00       51   0x00000002  0xceb9     785    0/0/0
VYOS-BB-RIGHT.00-00  *    106   0x00000005  0x03e4     741    1/0/0
    3 LSPs

IS-IS Level-2 link-state database:
LSP ID                  PduLen  SeqNumber   Chksum  Holdtime  ATT/P/OL
VYOS-BB-RIGHT.00-00  *    106   0x00000005  0x8963     710    0/0/0
VYOS-BB-LEFT.00-00        105   0x00000005  0x60e0     715    0/0/0
VYOS-BB-LEFT.03-00         51   0x00000002  0xcbb5     904    0/0/0
    3 LSPs

I asked the FRR developers if this is expected behavior…and how to get around it.

1 Like

this a normal behavior in ISIS , Level-1 route can’t see level-2 route for that reason exits ABR which belong L1/L2 process , try to set the attached-bit or redistribute L2 into L1 on ABR :

https://docs.vyos.io/en/latest/configuration/protocols/isis.html#cfgcmd-set-protocols-isis-set-attached-bit

So this actually is not normal behavior in IS-IS if you consider other vendors. This is why I asked the FRR developers on the behavior. L1 → L2 is normal behavior, and the attached bit gives a default route. But that only works technically if you’re attached to another area. Not sure if FRR does that part like that either. That’s why this question is coming up.

Cisco: Configure IS-IS Adjacency and Area Types. - Cisco

By default, the L1/L2 router allows one way passage of prefixes from L1 Area to L2 Area, but not in reverse.

Juniper: Example: Configuring IS-IS Route Leaking from a Level 2 Area to a Level 1 Area | Junos OS | Juniper Networks

By default, IS-IS protocol leaks routing information from a Level 1 area to a Level 2 area. However, to leak routing information from a Level 2 area to a Level 1 area, an export policy must be explicitly configured.

I got it , I misunderstood the behavior , as you mentioned it’s possible that has a different default behavior .Although , it may be redistribution from Level1 into Level2 and vice versa , it works as expected .

it seems this feature doesn’t work on FRR , at least , l1/l2 are not able to redistribute L1 into L2 which is expected beheivor :

I’ll create a task in our vyos.dev to document it , if you can make a comment confirming it on FRR 9 , it would be great .