Como os pacotes atravessam as interfaces física, de VLAN e de ponte do tc / netfilter?

2

Dada a seguinte configuração em um roteador que realiza NAT entre duas redes A e B:

  • eth0 - interface física - não endereço IP
    • eth0.1 - Interface VLAN para rede A - não endereço IP
    • eth0.2 - Interface VLAN para o endereço B-ip da rede para a rede B
  • br0 - bridge - endereço ip para a rede A
    • combina eth0.1 com outras interfaces (irrelevantes)

Pergunta

Um pacote chega da rede A, por isso é marcado com VLAN ID 1. Fisicamente, é recebido pela eth0. Logicamente por eth0.1 mas também por br0.

Se o IP de destino estiver na rede B, ele será adicionalmente encaminhado logicamente para eth0.2, mas terá que sair fisicamente pela eth0 novamente.

Em que ordem esses pacotes são processados por qdiscs de entrada / saída e PRE / POSTROUTING iptables?

E a outra direção, da rede B para A através das mesmas interfaces?

Veja o fluxograma de pacotes do netfiler para referência:

    
por xnor 20.03.2017 / 22:06

1 resposta

1

Depois de algumas experiências com o tcpdump e o iptables, observei o seguinte:

Se um pacote enviado da rede A para a rede B, então o tcpdump mostra:

  1. quadro com tag eth0: VLAN ID 1 (4 bytes maior).
  2. eth0.1: quadro não marcado
  3. br0: mesmo frame
  4. eth0.2: frame NATed

Iptables:

  1. br0 em
  2. NAT
  3. eth0.2 out

Eu assumo que qdiscs são processados em uma ordem como esta:

  1. ingresso eth0
  2. ingresso eth0.1
  3. entrada br0
  4. br0 egresso
  5. eth0.1 egresso
  6. saída eth0
por 21.03.2017 / 19:59