Como descompactar um pacote encapsulado no iptables / netfilter e processar o pacote encapsulado

3

Eu tenho uma pergunta específica sobre a interação do netfilter / iptables do Linux. Digamos que eu tenha um pacote IP P1 dentro de outro pacote IP P2 (isto é, o P1 é tunelado).

Agora, a pergunta é a seguinte: É possível examinar um campo de cabeçalho específico do pacote "externo" P2 (por exemplo, o endereço de origem MAC), e depois enviar o pacote "interno" P1 para uma certa cadeia de iptables baseada no campo inspecionado?

Como um pequeno exemplo: Digamos que eu tenha 3 correntes na tabela FORWARD, de C1 a C3. Agora, se o endereço de origem MAC de P2 tiver o valor 17, eu quero enviar o pacote "interno" P1 para C1. Se o endereço MAC for 28, eu quero enviar P1 para C2. Caso contrário, quero enviar P2 para C3.

Não tenho certeza se é possível fazê-lo no iptables. Talvez isso também possa ser conseguido conectando um pouco de código C a um gancho de netfilter específico.

Eu sei que esse é um caso de uso estranho, mas estou apenas curioso.

Obrigado antecipadamente!

    
por Sven Hager 21.07.2015 / 23:32

0 respostas