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

ISIS invalid format of hello packet when interface mtu is between 1501 and 1535 #14924

Closed
2 tasks done
aapostoliuk opened this issue Dec 1, 2023 · 7 comments
Closed
2 tasks done
Labels
triage Needs further investigation

Comments

@aapostoliuk
Copy link
Contributor


Describe the bug
FRR creates an invalid format of the hello ISIS packet when interface MTU is between 1501 and 1535.
The lab:
Cisco Router <---> FRR directly connected.
MTU is set to 1508

Configurations:
FRR configuration:

debian# show run
Building configuration...

Current configuration:
!
frr version 9.2-dev-MyOwnFRRVersion
frr defaults traditional
hostname debian
service integrated-vtysh-config
!
interface ens36
 ip router isis test
exit
!
router isis test
 net 49.0001.0000.0000.0001.00
exit
!
end
debian#

Interface configuration:

root@debian:~# ip addr show dev ens36
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1508 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:65:cf:87 brd ff:ff:ff:ff:ff:ff
    altname enp2s4
    inet 192.168.100.5/24 brd 192.168.100.255 scope global ens36
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe65:cf87/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
root@debian:~# ip link show ens36
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1508 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:65:cf:87 brd ff:ff:ff:ff:ff:ff
    altname enp2s4

Cisco configuration:

interface GigabitEthernet0/0
 mtu 1508
 ip address 192.168.100.110 255.255.255.0
 ip router isis
 duplex auto
 speed auto
 media-type rj45

router isis
 net 49.0001.0000.0000.0004.00

ISIS neighbors status
FRR output:

debian# show isis neighbor
Area test:
  System Id           Interface   L  State        Holdtime SNPA
 Router              ens36       1  Initializing  24       000c.2989.2dd6
 Router              ens36       2  Initializing  28       000c.2989.2dd6

Cisco output:

Router#show isis neighbors

System Id      Type Interface   IP Address      State Holdtime Circuit Id

Debugging:
FRR side:

debian# debug isis adj-packets
IS-IS Adjacency related packets debugging is on
debian# terminal monitor
2023-12-01 11:04:22.874 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (test): Sending L1 LAN IIH on ens36, length 1505
2023-12-01 11:04:23.394 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (test): Sending L2 LAN IIH on ens36, length 1505
2023-12-01 11:04:24.248 [DEBG] isisd: [H3GFN-BXSRF] ISIS-Adj (test): Rcvd L1 LAN IIH on ens36, cirType L1L2, cirID 3
2023-12-01 11:04:24.248 [DEBG] isisd: [SCM84-DFK6R] ISIS-Adj (test): Rcvd L1 LAN IIH from 000c.2989.2dd6 on ens36, cirType L1L2, cirID 3, length 1505
2023-12-01 11:04:25.739 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (test): Sending L1 LAN IIH on ens36, length 1505
2023-12-01 11:04:26.155 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (test): Sending L2 LAN IIH on ens36, length 1505
2023-12-01 11:04:26.393 [DEBG] isisd: [H3GFN-BXSRF] ISIS-Adj (test): Rcvd L2 LAN IIH on ens36, cirType L1L2, cirID 3
2023-12-01 11:04:26.393 [DEBG] isisd: [SCM84-DFK6R] ISIS-Adj (test): Rcvd L2 LAN IIH from 000c.2989.2dd6 on ens36, cirType L1L2, cirID 3, length 1505
2023-12-01 11:04:28.702 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (test): Sending L1 LAN IIH on ens36, length 1505
2023-12-01 11:04:29.052 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (test): Sending L2 LAN IIH on ens36, length 1505
2023-12-01 11:04:31.514 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (test): Sending L1 LAN IIH on ens36, length 1505
2023-12-01 11:04:31.760 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (test): Sending L2 LAN IIH on ens36, length 1505
2023-12-01 11:04:32.988 [DEBG] isisd: [H3GFN-BXSRF] ISIS-Adj (test): Rcvd L1 LAN IIH on ens36, cirType L1L2, cirID 3
2023-12-01 11:04:32.988 [DEBG] isisd: [SCM84-DFK6R] ISIS-Adj (test): Rcvd L1 LAN IIH from 000c.2989.2dd6 on ens36, cirType L1L2, cirID 3, length 1505
2023-12-01 11:04:34.488 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (test): Sending L1 LAN IIH on ens36, length 1505
2023-12-01 11:04:34.632 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (test): Sending L2 LAN IIH on ens36, length 1505

Cisco side:

Router#debug isis adj-packets
IS-IS Adjacency related packets debugging is on for router process null
Router#
*Dec  1 11:05:42.898: ISIS-Adj: Sending L1 LAN IIH on GigabitEthernet0/0, length 1505
*Dec  1 11:05:46.646: ISIS-Adj: Sending L2 LAN IIH on GigabitEthernet0/0, length 1505
*Dec  1 11:05:51.022: ISIS-Adj: Sending L1 LAN IIH on GigabitEthernet0/0, length 1505
*Dec  1 11:05:56.108: ISIS-Adj: Sending L2 LAN IIH on GigabitEthernet0/0, length 1505

Tcpdump on FRR side:

root@debian:~# tcpdump -i ens36
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on ens36, link-type EN10MB (Ethernet), snapshot length 262144 bytes
11:07:07.747223 00:0c:29:65:cf:87 (oui Unknown) > 01:80:c2:00:00:14 (oui Unknown), ethertype Unknown (0x05e4), length 1522:
        0x0000:  fefe 0383 1b01 000f 0100 0003 0000 0000  ................
        0x0010:  0001 001e 05e1 4000 0000 0000 0401 8101  ......@.........
        0x0020:  cc01 0403 4900 0106 0600 0c29 892d d684  ....I......).-..
        0x0030:  04c0 a864 0508 ff00 0000 0000 0000 0000  ...d............
        0x0040:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0050:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0060:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0070:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0080:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0090:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x00a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x00b0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x00c0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x00d0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x00e0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x00f0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0100:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0110:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0120:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0130:  0000 0000 0000 08ff 0000 0000 0000 0000  ................
        0x0140:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0150:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0160:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0170:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0180:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0190:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x01a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x01b0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x01c0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x01d0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x01e0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x01f0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0200:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0210:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0220:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0230:  0000 0000 0000 0008 ff00 0000 0000 0000  ................
        0x0240:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0250:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0260:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0270:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0280:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0290:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x02a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x02b0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x02c0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x02d0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x02e0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x02f0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0300:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0310:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0320:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0330:  0000 0000 0000 0000 08ff 0000 0000 0000  ................
        0x0340:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0350:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0360:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0370:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0380:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0390:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x03a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x03b0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x03c0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x03d0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x03e0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x03f0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0400:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0410:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0420:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0430:  0000 0000 0000 0000 0008 ff00 0000 0000  ................
        0x0440:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0450:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0460:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0470:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0480:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0490:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x04a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x04b0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x04c0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x04d0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x04e0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x04f0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0500:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0510:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0520:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0530:  0000 0000 0000 0000 0000 08a8 0000 0000  ................
        0x0540:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0550:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0560:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0570:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0580:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0590:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x05a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x05b0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x05c0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x05d0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x05e0:  0000 0000                                ....
11:07:07.856228 IS-IS, L2 Lan IIH, src-id 0000.0000.0004, lan-id 0000.0000.0004.01, prio 64, length 1505

Cisco does not understand this packet.
If we set MTU 1500 or 1536 on both sides, everything works.
But if we create the lab FRR<-->FRR, routers will understand this packet as hello and adjacency will created.

  • Did you check if this is a duplicate issue?
  • Did you test it on the latest FRRouting/frr master branch?

Versions

  • OS Version: Debian GNU/Linux trixie/sid
  • Kernel: 6.1.0-7-amd64
  • FRR Version: frr-9.2-dev-136-ge6e846de2

I have tested it on Debian 12 the result was the same.

@aapostoliuk aapostoliuk added the triage Needs further investigation label Dec 1, 2023
@donaldsharp
Copy link
Member

can you give us a pcap of the packets being generated from FRR?

@aapostoliuk
Copy link
Contributor Author

isis1508.dmp
tcpdump -i ens36 ether host 00:0c:29:65:cf:87 -s 65535 -w isis1508.dmp

@odd22
Copy link
Member

odd22 commented Jan 23, 2024

Capture is strange. When I open it into wireshark I got Invalid Length/Type error for the Ethernet frames. Only source and destination mac addresses are recognized.

@aapostoliuk
Copy link
Contributor Author

Yes. I see the same in Wireshark.

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 Jul 23, 2024

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

@frrbot frrbot bot closed this as completed Jul 30, 2024
@frrbot frrbot bot removed the autoclose label Jul 30, 2024
@dmbaturin
Copy link
Contributor

The issue may have no activity, but was it fixed?

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

No branches or pull requests

4 participants