editar: sou um novato em networking e descobrindo coisas novas :)
Criei uma interface TUN programaticamente e capaz de interagir.
Eu configurei e passei
ifconfig myTun 10.10.1.1/24 up
e está instalado e funcionando como posso vê-lo ifconfig
e fazendo ping10.10.1.1
e para ter 100% de certeza se minha interface TUN está funcionando com meu problema escrito, fiz o seguinte:
Eu fiz ping 10.10.1.2
e o pacote foi recebido em meu programa, escrevi de volta para tun e o recebi novamente em um loop.
agora tenho certeza de que todos os pacotesDEouPARA 10.10.1.x
estão sendo recebidos e escritos para TUN sem nenhum problema.
quando escrevo um pacote comqualquer IP de destino foraele 10.10.1.x
foi gravado com sucesso no TUN, mas nenhuma resposta foi recebida no TUN.
depois de pesquisar e ler muitos artigos, percebi que ele estava sendo descartado silenciosamente pelo kernel.
Eu li muitas perguntas e respostas sobre interfaces TUN em serverfault.com e descobri que perdi uma parte importante da minha lógica, que éROTEAMENTO.
meu entendimento final é: o pacote está OK e foi recebido pela pilha de rede no Linux, mas o kernel não sabe o que fazer com o pacote por causa de seu destino estranho. então descobri que devo especificar algum roteamento para o kernel emtabelas de ipe habilitando net.ipv4.ip_forward
, mas não sabe como.
meu objetivo final é:
quando eu envio qualquer pacote com qualquer destino fora 10.10.1.x
do TUN, ele deve ser roteado para minha interface principal (que tem acesso à internet, e é wlps020f3
) e qualquer resultado desse pacote deve ser retornado para minha interface TUN
como configurarNATemtabelas de ippara solução alternativa?
Agradeço antecipadamente
Responder1
Habilitar encaminhamento IPv4:
sudo sysctl -w net.ipv4.ip_forward=1
Tráfego NATda interface do túnel atrás do seu endereço sem fio:
sudo iptables -t nat -A POSTROUTING -o wlps020f3 -j MASQUERADE
Nenhuma dessas alterações sobreviverá a uma reinicialização. O link superior eEstetenha mais informações sobre esse aspecto.