NAT com vários gateways

3

Eu tenho a seguinte configuração:

  • Meu Lan é 10.56.8.0/23
  • Eu tenho um gateway com acesso à internet (INETIP-A) e o LAN IP 10.56.9.1
  • Eu tenho outro gateway com acesso à internet (INETIP-B) e o LAN IP 10.56.9.15
  • Eu tenho um PC usado como gateway padrão para cada host na rede com o IP 10.56.9.5. Eu quero fazer todas as minhas alterações aqui.

A conexão de internet padrão é via 10.56.9.15 (é mais rápido), mas eu só tenho controle sobre 10.56.9.1, então para alguns hosts específicos esta deve ser a rota. Para conseguir isso de uma maneira geral, eu configurei 10.56.9.5 como um roteador estabelecendo 10.56.9.15 como padrão GW e adicionando rotas específicas para os hosts que precisam ser acessados via 10.56.9.1.

Agora preciso abrir o acesso da Internet a um servidor VNC host. Eu tenho esse problema.

  • Eu encaminhar a porta 5900 no 10.56.9.1 para o servidor VNC
  • Alguns hosts da Internet A tentam se conectar à interface externa 10.56.9.1 (INETIP-A), porta 5900
  • O servidor VNC tem como padrão GW 10.56.9.5, que também tem como padrão GW 10.56.9.15, então a resposta para a conexão é roteada de volta via interface externa 10.56.9.15 (INETIP-B).
  • Quando o pacote de respostas chega ao seu destino (o host da Internet A) é descartado porque está vindo de um host diferente do pretendido (INETIP-B em vez de INETIP-A)

Existe uma maneira de rotear pacotes de volta através de um gateway específico sem declarar o ip de origem e sem fazer nenhuma configuração específica nos hosts finais (somente em roteadores e gateways)?

    
por Savaj 14.12.2012 / 12:28

1 resposta

2

Sim, você pode, dependendo da capacidade de seus gateways permitir a configuração.

Você configura uma regra NAT no gateway para manejar o endereço de origem do tráfego VNC para um endereço IP do gateway local no caminho (ou, mais especificamente, no Linux, no caminho de saída da sua interface interna).

É bom usar um endereço IP alias (ou pool deles) na interface gw para que você possa identificar e separar o tráfego desconfigurado do normal. Separe um endereço ou sub-rede que esteja no espaço de endereço local, mas tratado como um endereço externo de confiança sábio, digamos 10.56.9.254

Além disso, o registro em log antes do NAT é útil para que você possa identificar de onde o tráfego realmente veio, já que sua caixa VNC agora verá um endereço interno local para todas as conexões.

Quando o tráfego chega ao VNC ele vê um endereço de origem local que sempre será roteado de volta onde quer que você tenha atribuído (o tráfego nativo originado de) então o tráfego voltará para fora do jeito que ele entrou e será -desloucado ao sair.

No linux world, o endereço e a regra nat serão parecidos com:

ip address add 10.56.9.254 dev intnic0
iptables -t nat -A POSTROUTING -o intnic0 -p tcp --destination 10.56.9.vnc --dport 5900 -j SNAT --to 10.56.9.254

Você pode fazer o mesmo no outro GW com outro IP, digamos 253 e então você pode se conectar através de um ou outro.

Se você passar pelo processo de conexão, isso é essencialmente o que seu NAT está fazendo ao sair de sua rede interna. Modificando o IP de origem, enviando os pacotes e mapeando-os de volta quando os pacotes retornam. Você só quer fazer isso para uma conexão específica e na direção oposta, que é onde entra a configuração do gateway. Ela permite configurar o que é capaz?

edit: você pode implementar as mesmas regras de NAT no padrão GW 10.56.9.5 se você direcionar o tráfego VNC via 10.56.9.5 e puder identificar a internet de onde os dados vieram. Talvez através da marcação dos pacotes no caminho através dos gateways ou no gw padrão, onde você ainda pode dizer de onde os pacotes vieram.

    
por 14.12.2012 / 13:44