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.