Problemas de agujeros negros PMTUD/ICMP a través de un túnel VXLAN

Problemas de agujeros negros PMTUD/ICMP a través de un túnel VXLAN

Estoy ejecutando un host Proxmox PVE y estoy intentando usar VXLAN para conectar las máquinas que se ejecutan en él a varias redes en nuestro laboratorio. Sin embargo, me encuentro con problemas extraños relacionados con MTU que no entiendo.

Primero mi configuración. El diseño básico es que las máquinas virtuales en el host PVE se conectan a través de un puente a un túnel VXLAN. Al otro lado del túnel tengo una máquina física en el laboratorio que actúa como punto final VXLAN (EP). Se conecta a VTEP a través de un puente a uno de sus puertos Ethernet, que a su vez se conecta al conmutador que contiene la red en la que estoy intentando conectar mi VM.

En el host PVE (una VM y una VXLAN como ejemplo):

 ___________     __________     __________     ___________
|  VM eth0  |   |  Bridge  |   |  VXLAN   |   | Host eno1 |
| 192.168.. |___|   ----   |___|  VNI 1   |___|   10...   |___ to LabNet
| MTU 1500  |   | MTU 1550 |   | MTU 1550 |   | MTU 1600  |
|___________|   |__________|   |__________|   |___________|

En el laboratorio (el punto final con un túnel + un dispositivo de laboratorio como ejemplo):

 ___________                        __________     __________     __________     ___________
| LabDevice |                      | EP eth1  |   |  Bridge  |   |  VXLAN   |   | EP eth0   |
| 192.168.. |___ lab switch etc ___|  ----    |___|   ----   |___|  VNI 1   |___|   10...   |___ to PVE Host
| MTU 1500  |                      | MTU 1500 |   | MTU 1550 |   | MTU 1550 |   | MTU 1600  |
|___________|                      |__________|   |__________|   |__________|   |___________|

Ahora, entiendo que PMTUD realmente no funcionará aquí porque, al ser L2, la mayoría de esos dispositivos no pueden informar, por lo que aumenté el MTU para aquellos dispositivos que tienen que lidiar con la sobrecarga de VXLAN (que es 1600 y no 1550). no está relacionado, solo quiero describir exactamente el estado tal como está).

Sin embargo, todavía tengo problemas de falta de coincidencia de MTU/agujero negro ICMP:

Problema 1) Algo en la cadena afirma que solo admite una MTU de 1450. Si intento conectarme desde la VM a LabDevice a través de SSH, la conexión se bloquea y luego se agota el tiempo de espera. Si pruebo las MTU a través de ping -M do -s 1450algo en algún lugar, responde con el mensaje de fragmentación requerida... habitual, se almacena la MTU máxima de 1450 y los intentos de conexión SSH posteriores funcionan (hasta que se agote el tiempo de espera de la entrada MTU1450 almacenada). El host PVE tiene dispositivos con una MTU configurada en 1450, pero ninguno de ellos está conectado a la VM.

Problema 2) PMTUD no funciona ni siquiera para dispositivos que no participan en el túnel. Si bajo la MTU de la VM eth0 y hago ping -s... desde el LabDevice con algo demasiado grande para la VM, pero está bien para todo lo demás, no obtengo respuesta aunque, según tengo entendido, la VM debería poder responder con ICMP. Se requiere fragmentación... mensajes.

Semi-relacionado: ¿Hay algo que pueda hacer en el host PVE y el dispositivo terminal para permitir que los dispositivos conectados al terminal descubran una MTU reducida? Porque hay algunos laboratorios a los que es posible que no pueda enviar tramas gigantes y preferiría no tener que configurar una MTU más baja en cada dispositivo de esos laboratorios.

Editar: Quizás también sea relevante: actualmente no estoy ejecutando multidifusión, pero configuré las IP remotas a través de bridge fdb .... Además, en el host de VM, las VM no están conectadas directamente al puente sino a través de algo de magia.

información relacionada