Encaminhar tráfego de rede específico para outro servidor

3

É possível redirecionar o tráfego de entrada em uma porta específica do meu servidor Ubuntu Linux para outro servidor (que tenha outro endereço IP público e esteja localizado em outro site)? Estou executando um servidor de jogos no outro servidor, mas quero que as pessoas possam se conectar ao endereço IP antigo. Isso poderia ser feito com algum tipo de NAT / PAT combinado com VPN, talvez?

Estes são os resultados dos meus testes com as regras do iptables ...

root@oldserver:~# tcpdump -n -i eth0 port 83
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
17:47:40.349492 IP client.63633 > oldserver.83: Flags [S], seq 783927589, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
17:47:40.597801 IP client.63634 > oldserver.83: Flags [S], seq 924277477, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
17:47:43.349118 IP client.63633 > oldserver.83: Flags [S], seq 783927589, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
17:47:43.596024 IP client.63634 > oldserver.83: Flags [S], seq 924277477, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
17:47:49.349400 IP client.63633 > oldserver.83: Flags [S], seq 783927589, win 8192, options [mss 1460,nop,nop,sackOK], length 0
17:47:49.600172 IP client.63634 > oldserver.83: Flags [S], seq 924277477, win 8192, options [mss 1460,nop,nop,sackOK], length 0
    
por dataviruset 04.01.2012 / 23:53

1 resposta

2

Estas duas linhas

iptables -t nat -A PREROUTING -p tcp --dport <yourgameserverport> -j DNAT --to <yournewserver>:<yournewport>

iptables -t nat -A POSTROUTING -p tcp -d <yournewserver> --dport <yournewport> -j MASQUERADE

deve

  • redirecionar o tráfego para o novo servidor (sem necessidade de uma VPN se for tráfego público)
  • disfarce os pacotes redirecionados como originários de seu servidor "antigo", de modo que ele certamente estaria no caminho de roteamento para fazer o mapeamento reverso dos pacotes de resposta das conexões encaminhadas.

Veja as seções de man page de iptables para detalhes sobre os alvos DNAT e MASQUERADE.

Observe que esse tipo de redirecionamento é simples de configurar, mas interromperia seu registro de IP no servidor de destino - todas as conexões encaminhadas apareceriam como originárias de <youroldserver> . Enquanto isso é apenas uma solução de transição, deve funcionar. Se você quiser fazê-lo permanentemente, você pode examinar as solicitações encaminhadas através de uma interface virtual (por exemplo, uma VPN) e garantir que o host de encaminhamento <youroldserver> esteja no caminho de roteamento do pacote de resposta roteando as respostas de volta pelo mesmo caminho. interface virtual usando tabelas de roteamento alternativas .

Ah, e você precisaria ativar o roteamento emitindo echo "1" > /proc/sys/net/ipv4/ip_forward (para uma alteração temporária) ou editando /etc/sysctl.cfg e definindo net.ipv4.ip_forward=1 (efetivo após a reinicialização).

    
por 05.01.2012 / 00:10