Como meu roteador resolve um URL como http://router.asus.com/ para o seu endereço IP?

38

Normalmente, eu me conecto ao meu roteador pelo endereço IP de 192.168.1.1. No entanto, também posso conectar-me a ele na URL router.asus.com. Meu computador não tem conexão com a Internet. Como é que isso funciona?

Ryan R
fonte
6
Resolver um nome de domínio público para um IP privado parece uma má idéia, BTW.
Dmitry Grigoryev
O @DmitryGrigoryev router.asus.comredireciona para fora da caixa 192.168.1.1e foi incluído pela Asus. Não resolve o IP do meu roteador de fora da minha rede local.
Ryan R

Respostas:

63

Seu roteador possui seu próprio servidor DNS. Quando você o usa online, ele é encaminhado para o DNS do seu ISP, mas também é adicionado à sua própria entrada router.asus.compara apontar para si mesmo.

Como você provavelmente está usando DHCP, ele atribuirá automaticamente suas máquinas a usar seu próprio DNS. Você pode testar isso alterando para um servidor DNS atribuído manualmente (8.8.8.8 por exemplo), liberar o DNS e tentar a mesma URL.

Observe que a visita router.asus.comà minha conexão me leva a um site hospedado na Amazon que parece tentar procurar um roteador compatível na minha rede.

Captura de tela do site em router.asus.com

Parece que ele usa o JQuery a seguir para tentar pegar um arquivo JSON específico de um Nome de Máquina na rede:

$.ajax({
            url: "http://" + target.domainName + "/findasus.json", 
            dataType: "jsonp",
            timeout: 20000,
            global: true,
            complete: function(jqXHR, textStatus){
                switch(jqXHR.status){
                    case 0:
                        target.status = 2;
                        break;
                    default:
                        target.status = 1;
                        iAmAlive({
                            modelName: target.domainName.replace("findasus.local", "ASUS"),
                            ssid: "",
                            ipAddr: target.domainName
                        });
                }

                sessionComplete();
            }
        });

Você pode ver os nomes que ele tenta acessar na captura de tela. Literalmente, apenas circula e, se for atingido, será redirecionado para o que encontrou.

Jonno
fonte
1
Interessante. Você pode expandir a anotação que fez. Como o site hospedado na Amazon tem acesso à sua rede local atrás do firewall para procurar um roteador? (Isto é para aqueles que não têm um router Asus compatível ou mudaram seus DNS em seu Asus router Presumo)
Ryan R
@RyanR Added :)
Jonno
13
O servidor não está realmente examinando sua rede. Ele exibe uma página da web com Javascript. Seu navegador executa o javascript. Portanto, é o seu navegador que faz a "verificação". Eles não têm acesso especial à sua rede, é o seu navegador que tem acesso especial.
Aner
6
Definir seu próprio DNS nem sempre funciona para contornar o servidor DNS do roteador. Eu possuo pelo menos um roteador que intercepta solicitações DNS de saída para outros servidores DNS e as responde por si mesmas.
interfect
.localé o que é usado para Bonjour / Zeroconf.
Thorbjørn Ravn Andersen
7

Pessoalmente, não possuo um roteador Asus, e a resposta de Jonno é muito boa, mas há outra maneira possível de os roteadores fazerem isso (mesmo que não seja usado pelo seu particular).

Como essa página não é veiculada em HTTPS, é perfeitamente possível que o roteador intercepte a solicitação HTTP e responda sem precisar falar com nenhum servidor externo. Sabe-se que os roteadores Asus redirecionam páginas em algumas circunstâncias. Observe que, se o redirecionamento ocorrer mesmo sem uma conexão à Internet (ou seja, sem DNS externo), ele deverá ser causado pelo DNS do seu roteador; não há razão para que ambos não possam estar acontecendo.

Meu roteador doméstico Netgear, por exemplo, pode bloquear domínios e palavras-chave (exibindo uma página "bloqueada pelo firewall Netgear"), mesmo que eu não esteja usando o DNS. Eu me certifiquei de que não estivesse interceptando as solicitações de DNS; o nome é resolvido corretamente, mas ir para a página em um navegador da Web resulta na página "bloqueada".

Você pode testar essa teoria configurando seus servidores DNS para, digamos, Google ( 8.8.8.8) e executando ping no nome de domínio redirecionado.

Ben N
fonte
Muito bom ponto. Isso significa que você não pode bloquear domínios HTTPS com o firewall Netgear ou tem a capacidade de bloquear o uso do DNS quando você o está usando e a solicitação é interceptada como um substituto?
Jonno 16/02
2
@ Jonno O problema é que você não pode bloquear domínios HTTPS por si só. Você pode bloquear um IP ou um intervalo de IPs e fazer com que o servidor DNS informe que o IP é diferente (e, portanto, "bloqueie", pois nunca encontrará o destino correto), mas como o roteador não pode ler o endereço IP. Pacotes HTTPS, sua única opção seria: 1. enviar um certificado incorreto, fornecendo uma página de erro "conexão não confiável" para cada site ou 2. bloquear a porta 443 (https) todos juntos. Ou são opções ruins e têm seus próprios problemas.
H2ooooooo 16/02
1
@ h2ooooooo Eu acredito que é mais preciso dizer que algo / alguém em uma posição privilegiada na sua rede não pode bloquear uma página HTTPS. Embora sem uma confiança CA, um MITM não pode distinguir a partir das informações de tráfego HTTPS mais granular do que o endereço do servidor / IP, o pedido é susceptível de ser precedido por pedido DNS de texto simples que faz especificar o domínio. Uma resposta DNS modificada ou negativa definitivamente pode impedir o tráfego para um domínio específico. Se um domínio realmente ofender, crie uma zona autorizada vazia no DNS.
TJD
@tjd Você pode simplesmente criar uma resposta DNS falsa, desde que tenha bloqueado servidores DNS não autorizados das máquinas host (ou melhor ainda; não permita que as pessoas as alterem nas máquinas da empresa).
H2ooooooo 16/02
1

Só queria adicionar ao Jonnos responder que

admin@asus-rt-n18u:/tmp/home/root# grep asus.com /etc/*
/etc/hosts:192.168.201.5 router.asus.com

é assim que meu (e provavelmente) seu roteador faz isso. Seu roteador provavelmente está executando o asuswrt com o dnsmasq. Você pode ter acesso ao shell (pelo menos via telnet) e procurar por si mesmo.

ElDiabolo
fonte