dns externos para dns internos

3

Eu tenho um servidor DNS local dentro da minha rede e configurei alguns registros A Name para alguns dos meus sites internos (ie app1.domain.com, app2.domain.com) e o dns resolve internamente e carrega os sites muito bem.

Agora também tenho um domínio godaddy e desejo permitir acesso externo a alguns desses sites. Eu fiz os mesmos registros A Name em godaddy e apontei para o meu IP WAN único. Antes eu era o encaminhamento de porta de todo o tráfego de porta 80 de entrada no roteador diretamente para o IP do meu servidor web interno apenas como uma solução ad-hoc e funcionou bem.

Agora tenho um segundo servidor da Web que preciso expor em um servidor interno diferente. Portanto, para o tráfego da porta 80, preciso enviar o app1 para o meu ip interno 10.1.1.23 e o app2 para o 10.1.1.24 quando os clientes tentarem se conectar do lado de fora.

Por isso, modifiquei meu roteador para encaminhar o tráfego da porta externa 80 para 10.1.1.11 (meu servidor DNS interno) na porta 53 para ambos, tcp / udp. O servidor DNS é uma máquina do Windows Server 2008 R2. Parece que as exceções do firewall também são configuradas para permitir tráfego de entrada na porta 53, mas sempre que tento acessar o site de um cliente externo, nada é carregado. Eu sei que o godaddy está encaminhando o tráfego para a minha WAN porque eu posso fazer um tracert que resolve o meu IP da WAN.

O que estou fazendo de errado?

    
por dave111 04.08.2012 / 10:18

1 resposta

5

Vou seguir em frente e fazer algumas suposições na minha resposta. Me corrija se eu estiver errado.

  1. Você tem apenas 1 IP público e é aquele atribuído à interface WAN do seu roteador.

  2. Seu roteador é um modelo SOHO que só pode receber um único IP em sua interface WAN. ou seja, se você comprou IPs estáticos adicionais do seu provedor, precisará substituir o roteador para lidar com isso.

I have a local DNS server inside my network and have set up a few A Name records to some of my internal sites (i.e. app1.domain.com, app2.domain.com) and the dns resolves internally and loads the sites just fine.

Suponho que seus servidores DNS internos estejam configurados para retornar os endereços privados RFC1918 dos servidores. Isso torna as zonas DNS neste servidor inúteis para pessoas fora de sua LAN. Se eles obtiverem uma resposta de 10.1.1.x de toda a Internet, ela será descartada.

Now I have a godaddy domain as well and want to allow external access for a few of these sites. I made the same A Name records in godaddy and pointed them to my single WAN IP. Before I was port forwarding all incoming port 80 traffic on the router directly to the IP of my internal web server just as an ad-hoc solution and it worked fine.

Ok. Isso funcionará, mas não é muito escalável, como você viu.

Now I have a second web server that I need to expose on a different internal server. So for the port 80 traffic I need to send app1 to my internal ip 10.1.1.23 and app2 to 10.1.1.24 when clients try to connect from the outside.

So I modified my router to forward external port 80 traffic to 10.1.1.11 (my internal DNS server) on port 53 for both tcp/udp. The DNS server is a Windows Server 2008 R2 machine. It looks like the firewall exceptions are also setup to allow incoming traffic on port 53, but anytime I try to access the site from an external client, nothing loads. I know the godaddy is forwarding the traffic to my WAN because I can do a tracert that resolves to my WAN IP.

Aqui é onde você fica esquisito, meu amigo. Realmente, muito estranho. Você está encaminhando uma solicitação HTTP para um servidor DNS e traduzindo a porta também. É como pegar uma carta escrita em inglês endereçada a alguém nos EUA, pegá-la nos Correios e soltá-la na caixa de correio de alguém em Mianmar, perguntando por que você ainda não recebeu uma resposta.

HTTP e DNS são protocolos totalmente diferentes. HTTP é o que serve suas páginas da web. O DNS traduz um nome totalmente qualificado para um endereço IP. Eles não são intercambiáveis. O servidor DNS vai dar uma olhada nos pacotes HTTP que você está encaminhando para ele e dizer "estrague essas coisas, não faça ideia do que isso diz" e, em seguida, jogue-o na lixeira, muito parecido com o seu novo amigo da caneta. Mianmar.

OK, agora que você sabe onde errou, o que você pode fazer?

  1. Obtenha um IP público adicional e atribua-o ao seu roteador. Isso pressupõe que o seu roteador possa lidar com isso. Se não puder, você pode ter que comprar um novo ou usar a opção 2. Se você obtiver outro IP e um roteador que possa manipulá-lo, basta configurar o Go Daddy para usar o segundo IP do segundo servidor e encaminhar as solicitações da porta 80 do novo IP para o novo servidor, da mesma forma que você fez com o primeiro IP e seu primeiro servidor. Isso exigirá que você tenha um IP público para cada novo servidor adicionado.

  2. Configure um proxy reverso e aponte tudo para o seu endereço IP. Você pode usar coisas como o mod_proxy do apache, ou o ARR do IIS7 para isso. Você diria ao DNS do Go Daddy para enviar todo o tráfego de todos os sites externos para o IP que você já possui. No seu roteador, você encaminharia solicitações na porta 80 para um novo servidor que esteja agindo como um proxy reverso. Esse servidor seria configurado para agir como um "intermediário" para conexões de entrada. Você configuraria esse servidor para encaminhar todos os pedidos para o servidor correto com base no nome do host solicitado.

por 04.08.2012 / 12:46