Resolução de DNS quando não há registro A

1

Existem domínios, que estão registrados no DNS apenas com um registro SOA, mas sem nenhum registro A (ou qualquer outro registro):

> dig wien.eu

; <<>> DiG 9.9.7-P3 <<>> wien.eu
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51354
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;wien.eu.           IN  A

;; AUTHORITY SECTION:
wien.eu.        1922    IN  SOA dns1.magwien.gv.at. hostmaster.magwien.gv.at. 2013082700 10800 3600 604800 86400

;; Query time: 134 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Sat Dec 02 19:45:19 CET 2017
;; MSG SIZE  rcvd: 101

O que parece ser um registro A é apenas um comentário (começa com um ponto e vírgula). Mesmo se não fosse um comentário, seria malformado (ou seja, não um registro A) porque não contém nenhum endereço IP.

A maioria dos comandos, que geralmente resolvem nomes de domínio (como ping, telnet e outros) usando DNS falhará se não houver nada além de uma entrada SOA (e muitos comentários e linhas vazias).

Além disso, muitos webbrowsers não podem abrir um site em um domínio somente SOA, como http://wien.eu , entre eles:

  • Google Chrome
  • Ópera
  • Navegador Tor

Mas há navegadores que abrirão um site se você digitar um nome de domínio:

  • Safári
  • Raposa de fogo

Não pude testar o Internet Explorer, porque uso o Mac OS e não está disponível lá.
No caso do exemplo dado, eles redirecionam para outra URL (que, ao contrário, parece uma maneira significativa de resolver a URL fornecida, o que me faz acreditar ser o comportamento desejado).

Eu me pergunto, o que o Safari e o Firefox fazem para realizar esse milagre, que outros navegadores e ferramentas não podem fazer.

btw: Eu pensei em saber como funciona o DNS, e pensei, isso significaria, que somente domínios SOA como wien.eu não podem ser resolvidos para um endereço IP. Mas o Safari e o Firefox provam o contrário.

Adendo em reação a uma resposta.

Todos os 5 navegadores usados ​​no meu teste são as versões mais recentes, e todas elas são executadas no mesmo computador (iMac com Mac OS X 10.13 High Sierra). Então, todos usam exatamente o mesmo sistema operacional e também usam exatamente o mesmo servidor DNS.

E não há registro AAAA no arquivo de zona (como você pode ver na saída citada escavação acima).

E se você não pode acreditar: Experimente. Use qualquer ferramenta que você deseja verificar as configurações de DNS de wien.eu e tente abri-lo em dois navegadores diferentes que pertencem a cada um dos dois grupos listados acima.

Hubert Schölnast
fonte
Eu apenas tentei abri-lo no Safari (versão 11.0.1 (13604.3.5)) no macOS 10.13 (High Sierra) e não consegui. Eu tentei carregá-lo no Firefox (versão 57) no mesmo Mac e ele redireciona para https://www.wien.gv.at/. Parece um registro DNS mal gerenciado.
JakeGould
@ JakeGould: Você pode explicar com mais detalhes o que você quer dizer com "registro de DNS mal gerenciado"? Por que isso é ruim? Ainda mais importante: por que funciona em alguns navegadores?
Hubert Schölnast
É um registro DNS muito mal configurado. É mal configurado porque não há um registro. Por que funciona é arbitrário com base no que um resolvedor de DNS pode retornar. Então, é como jogar para que isso funcione. Como afirmei, não funcionou no Safari para mim. Portanto, este é um registro de DNS que foi inserido incorretamente ou gerenciado de maneira incompetente. É isso aí.
JakeGould
@JakeGould: Ok. O que eu pensei quando vi esses registros DNS foi: Isso nunca pode resolver para qualquer endereço IP, isso provavelmente foi feito apenas para reservar este domínio para uso futuro. Mas isso resolve em alguns navegadores e depois (após a resolução) ele redireciona para https://www.wien.gv.at/. Eu entendo o redirecionamento, mas não entendo como a resolução do nome de domínio funciona neste caso.
Hubert Schölnast
1
Eu era o eleitor de baixo. Eu realmente não estava claro qual era o seu objetivo ao postar essa pergunta. Agora que você se resolveu, tudo ficou bem claro. Ainda é - em última análise, uma questão de um registro de DNS mal configurado / embora, mas sua explicação realmente esclarece por que coisas que não devem funcionar de repente funcionam nesta era de navegadores da Web preenchendo os espaços em branco proverbiais para você.
JakeGould

Respostas:

1

Não acredito que outros navegadores possam resolver o domínio (a menos que haja registros CNAME ou AAAA que ajudem o DNS a descobrir aonde ir em seguida, e devem ser igualmente reconhecidos por qualquer navegador).

Algumas possíveis explicações do comportamento visto -

  • Os resultados armazenados em cache estão sendo usados ​​como fallback, mas não estão disponíveis em todos os navegadores.
  • Diferentes servidores de nomes sendo escolhidos com informações de arquivo de zona diferentes (possivelmente dividir o armazenamento em cache de DNS ou DNS)

  • Hospeda entradas de arquivos em alguns computadores, mas não em outros, ou em um domínio de pesquisa que pode modificar as entradas de fallback do DNS.

  • Use se um proxy de armazenamento em cache - possivelmente um proxy transparente no nível do ISP.

  • Um pouco se um palpite, mas se houver um registro AAAA, pode haver limitações no navegador e / ou no sistema operacional lidando com o recurso IPV6.

É importante que os navegadores da Web não façam a resolução de DNS, em vez de fazer uma chamada IS e deixar o IS lidar com isso. AFAIK isso é verdade se todos os navegadores.

Resposta atualizada específica para este servidor e à luz de informações adicionais

Uma das explicações possíveis na minha resposta anterior "Servidores de nomes diferentes sendo escolhidos com informações de arquivo de zona diferentes (possivelmente com cache DNS ou DNS dividido)" estavam corretos.

Fazer a consulta idêntica duas vezes ao mesmo servidor de nomes autoritativo gerou resultados diferentes da seguinte forma:

davidgo @ davidgo-Precision-T1500: ~ $ dig @ dns1.wien.at wien.at

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @dns1.wien.at wien.at
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47939
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;wien.at.           IN  A

;; ANSWER SECTION:
wien.at.        300 IN  A   217.149.229.10

;; AUTHORITY SECTION:
wien.at.        86400   IN  NS  ns11.govix.at.
wien.at.        86400   IN  NS  ns5.univie.ac.at.
wien.at.        86400   IN  NS  dns1.magwien.gv.at.
wien.at.        86400   IN  NS  dns1.wien.at.

;; ADDITIONAL SECTION:
dns1.magwien.gv.at. 86400   IN  A   217.149.228.128
dns1.wien.at.       86400   IN  A   217.149.229.128

;; Query time: 278 msec
;; SERVER: 217.149.229.128#53(217.149.229.128)
;; WHEN: Sun Dec 03 11:27:55 NZDT 2017
;; MSG SIZE  rcvd: 186

davidgo@davidgo-Precision-T1500:~$ dig @dns1.wien.at wien.eu -t any 

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @dns1.wien.at wien.eu -t any
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56418
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 3
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;wien.eu.           IN  ANY

;; ANSWER SECTION:
wien.eu.        86400   IN  SOA dns1.magwien.gv.at. hostmaster.magwien.gv.at. 2013082700 10800 3600 604800 86400
wien.eu.        86400   IN  NS  dns1.magwien.gv.at.
wien.eu.        86400   IN  NS  dns1.wien.at.

;; ADDITIONAL SECTION:
dns1.magwien.gv.at. 86400   IN  A   217.149.228.128
dns1.wien.at.       86400   IN  A   217.149.229.128

;; Query time: 277 msec
;; SERVER: 217.149.229.128#53(217.149.229.128)
;; WHEN: Sun Dec 03 11:28:15 NZDT 2017
;; MSG SIZE  rcvd: 171

Isso definitivamente significa que há um problema com a configuração dos servidores de nomes, mas pode ser qualquer coisa, incluindo problemas com um servidor de nomes principal oculto, problemas com o servidor de nomes real, problemas com alguns membros de um cluster DNS ou uma combinação dos anteriores . Vale a pena notar que os registros do servidor de nomes retornados também são diferentes.

Eu também acredito que algum cache de nameserver está acontecendo no sistema operacional, como a consulta que retornou um resultado realmente retorna ao navegador bastante raramente.

Também é digno de nota que sua consulta de escavação não foi feita contra um servidor de nomes autoritário - e muitos / muitos ISPs usam pools de nameservers com um único endereço IP - cada qual pode ter informações diferentes devido ao cache de zona. Isso é óbvio se você fizer uma consulta (por exemplo) 8.8.8.8 - Googles "primary" nameserver, várias vezes, e observar o salto TTL em alta velocidade dependendo de qual servidor de nomes de backend você obter. (o TTL é o número entre o nome do domínio e o "IN" no registro SOA, mas existe em todos os registros. Se houvesse apenas um único servidor, esse número diminuiria à medida que os segundos passassem até que ele saltasse quando chegasse 0 e faz uma nova pesquisa.

davidgo
fonte
Eu teria downvoted você se eu tivesse reputação suficiente: Todos os navegadores correm no mesmo computador. Isso significa: Todos os 5 navegadores usam o mesmo sistema operacional e, portanto, o mesmo servidor DNS. O recurso wien.eu não estava em cache antes, e há apenas um registro SOA no arquivo de zona, nada mais (exceto alguns comentários), o que também significa: nenhum registro AAAA. Experimente! cavar wien.eu e tente abri-lo no firefox e no Chrome.
Hubert Schölnast
3
Você não deve morder a mão que tenta alimentá-lo - parece rude que você ache que minha resposta está errada, mas então modifica seu post devido a deficiências que minha resposta tornou aparente em sua pergunta. Você pode ou não se importar que minha carreira de 20 anos inclua a criação de ISPs e a administração de sistemas da Internet. Eu cheguei a um computador e atualizei meu post depois de encontrar a causa raiz do problema.
davidgo
Eu claramente marcava minha edição como "adendo" e "Reação a uma resposta". Eu não mudei nada acima deste título. E também ganho meu dinheiro trabalhando com computadores desde 1993, entre muitas outras coisas, também tenho que administrar alguns servidores para meus clientes desde 2001, e agora, aos 52 anos, comecei a estudar novamente (segurança de TI). E sua resposta ainda está errada, e não é rude dizer isso se for verdade !. Por favor, leia atentamente o que eu realmente escrevi. Eu não perguntei sobre wien.AT . Eu perguntei sobre wien.EU . EU gostar E europeu você nion.
Hubert Schölnast
btw: Eu posso provar agora que sua resposta está errada e, portanto, precisa ser downvoted, porque nesse meio tempo eu encontrei a resposta correta: superuser.com/a/1273824/175792
Hubert Schölnast
1

Eu encontrei a resposta para minha própria pergunta, capturando o tráfego IP.

Em poucas palavras

Quando o firefox não recebeu um endereço IP para wien.eu, pediu (sem quaisquer ordens do usuário ou qualquer outra pessoa) para www.wien.eu em vez disso (juntou-se ao prefixo www. para o nome de domínio original). Como há um registro A válido para esse outro domínio, ele recebeu uma resposta (ou seja, um endereço IP), enviou um HTTP GET para este site, tenho 301 redirecte, em seguida, carregou o recurso redirecionado.

Obviamente, outros navegadores não fazem este truque.


Em detalhe

eu usei Kali Linux como Sistema Operacional, e lá eu iniciei o Firefox. Eu usei o Wireshark para capturar o tráfego. Aqui estão minhas descobertas em detalhes:

O Firefox pede A e AAAA Registros de DNS para wien.eu e para wien.eu.localdomain e sempre recebe a resposta No such name. Ele pede seu gateway padrão, que obviamente também é um servidor DNS.

Firefox sends (time = 0.000):
1: Standard DNS-Query: wien.eu: type A, class IN
2: Standard DNS-Query: wien.eu: type AAAA, class IN

Firefox receives (time = 0.030):
3: (Response to 1): Standard DNS-Response: No such name A wien.eu
4: (Response to 2): Standard DNS-Response: No such name AAAA wien.eu

Firefox sends (time = 0.030):
5: Standard DNS-Query: wien.eu.localdomain: type A, class IN
6: Standard DNS-Query: wien.eu.localdomain: type AAAA, class IN

Firefox receives (time = 0.031):
7: (Response to 5): Standard DNS-Response: No such name A wien.eu.localdomain
8: (Response to 6): Standard DNS-Response: No such name AAAA wien.eu.localdomain

Em seguida, o Firefox repete exatamente as mesmas quatro consultas e recebe exatamente as mesmas respostas (mensagens # 9 a # 16, tempo = 0,047, 0,053, 0,054, 0,054)

E novamente (mensagens # 17 a # 24, tempo = 0,057 a 0,083)

E novamente (mensagens # 25 a # 32, tempo = 0,083 a 0,095)

Na rodada 5, o Firefox adiciona o prefixo www. para o nome do domínio e agora obtém respostas úteis:

Firefox sends (time = 0.113):
33: Standard DNS-Query: www.wien.eu: type A, class IN
34: Standard DNS-Query: www.wien.eu: type AAAA, class IN

Firefox receives (time = 0.140):
35: (Response to 33): Standard DNS-Response: 
Answers:
www.wien.eu: type CNAME, class IN, cname redirector.magwien.gv.at
redirector.magwien.gv.at: type A class IN, addr 217.149.229.45
Authorative nameservers
magwien.gv.at: type NS, class IN, ns ns11.govix.at.
magwien.gv.at: type NS, class IN, ns dns1.magwien.gv.at.
magwien.gv.at: type NS, class IN, ns ns5.univie.ac.at.
magwien.gv.at: type NS, class IN, ns dns1.wien.at.
Additional records
ns11.govix.at: type A, class IN, addr 192.76.243.11
ns11.govix.at: type AAAA, class IN, addr 2001:67c:133c::11
dns1.wien.at: type A, class IN, addr 217.149.229.128
dns1.magwien.gv.at: type A, class IN, addr 217.149.228.128
ns5.univie.ac.at: type A, class IN, addr 193.171.255.77
ns5.univie.ac.at: type AAAA, class IN, addr 2001:628:453:4305::53

36: (Response to 34): Standard DNS-Response:
Answers:
www.wien.eu: type CNAME, class IN, cname redirector.magwien.gv.at
Authorative nameservers
magwien.gv.at: type SOA, class IN, mname dns1.magwien.gv.at.

Desde que o Firefox tem um endereço IP, ele cria uma conexão TCP para esse endereço (handshake TCP, mensagens 37-39). Então, na mensagem # 40, envia uma solicitação HTTP GET para este destino:

GET / HTTP1.1
Host: www.wien.eu
(and some additional HTTP headers)

O servidor confirma este pedido (mensagem # 41) e envia esta resposta na mensagem # 42:

301 Moved Permanently
Location: https://www.wien.gv.at/

O resto é claro:

  • O Firefox envia um reconhecimento de TCP (mensagem # 43)
  • Firefox pede resolução de DNS para www.wien.gv.at (A e AAAA, mensagens # 44 e # 45)
  • O Firefox recebe as respostas (mensagens # 46 e # 47)
  • Em seguida, o Firefox inicia a complicada caixa de diálogo HTTPS para carregar a página html que é exibida.
Hubert Schölnast
fonte