Não é possível conectar servidor local por nome de domínio público

0

Eu tenho meu servidor (Debian Wheezy) na minha rede doméstica local. Nesse servidor eu tenho meu próprio servidor DNS (dnsmasq) para outros servidores locais (para que eu possa digitar o nome em vez de IP local) e proxy reverso (nginx). No meu roteador eu configurei o encaminhamento de 80 & 443 portas para o meu proxy reverso e tudo funciona muito bem. Mas só de fora da minha rede.

Quando eu digito myaddress.com registrado em servidores DNS públicos em outro lugar, tudo bem. Mas quando eu digito do meu endereço local, não tenho nada. Eu posso acessá-lo apenas digitando o nome local ou IP. Por nada quero dizer "nenhum dado recebido". Por exemplo:

$ wget myaddress.com
--2016-06-01 19:53:46--  http://myaddress.com/
Resolving myaddress.com... 80.243.xx.yy
Connecting to myaddress.com|80.243.xx.yy|:80... connected.
HTTP request sent, awaiting response... No data received.
Retrying.

Mas quando eu o acesso pelo IP local:

$ wget myaddress.local
--2016-06-01 19:57:13--  http://myaddress.local/
Resolving myaddress.local... 192.168.0.111
Connecting to 192.168.0.111... connected.
HTTP request sent, awaiting response... 200 OK

No log nginx, vejo que a solicitação foi recebida e também foi respondida. Então eu usei o tcpdump para checar o que está acontecendo. Despejo normal ao acessar de fora da minha rede:

19:37:31.455120 IP myphone > mylocalreverseproxy: Flags [P.], seq 1824665393:1824665988, ack 2996933611, win 336, options [nop,nop,TS val 1206547844 ecr 217767803], length 595
E....F..,.)0B.]....e...Pl./1.......P.......
G.u....{GET / HTTP/1.1
Host: myaddress.com
...other headers...

19:37:31.455241 IP mylocalreverseproxy > myphone: Flags [P.], seq 1:725, ack 595, win 55, options [nop,nop,TS val 217767807 ecr 1206547844], length 724
E...L.@.@.._...eB.]..P......l.1....7.......
....G.u.HTTP/1.1 404 Not Found
Server: nginx/1.8.0
Date: Wed, 01 Jun 2016 17:37:31 GMT

E o tcpdump quando tento acessar com a rede local:

19:35:25.085344 IP localchromebook > mylocalreverseproxy: Flags [P.], seq 0:390, ack 1, win 115, options [nop,nop,TS val 537594624 ecr 217735412], length 390
E...-M@.>..........e...P.v.4...Y...s.......
 .....'.GET / HTTP/1.1
Host: myaddress.com
...other headers...

E nada. Resp. outra tentativa dentro de alguns momentos. E outro e assim por diante.

Eu não sou administrador, então não tenho certeza do que tentar e onde procurar em seguida para ver o que está errado e corrigi-lo. Devo observar que há um ano estava funcionando muito bem, mas um dia começou a fazer isso e não consegui consertá-lo desde então. O que você recomendaria tentar?

    
por horejsek 01.06.2016 / 20:23

1 resposta

1

O seu router provavelmente não suporta "NAT Reflection" , também designado por "Hairpin NAT" ou "NAT Loopback ".

Isso significa que as solicitações para o seu endereço IP público de dentro da sua própria rede não são enviadas ao servidor ou são enviadas para o servidor com o endereço IP "Responder" incorreto, causando "Roteamento Triangular", que seu computador não aguenta.

Seu roteador pode ter uma configuração que permite ativar o NAT Reflection. Caso contrário, a única maneira de resolver isso é com "Split DNS" - configurando o DNS em sua rede para retornar o IP privado de seu servidor em vez de seu IP público.

    
por 01.06.2016 / 20:34