Loopback NAT e DynDNS

Loopback NAT e DynDNS

Configurei o DynDNS com sucesso em meu roteador e agora consigo acessar meu servidor doméstico de fora da minha rede local usando meu domínio personalizado.

Usando o mesmo domínio, consigo acessar meu servidor doméstico de dentro da rede local, apesar de ter um IP externo, então presumo que meu roteador permita loopback NAT para esse domínio.

Eu estava pensando que isso era suficiente para garantir que o tráfego de rede permanecesse na rede local para as solicitações ao meu servidor doméstico.

Mas fiz um teste simples que parece refutar isso.

Alterei o arquivo /etc/hosts do meu laptop (conectado à rede local) para resolver meu domínio DynDNS como o IP local do meu servidor (por exemplo, 192.168.1.2).

A velocidade da rede é muito mais rápida usando o IP local para cada solicitação. Presumo que seja porque a solicitação não está saindo da rede local.

Meu laptop não é o único dispositivo que usará o servidor. Além disso, alterar o arquivo hosts dentro/fora da minha rede não é uma opção viável. O que realmente não entendo é por que o roteador não é "inteligente" o suficiente para redirecionar as solicitações

Estou esquecendo de algo?

A única maneira de resolver isso é implantando um servidor DNS na minha rede local?

Responder1

Não, seu roteador não está fazendo "loopback NAT".

Existem dois casos. Você pode ver o que se aplica observando o IP da interface de rede externa do seu roteador (que pode ser diferente do seu IP público, veja abaixo).

1) Seu ISP está fazendo NAT de nível de operadora (muito provavelmente, na Alemanha é quase certo).

Seu IP público estará na rede do seu ISP. Seu roteador também terá um IP privado na rede do seu ISP (que é diferente dos IPs privados da sua rede doméstica). Quando você envia um pacote para o seu IP público, ele irá para o roteador, depois para a rede do seu ISP, depois voltará para o seu roteador e depois para o seu servidor. Você pode ou não ver (parte disso) isso com traceroute.

Portanto, ele sairá da sua rede doméstica, mas não sairá da rede do seu ISP.

Existe um mecanismo ICMP REDIRECT para tornar isso mais rápido na próxima vez, mas seu ISP pode ou não usá-lo, e o Fritzbox pode ou não obedecê-lo.

OTOH, quando você usa diretamente o endereço do seu servidor, é para lá que ele irá.

2) Seu ISP não está executando NAT de nível de operadora. O pacote para o seu IP público irá para o seu roteador, detectará que é um IP local, mas ainda aplicará as regras de encaminhamento de porta e o enviará de volta ao seu servidor.

Isso ainda é mais lento do que enviá-lo diretamente para o servidor, mas não tanto quanto no caso (1).

3) Seu Fritzbox é perfeitamente capaz de gerenciar IPs estáticos. E já roda um servidor DNS. Você pode editar o nome do dispositivo na GUI, marcar a caixa "sempre o mesmo IP" e o servidor estará acessível em xyz.fritz.box, sempre com o mesmo IP.

O que ele não fará é substituir a resolução de nomes fora de seu domínio (pelo menos não acho que possa, talvez valha a pena tentar).

Então, sim, se você quiser que seu nome de domínio DDNS seja resolvido para IPs diferentes, dependendo de você estar em sua rede doméstica ou externa, você terá que implantar um segundo servidor DNS. Ou crie um script para alterar /etc/hostsautomaticamente dependendo de qual SSID está conectado, etc.

informação relacionada