
Estou tentando descobrir como todos esses componentes estão funcionando juntos.
meu objetivo principal é rotear o tráfego (porta 80.443) da rede do meu host local (windows 7) para um host remoto em uma rede remota. ou seja, quero ir para 10.50.1.2:80 e chegar ao host remoto (porta 4111).
como primeira etapa, tentei adicionar uma rota ao meu host local do Windows com o seguinte:
route ADD “10.50.1.0” MASK “255.255.255.0” “remote public ip”.
Isso não funcionou. alguém pode explicar por quê??
então tentei rotear o endereço para um servidor Linux local
route ADD “10.50.1.0” MASK “255.255.255.0” “192.168.10.78”
então usei iptables & DNAT no pré-roteamento para prefaciar os pacotes para o ip público remoto
iptables -t nat -A PREROUTING -d 10.50.1.2 -dport 80 -j DNAT --to-destination publicIP:80
o tráfego chegou a 192.168.10.78 (verificado pelo tcpdump), mas não chegou ao host remoto. alguém pode explicar por quê?? até tentei usar masquerade no postrouting.
então comecei uma pesquisa e me deparei com um túnel.
alguém pode explicar por que a primeira e a segunda tentativas não funcionam e como o tunelamento pode ajudar?
Responder1
Sua primeira tentativa:
route ADD “10.50.1.0” MASK “255.255.255.0” “remote public ip”
Isso configura uma rota para a rede 10.50.0/24 que pode ser acessada por meio de remote public ip
. IPs privados geralmente não são roteados na Internet e você provavelmente consegue entender por que isso não funciona.
Sua segunda tentativa:
route ADD “10.50.1.0” MASK “255.255.255.0” “192.168.10.78”
Configura uma rota para a rede 10.50.1.0/24 através do host 192.168.10.78 se esse host não estiver configurado para rotear o tráfego para essa rede, ele não levará a lugar nenhum e mesmo assim você não conseguirá alcançar a máquina remota. Você disse que configurou o NAT/DNAT, o que permitiria que aquela máquina fizesse isso, mas não tenho certeza de qual seria a configuração correta. Se você está interessado apenas no tráfego da web, talvez considere usar um proxy?
Quanto ao tunelamento, é o processo de encapsular sua solicitação original em outra conexão. Mas você teria que ser mais específico em que contexto está usando isso, pois pode haver nuances que fazem uma enorme diferença.