Encaminhar pacotes IP para o dispositivo de encapsulamento

3

Eu criei um dispositivo de túnel usando

ip tuntap add dev tun0 mode tun user 0 group 0

Eu então atribuo um endereço IP 192.168.0.1/22

ifconfig tun0 192.168.0.1 netmask 255.255.252.0

Em meu dispositivo ethernet eth0, recebo pacotes de máquinas no intervalo de endereços IP 192.168.1.2-192.168.1.5. Eu gostaria que esses pacotes fossem encaminhados no dispositivo de túnel. Eu não desejo criar uma ponte entre o dispositivo ethernet e tunnel. Portanto, adicionei entradas de roteamento na tabela de roteamento da seguinte maneira.

ip rule add from 192.168.1.0/24 lookup myinternal

ip route add default via 192.168.0.1 dev tun0 table myinternal

Eu limpei (removi) todas as entradas das tabelas ip. Existem duas entradas no entanto

iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT

iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

Quando eu faço um tcpdump no tun0 eu não consigo ver os pacotes da eth0. No entanto eu posso ver os pacotes quando eu faço um tcpdump em eth0. Gostaria de saber como posso encaminhar / capturar esses pacotes no tun0. A partir do tun0, eu gostaria mais tarde de processar esses pacotes e responder a eles a partir do meu aplicativo e, se necessário, passá-los para outra interface. Eu não posso usar eth0 para minhas atividades.

Eu habilitei o encaminhamento usando o systl para o ipv4.

cat /proc/sys/net/ipv4/ip_forward

1

Além disso, não há nenhuma entrada de rota padrão na minha tabela de roteamento principal.

    
por Ashwin 17.07.2012 / 02:31

1 resposta

0

Eu sei que já faz seis anos, mas no caso de alguém se deparar com um problema semelhante: isso soa como o filtro de caminho inverso 'rp_filter' reduzindo o tráfego.

Do link:

  • log rp_filter eliminou tráfego:

echo 1 >/proc/sys/net/ipv4/conf/(interfacename)/log_martians

  • desativar o rp_filter:

echo 0 >/proc/sys/net/ipv4/conf/(interfacename)/rp_filter

    
por 18.07.2018 / 18:14