Verifique a tag vlan do pacote usando a interface virtual Tap

1

Estou tentando aprender como implementar interfaces virtuais usando o driver Tap.

Até agora, meu entendimento é que, usando o driver de toque, posso criar uma interface virtual e ter um programa de espaço do usuário anexado a essa interface para analisar os dados que entram nesse dispositivo.

Agora, se eu anexar um switch cisco à minha interface LAN usando um link TRUNK, encaminhar todos os pacotes que entram na interface LAN para a interface virtual de tap e, em meu programa anexado a essa interface, fazer alguma codificação para analisar a vlan tag no pacote e apenas permitir que certas vlans sejam encaminhadas para a interface WAN?

Isso soa plausível ou há falhas no meu entendimento básico?

Atualização: agora que joguei mais com ele, tenho mais algumas perguntas:

Então eu tenho minha interface tun criada (tun0) que recebe pacotes. Com esses pacotes eu estou fazendo alguma filtragem (permitindo / caindo) com base no "Endereço MAC SRC" no quadro Ethernet. A questão, como faço para enviar os pacotes permitidos para uma das minhas interfaces WAN (eth0) agora?

    
por ankit 03.03.2011 / 06:22

1 resposta

1

É certamente possível fazer isso, e atualmente é possível fazer isso com os módulos do kernel existentes:

LAN - > (nic módulo) - > (módulo dot1q) - > (módulo ponte) - > (módulo dot1q) - > (nic módulo) - > WAN

Ou:

eth0 - > eth0.10 - > br0 - > eth1.20 - > eth1

(pega qualquer coisa marcada como vlan 10 off eth0, re-identifica como vlan 20 e envia eth1, e vice-versa. Controle de acesso adicional pode ser feito usando ebtables.)

Se você não precisar alterar as tags, simplifique para:

eth0 - > br0 - > eth1

E aplique ebtables para br0.

Dito isso, se o seu aplicativo puder fazer a peça "eth0.10 - > br0 - > eth1.20" internamente, embora não exija que os dispositivos de toque façam isso, pois você pode ler quadros de uma interface, filtrar e escrever para o outro.

    
por 03.03.2011 / 06:35