Page MenuHomeVyOS Platform

ISIS invalid format of hello packet when interface mtu is between 1501 and 1535
Open, NormalPublicBUG

Description

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

VyOS configuration
Configuration:

set interfaces ethernet eth1 address '192.168.100.55/24'
set interfaces ethernet eth1 mtu '1508'
set protocols isis interface eth1
set protocols isis net '49.0001.0000.0000.0005.00'

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:
VyOS:

vyos@vyos:~$ show isis neighbor
Area VyOS:
  System Id           Interface   L  State        Holdtime SNPA
 Router              eth1        1  Initializing  21       000c.2989.2dd6
 Router              eth1        2  Initializing  20       000c.2989.2dd6

Cisco:

Router#show isis neighbors

System Id      Type Interface   IP Address      State Holdtime Circuit Id

Troubleshooting:
On VyOS side:

vyos# debug isis adj-packets
IS-IS Adjacency related packets debugging is on
vyos# terminal monitor
2023-11-30 12:52:37.760 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (VyOS): Sending L2 LAN IIH on eth1, length 1505
2023-11-30 12:52:38.326 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (VyOS): Sending L1 LAN IIH on eth1, length 1505
2023-11-30 12:52:40.538 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (VyOS): Sending L2 LAN IIH on eth1, length 1505
2023-11-30 12:52:40.927 [DEBG] isisd: [H3GFN-BXSRF] ISIS-Adj (VyOS): Rcvd L2 LAN IIH on eth1, cirType L1L2, cirID 3
2023-11-30 12:52:40.927 [DEBG] isisd: [SCM84-DFK6R] ISIS-Adj (VyOS): Rcvd L2 LAN IIH from 000c.2989.2dd6 on eth1, cirType L1L2, cirID 3, length 1505
2023-11-30 12:52:41.085 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (VyOS): Sending L1 LAN IIH on eth1, length 1505
2023-11-30 12:52:41.954 [DEBG] isisd: [H3GFN-BXSRF] ISIS-Adj (VyOS): Rcvd L1 LAN IIH on eth1, cirType L1L2, cirID 3
2023-11-30 12:52:41.954 [DEBG] isisd: [SCM84-DFK6R] ISIS-Adj (VyOS): Rcvd L1 LAN IIH from 000c.2989.2dd6 on eth1, cirType L1L2, cirID 3, length 1505
2023-11-30 12:52:43.472 [DEBG] isisd: [SKACH-0THYP] ISIS-Adj (VyOS): Sending L2 LAN IIH on eth1, length 1505

On Cisco side:

Router#debug isis adj-packets
IS-IS Adjacency related packets debugging is on for router process null
Router#
*Nov 30 14:55:10.319: ISIS-Adj: Sending L2 LAN IIH on GigabitEthernet0/0, length 1505
*Nov 30 14:55:12.197: ISIS-Adj: Sending L1 LAN IIH on GigabitEthernet0/0, length 1505

Tcpdump:

tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
12:57:03.607981 00:0c:29:9f:b5:c5 (oui Unknown) > 01:80:c2:00:00:15 (oui Unknown), ethertype Unknown (0x05e4), length 1522:
        0x0000:  fefe 0383 1b01 0010 0100 0003 0000 0000  ................
        0x0010:  0005 001e 05e1 4000 0000 0000 0000 8102  ......@.........
        0x0020:  cc8e 0104 0349 0001 0606 000c 2989 2dd6  .....I......).-.
        0x0030:  8404 c0a8 6437 e810 fe80 0000 0000 0000  ....d7..........
        0x0040:  020c 29ff fe9f b5c5 08ff 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 0000 0000 0000 0000 0000  ................
        0x0140:  0000 0000 0000 0000 0008 ff00 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 0000 0000 0000 0000 0000  ................
        0x0240:  0000 0000 0000 0000 0000 08ff 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 0000 0000 0000 0000  ................
        0x0340:  0000 0000 0000 0000 0000 0008 ff00 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 0000 0000 0000 0000  ................
        0x0440:  0000 0000 0000 0000 0000 0000 08ff 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 0000 0000 0000  ................
        0x0540:  0000 0000 0000 0000 0000 0000 0008 9500  ................
        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                                ....
12:57:04.991872 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, everything works.
But if we create the lab VyOS<-->VyOS, routers will understand this packet as hello and adjacency will created.
I have created a lab - clear Debian with current FRR (9.2) from master brunch <---> Cisco and the issue has repeated.

Details

Difficulty level
Hard (possibly days)
Version
VyOS 1.5-rolling-202311300023, VyOS 1.3.4
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)