O mapeamento de porta de roteamento e acesso remoto não é aplicado ao host local

1

Eu configurei o Roteamento e Acesso Remoto (Windows Server 2003) para encaminhar o publicip: 80 para um servidor na rede interna privada, e isso está funcionando muito bem. As solicitações de entrada da Internet para a porta 80 são encaminhadas corretamente para nosso servidor da Web interno e está tudo bem.

No entanto, os pedidos no próprio servidor não estão sendo encaminhados. Ou seja, se eu abrir uma janela de console e digitar "telnet publicip 80" do servidor em publicip, a solicitação não será encaminhada para o servidor privado.

Eu entendo que no RRAS eu mapeei a porta 80 na interface pública para o servidor privado e é por isso que não está funcionando; mas eu não sei como configurá-lo para que as solicitações do PC local também sejam encaminhadas para o servidor privado.

Gostaria de receber ajuda ou feedback sobre o assunto.

Obrigado!

    
por Mahmoud Al-Qudsi 02.12.2009 / 11:31

3 respostas

1

Eu o resolvi usando 'netsh interface portproxy', conforme detalhado no link

Isso não resolve na camada de rede como o RRAS faz, mas o resolve sem recorrer a softwares de terceiros. Como somente o localhost passará pelo filtro RRAS, endereçar isso na camada de software não é um problema.

    
por 05.02.2010 / 21:36
3

O que você está procurando é chamado de "hairpin NAT", e a implementação NAT da Microsoft não parece dar suporte a isso. Os pacotes que não estão atravessando a interface do NAT não recebem o NAT aplicado (ou seja, o sourcing da interface privada ou local, destinado à interface privada).

A documentação da Microsoft não é particularmente clara sobre isso (que eu já consegui encontrar, pelo menos), mas o RRAS claramente não se comporta de uma maneira que indique suporte para o NAT suspenso.

Você pode obter o mesmo efeito, pelo menos pelo nome, criando uma zona DNS no servidor DNS local para o nome público e referindo-se ao endereço IP privado. (Portanto, se o site for "www.mydomain.com", crie uma zona DNS "www.mydomain.com", com um único registro "A" em branco referente ao endereço IP privado do servidor da Web.)

Sua única outra opção é mudar para uma implementação NAT, como o Linux iptables, que suporta o NAT hairpin.

    
por 02.12.2009 / 13:49
0

Outras opções. Se você estiver acessando por nome, poderá colocar uma entrada no arquivo de hosts locais no servidor RRAS, apontando o nome para o ip interal. Se você está acessando por IP, você deve ser capaz de colocar em uma rota estática que diz route publicip através de privateip. O servidor no privateip deve ver o pacote dizer "ei, esse sou eu" e manipulá-lo adequadamente, embora você possa precisar de uma rota no outro lado para obter os pacotes de volta corretamente, dependendo da configuração da rede.

    
por 17.12.2009 / 23:19