MTU Size Requirements

spetrillo

Member
Feb 15, 2024
288
15
18
Hello all,

I would like to change my MTU from 1500 to 9000. My switch ports have already been set to 9216. Now my question is as follows;

1) I have to set the actual hardware interface to 9000 in Proxmox correct?
2) I am running VLANs, so in Proxmox I have to set each Linux bridge and Linux VLAN to 9000 correct?

Thanks,
Steve
 
Hello,

Yes, all Interfaces that carry traffic must be set to support (at least) 9000 MTU, so that includes switch ports, physical NICs, bridges, VLAN interfaces, and VM guest NICs, otherwise packets will fragment or drop.
 
Ok I got a strange result...

I was able to change the MTU successfully on the physical interface and the Linux VLAN, but when I change the MTU on the Linux bridge I lose the web interface. The device successfully responds to ping and I can SSH to it, but the web interface is dead. Once I remove the MTU change on the Linux bridge and reboot, the web interface is back. I checked that jumbo frames was enabled on my local PC, so I dont think it was that.

Here is the config of the PVE server:

auto lo
iface lo inet loopback

auto enx6c1ff713591b
iface enx6c1ff713591b inet manual
mtu 9000

auto vmbr0
iface vmbr0 inet manual
bridge-ports enx6c1ff713591b
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2
# mtu 9000
#VMs - 2

auto vmbr0.2
iface vmbr0.2 inet static
address 192.168.1.66/26
gateway 192.168.1.65
mtu 9000
#Mgmt

source /etc/network/interfaces.d/*


My switches are set to 9216 bytes. My PVE server is set to 9000. My local PC defaults to 9014 bytes. I can change it to 9000 bytes if there is thought it needs to be the same on either end.
 
Hm.. Try pinging with larger packet size from your PC, just to make sure that every single point in the chain supports and has jumbo frames (e.g. 9000 MTU) configured:

If you're on Linux:
Code:
ping -M do -s 8972 192.168.1.66
Windows:
Code:
ping 192.168.1.66 -l 9000 -f

This will send a packet with 9000 bytes (20 IP + 8 ICMP headers) instead of the default 64 bytes.
Ping and ssh may not utilize 9000 MTU, which is why it might not break, while HTTPS (web ui) might very well, because it sends much bigger segments (certificates, JS, CSS, etc.).

Also, the bridge (vmbr0) should inherit it's MTU size from the NIC, so you should actually be able to omit it in the configuration.
 
  • Like
Reactions: Onslow and MarkusKo