Estoy tratando de implementar una MTU de 9000 bytes para la comunicación de almacenamiento entre los invitados KVM y el sistema host. El host tiene un bridge ( br1
) con una MTU de 9000 bytes:
host# ip link show br1
8: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP
link/ether fe:54:00:50:f3:55 brd ff:ff:ff:ff:ff:ff
inet 172.16.64.1/24 brd 172.16.64.255 scope global br1
inet6 fe80::21b:21ff:fe0e:ee39/64 scope link
valid_lft forever preferred_lft forever
Los invitados tienen una interfaz conectada a este puente que también tiene una MTU de 9000 bytes:
guest# ip addr show eth2
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:50:f3:55 brd ff:ff:ff:ff:ff:ff
inet 172.16.64.10/24 brd 172.16.64.255 scope global eth2
inet6 fe80::5054:ff:fe50:f355/64 scope link
valid_lft forever preferred_lft forever
Puedo hacer ping desde el host al invitado:
host# ping -c4 172.16.64.10
PING 172.16.64.10 (172.16.64.10) 56(84) bytes of data.
64 bytes from 172.16.64.10: icmp_seq=1 ttl=64 time=1.15 ms
64 bytes from 172.16.64.10: icmp_seq=2 ttl=64 time=0.558 ms
64 bytes from 172.16.64.10: icmp_seq=3 ttl=64 time=0.566 ms
64 bytes from 172.16.64.10: icmp_seq=4 ttl=64 time=0.631 ms
--- 172.16.64.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.558/0.727/1.153/0.247 ms
Pero si aumento el tamaño del paquete de ping más allá de 1490 bytes, ya no tengo conectividad:
host# ping -c4 -s 1491 172.16.64.10
PING 172.16.64.10 (172.16.64.10) 1491(1519) bytes of data.
--- 172.16.64.10 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3000ms
Un rastreo de paquetes muestra que estos paquetes nunca llegan al invitado. Todo lo que he leído indica que tanto la interfaz de puente de Linux como las virtio
unidades de red son compatibles con tramas gigantes, pero esto seguramente me parece un problema de MTU.
¿Me estoy perdiendo algo realmente obvio?
Actualizar
Mostrando el lado del host de la interfaz de invitado:
host# brctl show
bridge name bridge id STP enabled interfaces
br1 8000.fe540050f355 no vnet2
host# ip addr show vnet2
11: vnet2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast master br1 state UNKNOWN qlen 500
link/ether fe:54:00:50:f3:55 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:fe50:f355/64 scope link
valid_lft forever preferred_lft forever
brctl
y ip addr show
para esa interfaz.