O que aconteceu com os pacotes TCP e UDP quando eles estão sendo NAT?

1

Se eu tiver dois Virtual Private Servers e eles estiverem localizados em diferentes países. Então eu quero usar um servidor (139.162.131.242) como um servidor proxy para proxy tcp e tráfego udp, o processo de proxy escuta na porta local 8300. Outro servidor (172.104.98.95) será usado para retransmitir o tráfego para o servidor proxy .

Alguém me ensinou como conseguir isso usando IPTABLES:
ETAPA 1: configure o programa proxy no servidor proxy (139.162.131.242) e execute-o
PASSO 2: escreva algumas regras do iptables no servidor de retransmissão (172.104.98.95), assim:

iptables -t nat -A PREROUTING -p tcp --dport 8300 -j DNAT --to-destination 139.162.131.242:8300  
iptables -t nat -A PREROUTING -p udp --dport 8300 -j DNAT --to-destination 139.162.131.242:8300  
iptables -t nat -A POSTROUTING -d 139.162.131.242 -p tcp --dport 8300 -j SNAT --to-source 172.104.98.95  
iptables -t nat -A POSTROUTING -d 139.162.131.242 -p udp --dport 8300 -j SNAT --to-source 172.104.98.95  

ETAPA 3: configure o programa cliente proxy para fazer com que todo o tráfego tcp e udp vá para o servidor de retransmissão

Mas estou confuso sobre esse método. Por exemplo, estou jogando um jogo online que usa udp ou tcp para se comunicar com o servidor do jogo. Quando esse tráfego chegar ao servidor de retransmissão, eles serão DNATed e finalmente chegarão ao servidor proxy, mas o servidor proxy poderá saber para onde esse tráfego será enviado? Quero dizer, o servidor proxy enviará esse tráfego para o servidor do jogo? Se assim for, como o servidor proxy pode saber o endereço real do servidor de jogo depois que o endereço de destino do tráfego já foi alterado no servidor de retransmissão?

    
por S. Kanako 04.09.2017 / 11:00

1 resposta

1

As informações relevantes sobre os pacotes IP são endereço de origem , endereço de destino , porta de origem e porta de destino . O par de portas de origem e destino é usado pelo cliente e servidor: o lado de inicialização envia o pacote para a porta de destino e escolhe uma porta de origem, em uma resposta a porta de origem é usada como porta de destino e porta de destino.

Cada vez que o pacote é alterado, o mapeamento entre as alterações é salvo. Esse mapeamento é como os dispositivos sabem o que fazer com os pacotes. O NAT usa essas informações para mapear conexões entre hosts. O NAT estático usa um mapeamento baseado em regras pré-configuradas, enquanto o NAT dinâmico estende o mapa quando uma nova conexão é iniciada e remove a entrada do mapa quando a conexão é fechada.

Eu explico em etapas como os pacotes viajam entre seu cliente e servidor. Como não conheço os detalhes sobre o proxy que você está usando, presumo que todo o tráfego para o proxy seja retransmitido para o servidor e ocorra de forma transparente.

Os passos entre o seu cliente e o seu servidor:

client <---> VPN <---> NAT <---> proxy <---> server

Do cliente para o servidor:

  1. O cliente envia um pacote para o endereço de destino (proxy). O roteamento é usado para enviar o tráfego via VPN.
  2. O
  3. NAT encaminha o pacote. O NAT altera o endereço de origem para seu próprio uso pela regra NAT de origem. O endereço de destino (proxy) não foi alterado .
  4. O proxy obtém o pacote do NAT, como normalmente.
  5. O servidor de destino recebe um pacote do proxy.

Do servidor para o cliente:

  1. O servidor de destino envia o pacote ao proxy.
  2. O proxy retransmite o pacote para o NAT.
  3. O
  4. NAT encaminha o pacote. O endereço de destino é alterado para o endereço do seu cliente pela regra NAT de destino. O endereço de origem (proxy) não foi alterado .
  5. Seu cliente recebe o pacote.
por 04.09.2017 / 12:49