Las interfaces VLAN de Linux 5.9 no reciben tráfico a menos que esté habilitado el modo promiscuo

Las interfaces VLAN de Linux 5.9 no reciben tráfico a menos que esté habilitado el modo promiscuo

Acabo de actualizar un NAS que ejecuta Debian Buster a Debian Bullseye. Esto incluyó una actualización del kernel de 4.19.0 a 5.9.0 y una actualización de systemd de 241 a 247.1 (el sistema usa systemd-networkd para la configuración).

La configuración de la red es moderadamente compleja:

  • eno1/eno2: Gigabit Ethernet integrado Intel I210 de doble puerto (usando el controlador igb)

  • principal: interfaz de enlace 802.3ad usando eno1/eno2 como enlaces físicos

  • vlan60/vlan63: subinterfaces vlan que utilizan main como base

main, vlan60y vlan63todos tienen direcciones IPv4 e IPv6, pero no hay direcciones en eno1o eno2.

Todas las interfaces utilizan el modo de dirección MAC predeterminado, lo que significa que las cinco utilizan la dirección MAC integrada de eno1. Mientras intentaba resolver este problema, configuré direcciones MAC administradas localmente en vlan60y vlan63pero eso no ayudó (de hecho, rompió el soporte de IPv6 en main, pero nunca descubrí por qué).

Con la configuración Buster, todo esto funcionó bien. Después de actualizar a Bullseye, mainfunciona bien, pero vlan60no vlan63envía ni recibe tráfico. El tráfico interno hacia/desde sus direcciones funciona bien, pero el tráfico externo no.

Mientras intentaba solucionar este problema, comencé tcpdumpe vlan63inmediatamente noté que el tráfico comenzó a fluir. Detener la captura de paquetes provocó que el tráfico dejara de fluir nuevamente.

En este momento tengo el sistema en funcionamiento ejecutando ip link eno1 set promisc ony ip link eno2 set promisc ony todas las interfaces están pasando tráfico felizmente. No es necesario habilitar el modo promiscuo en las interfaces de nivel superior, solo en las interfaces físicas.

Sin el modo promiscuo habilitado, parece que las subinterfaces VLAN no reciben ninguna trama de transmisión de la red, por lo que ARP y NDP no funcionan.

¿Ha habido algún cambio de comportamiento entre estas versiones del kernel (lo sé, son muchas versiones del kernel...) que podría afectar esto?

Respuesta1

No estoy seguro de qué cambió el kernel, pero tuve el mismo problema en Proxmox VE 7.0 (Debian 11), con la versión del kernel 5.11.22-1. El problema desapareció cuando actualicé la versión del kernel a 5.11.22-3.

Podría ser el problema del kernel. Simplemente actualice a una versión más nueva del kernel y no habrá ningún problema.

información relacionada