As interfaces VLAN do Linux 5.9 não recebem tráfego, a menos que o modo promíscuo esteja ativado

As interfaces VLAN do Linux 5.9 não recebem tráfego, a menos que o modo promíscuo esteja ativado

Acabei de atualizar um NAS rodando Debian Buster para Debian Bullseye. Isso incluiu uma atualização do kernel de 4.19.0 para 5.9.0 e uma atualização do systemd de 241 para 247.1 (o sistema está usando systemd-networkd para configuração).

A configuração da rede é moderadamente complexa:

  • eno1/eno2: Intel I210 de porta dupla Gigabit Ethernet integrado (usando o driver igb)

  • principal: interface de ligação 802.3ad usando eno1/eno2 como links físicos

  • vlan60/vlan63: subinterfaces vlan usando main como base

main, vlan60, e vlan63todos possuem endereços IPv4 e IPv6, mas não há endereços em eno1ou eno2.

Todas as interfaces estão usando o modo de endereço MAC padrão, o que significa que todas as cinco estão usando o endereço MAC integrado eno1. Ao tentar resolver esse problema, configurei endereços MAC administrados localmente em vlan60e, vlan63mas isso não ajudou (na verdade, quebrou o suporte IPv6 em main, mas nunca descobri o porquê).

Com a configuração Buster, tudo funcionou bem. Após a atualização para o Bullseye, mainfunciona bem, mas vlan60não vlan63envia nem recebe nenhum tráfego. O tráfego interno de/para seus endereços funciona bem, mas o tráfego externo não.

Ao tentar solucionar esse problema, comecei tcpdumpe vlan63percebi imediatamente que o tráfego começou a fluir. A interrupção da captura de pacotes fez com que o tráfego parasse de fluir novamente.

No momento, coloquei o sistema em funcionamento executando ip link eno1 set promisc one ip link eno2 set promisc on, e todas as interfaces estão transmitindo tráfego com alegria. Não é necessário habilitar o modo promíscuo nas interfaces de nível superior, apenas nas interfaces físicas.

Sem o modo promíscuo ativado, parece que as subinterfaces da VLAN não recebem nenhum quadro de transmissão da rede, portanto, isso faz com que o ARP e o NDP não funcionem.

Houve alguma mudança de comportamento entre essas versões do kernel (eu sei, são muitas versões do kernel...) que poderia afetar isso?

Responder1

Não tenho certeza do que o kernel mudou, mas tive o mesmo problema no Proxmox VE 7.0 (Debian 11), com kernel versão 5.11.22-1. O problema desapareceu quando atualizei a versão do kernel para 5.11.22-3.

Pode ser o problema do kernel. Basta atualizar para uma versão mais recente do kernel e não haverá problema.

informação relacionada