Solved vlan+lagg=mtu 1496. Expected?

Hello all,

I just migrated an ipfilter based filter to a newer hardware and OS (9.3-RELEASE -> 10.2-RELEASE). In the old gear I was using several vlans over an 8 ports lagg and the mtu assigned to the vlans was 1500. Now vlans keep getting 1496 set as their mtu size.
I read the vlan(4) but could not figure out why this did not happen when using 9.3+bce based ports. The problem is that I have some services provided by a third party that sends 1500 bytes messages with the DF flag set and as they are probably filtering my icmp messages, the packet is dropped and never sent again.

Any way to work around this?

Thanks in advance,
 
Last edited by a moderator:
Crest ,

Thanks for the interest in my problem.

Here's the interesting piece of my /etc/rc.conf:

Code:
cloned_interfaces="vlan2 vlan3 vlan5 vlan80 vlan134 vlan173 vlan174 vlan935 vlan947 vlan1130 vlan1302 vlan1309 vlan1400 vlan3002 vlan3003 vlan3091 vlan3092 lagg0 "
ipv6_network_interfaces="none"
ipv6_activate_all_interfaces="NO"
dumpdev="NO"
zfs_enable="YES"

ifconfig_bge0="media autoselect -tso -lro up"
ifconfig_bge1="media autoselect -tso -lro up"
ifconfig_bge4="media autoselect -tso -lro up"
ifconfig_bge5="media autoselect -tso -lro up"
ifconfig_lagg0="laggproto lacp laggport bge0 laggport bge1 laggport bge4 laggport bge5 up"
 
While it shouldn't be necessary you can try to increase the MTU on bge0, bge1, bge4 and bge5 in ifconfig_<iface>.
Please provide the ifconfig output before and after the destruction of lagg0, MTU change and recreation of lagg0.
 
Change: changing physical interfaces mtu in rc.conf and simply restarting netif and routing

ifconfig before change:

Code:
ifconfig_bge0="media autoselect -tso -lro mtu 1504 up"
ifconfig_bge1="media autoselect -tso -lro mtu 1504 up"
ifconfig_bge4="media autoselect -tso -lro mtu 1504 up"
ifconfig_bge5="media autoselect -tso -lro mtu 1504 up"
ifconfig_lagg0="laggproto lacp laggport bge0 laggport bge1 laggport bge4 laggport bge5 up"

Code:
bge0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c0093<RXCSUM,TXCSUM,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:20
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
bge1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c0093<RXCSUM,TXCSUM,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:20
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
bge2: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:22
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
bge3: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:23
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
bge4: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c0093<RXCSUM,TXCSUM,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:20
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
bge5: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c0093<RXCSUM,TXCSUM,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:20
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
bge6: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE>
        ether c4:34:6b:b7:72:96
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
bge7: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE>
        ether c4:34:6b:b7:72:97
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x9
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
vlan2: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1496
        ether 28:80:23:ac:87:20
        inet 10.10.10.112 netmask 0xffffff00 broadcast 10.10.10.255
        inet 10.10.10.1 netmask 0xffffff00 broadcast 10.10.10.255 vhid 2
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
        status: active
        vlan: 2 parent interface: lagg0
        carp: BACKUP vhid 2 advbase 1 advskew 100
.
.
.
vlan3092: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1496
        ether 28:80:23:ac:87:20
        inet 10.211.35.253 netmask 0xfffffe00 broadcast 10.211.35.255
        inet 10.211.34.1 netmask 0xfffffe00 broadcast 10.211.35.255 vhid 2
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
        status: active
        vlan: 3092 parent interface: lagg0
        carp: BACKUP vhid 2 advbase 1 advskew 100
lagg0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c0093<RXCSUM,TXCSUM,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:20
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
        status: active
        laggproto lacp lagghash l2,l3,l4
        laggport: bge0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: bge1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: bge4 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: bge5 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

ifconfig after change:
Code:
bge0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1504
        options=c0093<RXCSUM,TXCSUM,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:20
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
bge1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1504
        options=c0093<RXCSUM,TXCSUM,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:20
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
bge2: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:22
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
bge3: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:23
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
bge4: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1504
        options=c0093<RXCSUM,TXCSUM,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:20
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
bge5: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1504
        options=c0093<RXCSUM,TXCSUM,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:20
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
bge6: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE>
        ether c4:34:6b:b7:72:96
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
bge7: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE>
        ether c4:34:6b:b7:72:97
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x9
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
vlan2: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1496
        ether 28:80:23:ac:87:20
        inet 10.10.10.112 netmask 0xffffff00 broadcast 10.10.10.255
        inet 10.10.10.1 netmask 0xffffff00 broadcast 10.10.10.255 vhid 2
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
        status: active
        vlan: 2 parent interface: lagg0
        carp: BACKUP vhid 2 advbase 1 advskew 100
.
.
.
vlan3092: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1496
        ether 28:80:23:ac:87:20
        inet 10.211.35.253 netmask 0xfffffe00 broadcast 10.211.35.255
        inet 10.211.34.1 netmask 0xfffffe00 broadcast 10.211.35.255 vhid 2
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
        status: active
        vlan: 3092 parent interface: lagg0
        carp: BACKUP vhid 2 advbase 1 advskew 100
lagg0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1504
        options=c0093<RXCSUM,TXCSUM,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE>
        ether 28:80:23:ac:87:20
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
        status: active
        laggproto lacp lagghash l2,l3,l4
        laggport: bge0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: bge1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: bge4 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: bge5 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
 
I figured out that when I run ifconfig vlanxx destroy followed by a ifconfig vlanxx create, the vlan is brought up with the proper mtu, 1500, without any changes to my current configuration, but if I restart the netif service or reboot the server they come back up with the 1496 value.

Should I report this as a bug?
 
I have found the solution to my problem. The issue was that I was listing lagg0 as the last cloned interface. As all vlans where actually children of lagg0, the netif scripts order was not playing well with this.
 
Back
Top