Page MenuHomePhabricator

openstack: vxlan: potential changes to cloudvirt MTU to enable jumbo frames
Closed, DeclinedPublic

Description

At the time of this writing, we don't have jumbo frames enabled for cloudvirts, or the cloud-private subnet.

Openstack automatically gives VMs attached to VXLAN networks a proper MTU to account for the additional tunnel protocol header bytes.
In pratice, this means VMs don't have 1500 MTU, but 1450.

We could, however, enable jumbo frames everywhere (in particular cloudvirts and the cloud-private subnets) so openstack would allow VMs to run with 1500 MTU.

Changing the MTU of the cloudvirts can be a headache, because during the transition, there will be some cloudvirts with jumbo frames and other without, and therefore some VMs with higher MTU than others.

Event Timeline

Restricted Application removed a subscriber: taavi. · View Herald TranscriptNov 6 2024, 1:38 PM
aborrero moved this task from Backlog to Radar/observer on the User-aborrero board.

Thanks @aborrero

Yeah there is a potential problem for cloud VMs talking to UDP (or other non-TCP) services on the internet. For instance if an internet server sends a 1500-byte packet to a VM with do-not-fragment set, and somewhere on the internet path there is an ICMP "blackhole" (preventing path mtu discovery working), the packet won't get back to the machine.

Most things are TCP, where it is not a problem as the VM will send the correct MSS value which will limit the size of packets the other side of the connection creates.

But overall it's safer/there are no edge cases if the VMs could do 1500.

Moving to jumbos

In terms of what would be needed to support that ideally we could just focus on the cloud-private networks, which would be easier as with few exceptions traffic on that network is all internal to the cluster (not talking to the internet or wikimedia production).

Unfortunately as the cloud-private is configured as a vlan sub-interface of the main network port this doesn't seem to be possible. The parent physical port MTU limits what can be set on the sub-interface. So we'd probably need to increase the MTU for all the networks the cloud hosts connect to, which is trickier again.

In theory we could make the 10.x prod-realm interface a vlan sub-int also, which would allow the parent and cloud sub-int to use 9000, and the prod realm sub-int 1500, but this would mess up our provisioning (needing tagged traffic) so let's not go there.

We have decided not to perform any changes to the MTU settings for now. We will re-evaluate later down the road.