Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

isisd: The L1-2 router cannot advertise L1 routes into L2 #14402

Open
Sashhkaa opened this issue Sep 12, 2023 · 12 comments
Open

isisd: The L1-2 router cannot advertise L1 routes into L2 #14402

Sashhkaa opened this issue Sep 12, 2023 · 12 comments
Labels

Comments

@Sashhkaa
Copy link
Contributor

FRR version: 9.1-dev
OS version: Ubuntu 22.04 LTS
Kernel version: 5.15.91

I want to solve this problem, but I am having problems choosing a trajectory for implementing this problem. Any ideas on how this can be done?

As specified in RFC1195/RFC5302, inter-area routing on direction from L2 to L1 done by injecting routes on L1/L2 router to L2 LSPs or configuring summary on L1/L2 router.

The Network topology:
R1 - L1 - r2 - L2 - R3

It is expected on R3 to see prefixes of R1 router coming from LSPs from R2 router. But they are not included in LSP from R2 router.

R2# show isis database detail
Area myisis:
IS-IS Level-1 link-state database:
LSP ID PduLen SeqNumber Chksum Holdtime ATT/P/OL
R1.00-00 194 0x0000003e 0xbffa 1118 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0012
Hostname: R1
TE Router ID: 10.10.10.1
Router Capability: 10.10.10.1 , D:0, S:0
Segment Routing: I:1 V:1, Global Block Base: 10000 Range: 40001
SR Local Block Base: 60000 Range: 40001
SR Algorithm:
0: SPF
Node Maximum SID Depth: 16
Extended Reachability: 0000.0000.0002.00 (Metric: 10)
Remote Interface IPv6 Address(es): fd00:23::2
Adjacency-SID: 60000, Weight: 0, Flags: F:1 B:0, V:1, L:1, S:0, P:0
IPv4 Interface Address: 10.10.10.1
Extended IP Reachability: 10.10.10.1/32 (Metric: 10)
IPv6 Reachability: fd00:100::1/128 (Metric: 10)
IPv6 Reachability: fd00:13::/64 (Metric: 10)
IPv6 Reachability: fd00:dead:beef::/64 (Metric: 0)

R2.00-00 * 212 0x00000042 0x1a4a 1057 1/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0012
Hostname: R2
TE Router ID: 10.10.10.2
Router Capability: 10.10.10.2 , D:0, S:0
Segment Routing: I:1 V:1, Global Block Base: 10000 Range: 40001
SR Local Block Base: 60000 Range: 40001
SR Algorithm:
0: SPF
Node Maximum SID Depth: 16
Extended Reachability: 0000.0000.0001.00 (Metric: 10)
Local Interface IPv6 Address(es): fd00:23::2
Remote Interface IPv6 Address(es): fd00:13::1
Adjacency-SID: 60000, Weight: 0, Flags: F:1 B:0, V:1, L:1, S:0, P:0
IPv4 Interface Address: 10.10.10.2
Extended IP Reachability: 10.10.10.2/32 (Metric: 10)
Subtlvs:
IPv6 Reachability: fd00:100::2/128 (Metric: 10)
Subtlvs:
IPv6 Reachability: fd00:23::/64 (Metric: 10)
Subtlvs:
IPv6 Reachability: fd00:13::/64 (Metric: 10)
Subtlvs:

2 LSPs

IS-IS Level-2 link-state database:
LSP ID PduLen SeqNumber Chksum Holdtime ATT/P/OL
R2.00-00 * 212 0x00000042 0x3d29 1059 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0012
Hostname: R2
TE Router ID: 10.10.10.2
Router Capability: 10.10.10.2 , D:0, S:0
Segment Routing: I:1 V:1, Global Block Base: 10000 Range: 40001
SR Local Block Base: 60000 Range: 40001
SR Algorithm:
0: SPF
Node Maximum SID Depth: 16
Extended Reachability: 0000.0000.0004.00 (Metric: 10)
Local Interface IPv6 Address(es): fd00:13::2
Remote Interface IPv6 Address(es): fd00:23::3
Adjacency-SID: 60001, Weight: 0, Flags: F:1 B:0, V:1, L:1, S:0, P:0
IPv4 Interface Address: 10.10.10.2
Extended IP Reachability: 10.10.10.2/32 (Metric: 10)
Subtlvs:
IPv6 Reachability: fd00:100::2/128 (Metric: 10)
Subtlvs:
IPv6 Reachability: fd00:23::/64 (Metric: 10)
Subtlvs:
IPv6 Reachability: fd00:13::/64 (Metric: 10)
Subtlvs:

R3.00-00 220 0x0000003b 0x29e6 705 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0034
Hostname: R3
TE Router ID: 10.10.10.3
Router Capability: 10.10.10.3 , D:0, S:0
Segment Routing: I:1 V:1, Global Block Base: 10000 Range: 40001
SR Local Block Base: 60000 Range: 40001
SR Algorithm:
0: SPF
Node Maximum SID Depth: 16
Extended Reachability: 0000.0000.0002.00 (Metric: 10)
Local Interface IPv6 Address(es): fd00:23::3
Remote Interface IPv6 Address(es): fd00:13::2
Adjacency-SID: 60000, Weight: 0, Flags: F:1 B:0, V:1, L:1, S:0, P:0
IPv4 Interface Address: 10.10.10.3
Extended IP Reachability: 10.10.10.3/32 (Metric: 10)
IPv6 Reachability: fd00:23::/64 (Metric: 10)
IPv6 Reachability: fd00:100::/128 (Metric: 10)
IPv6 Reachability: fd00:100::3/128 (Metric: 10)

2 LSPs

R3# sh isis database detail
Area myisis:
IS-IS Level-1 link-state database:
LSP ID PduLen SeqNumber Chksum Holdtime ATT/P/OL
R3.00-00 * 164 0x0000003b 0xd249 613 1/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0034
Hostname: R3
TE Router ID: 10.10.10.3
Router Capability: 10.10.10.3 , D:0, S:0
Segment Routing: I:1 V:1, Global Block Base: 10000 Range: 40001
SR Local Block Base: 60000 Range: 40001
SR Algorithm:
0: SPF
Node Maximum SID Depth: 16
IPv4 Interface Address: 10.10.10.3
Extended IP Reachability: 10.10.10.3/32 (Metric: 10)
Subtlvs:
IPv6 Reachability: fd00:23::/64 (Metric: 10)
Subtlvs:
IPv6 Reachability: fd00:100::/128 (Metric: 10)
Subtlvs:
IPv6 Reachability: fd00:100::3/128 (Metric: 10)
Subtlvs:

1 LSPs

IS-IS Level-2 link-state database:
LSP ID PduLen SeqNumber Chksum Holdtime ATT/P/OL
R2.00-00 212 0x00000042 0x3d29 921 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0012
Hostname: R2
TE Router ID: 10.10.10.2
Router Capability: 10.10.10.2 , D:0, S:0
Segment Routing: I:1 V:1, Global Block Base: 10000 Range: 40001
SR Local Block Base: 60000 Range: 40001
SR Algorithm:
0: SPF
Node Maximum SID Depth: 16
Extended Reachability: 0000.0000.0004.00 (Metric: 10)
Local Interface IPv6 Address(es): fd00:13::2
Remote Interface IPv6 Address(es): fd00:23::3
Adjacency-SID: 60001, Weight: 0, Flags: F:1 B:0, V:1, L:1, S:0, P:0
IPv4 Interface Address: 10.10.10.2
Extended IP Reachability: 10.10.10.2/32 (Metric: 10)
IPv6 Reachability: fd00:100::2/128 (Metric: 10)
IPv6 Reachability: fd00:23::/64 (Metric: 10)
IPv6 Reachability: fd00:13::/64 (Metric: 10)

R3.00-00 * 220 0x0000003b 0x29e6 567 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0034
Hostname: R3
TE Router ID: 10.10.10.3
Router Capability: 10.10.10.3 , D:0, S:0
Segment Routing: I:1 V:1, Global Block Base: 10000 Range: 40001
SR Local Block Base: 60000 Range: 40001
SR Algorithm:
0: SPF
Node Maximum SID Depth: 16
Extended Reachability: 0000.0000.0002.00 (Metric: 10)
Local Interface IPv6 Address(es): fd00:23::3
Remote Interface IPv6 Address(es): fd00:13::2
Adjacency-SID: 60000, Weight: 0, Flags: F:1 B:0, V:1, L:1, S:0, P:0
IPv4 Interface Address: 10.10.10.3
Extended IP Reachability: 10.10.10.3/32 (Metric: 10)
Subtlvs:
IPv6 Reachability: fd00:23::/64 (Metric: 10)
Subtlvs:
IPv6 Reachability: fd00:100::/128 (Metric: 10)
Subtlvs:
IPv6 Reachability: fd00:100::3/128 (Metric: 10)
Subtlvs:

2 LSPs
@Sashhkaa Sashhkaa added the triage Needs further investigation label Sep 12, 2023
@Sashhkaa Sashhkaa changed the title isis: The L1-2 router cannot advertise L1 routes into L2 isisd: The L1-2 router cannot advertise L1 routes into L2 Sep 12, 2023
@Sashhkaa
Copy link
Contributor Author

@odd22

@odd22 odd22 added the isis label Sep 14, 2023
@odd22
Copy link
Member

odd22 commented Sep 14, 2023

This feature is not yet implemented.

@Sashhkaa
Copy link
Contributor Author

This feature is not yet implemented.

I know, but I want to implement it, I would like some advice on how to implement it

@Sashhkaa
Copy link
Contributor Author

This feature is not yet implemented.

This feature is not yet implemented.

I don’t understand exactly how the prefixes from L1 LSP should get into L2 LSP . That is storage struct isis_item_list ipv4/ipv6_address of all addresses, but I don’t understand how to implement their recording in L2 LSP.

@odd22 odd22 removed the triage Needs further investigation label Sep 14, 2023
@odd22
Copy link
Member

odd22 commented Sep 14, 2023

First, check the RFC as there is some rules to respect. Second, to redistribute prefixes, you should generate appropriate IS-IS LSP packet to advertise these prefixes on the interface that are L2. For that purpose, you could start by having a look to isisd/isis_lsp.c
TLVs encode/decode are located into isisd/isis_tlvs.[c,h] which could also help.

Copy link

This issue is stale because it has been open 180 days with no activity. Comment or remove the autoclose label in order to avoid having this issue closed.

@frrbot
Copy link

frrbot bot commented Mar 13, 2024

This issue will be automatically closed in the specified period unless there is further activity.

@mwoliver
Copy link

I, too, am struggling with this. As it is, isisd appears to only be useful in a single-area network. When compared to IOS in my IPv6-only usage, the L1-L2 router is bundling all L1 and L2 prefixes into type 246 (iirc) as L2 when sending to the interarea L2 router, but in FRR only the local routes on the L1-L2 are sent -- the L1 prefixes are not and therefore the interarea usage is completely broken. I would love to help with this, will try to dig into the code soon.

@frrbot
Copy link

frrbot bot commented Mar 13, 2024

This issue will no longer be automatically closed.

@frrbot frrbot bot removed the autoclose label Mar 13, 2024
@DS819src
Copy link

Hello,
I'm struggling with the same issue, I got my L1 route not in my L2 route. It caused, the backbone and other areas can't reach the network behind the L1 route.
Maybe somebody can implement this function.

@squirrelking57
Copy link

Hello, I'm struggling with the same issue, I got my L1 route not in my L2 route. It caused, the backbone and other areas can't reach the network behind the L1 route. Maybe somebody can implement this function.

hi! i created pr about it #15617

@squirrelking57
Copy link

I, too, am struggling with this. As it is, isisd appears to only be useful in a single-area network. When compared to IOS in my IPv6-only usage, the L1-L2 router is bundling all L1 and L2 prefixes into type 246 (iirc) as L2 when sending to the interarea L2 router, but in FRR only the local routes on the L1-L2 are sent -- the L1 prefixes are not and therefore the interarea usage is completely broken. I would love to help with this, will try to dig into the code soon.

hi! i created pr about it #15617

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants