Dlaczego DNS nie rozwiązuje się po zmianie serwera nazw, mimo że rekurencyjne wyszukiwanie DNS zakończyło się powodzeniem?

12

Niedawno przeprowadziłem migrację mojej domeny z Cloudflare do Netlify DNS, więc musiałem zaktualizować moje serwery nazw. Kiedy uruchamiam rekurencyjne wyszukiwanie DNS, które omija pamięć podręczną DNS, wszystko wydaje się być poprawnie skonfigurowane:

$ dig howtogit.net +trace
(output truncated)
howtogit.net.       20  IN  A   159.65.199.87
;; Received 57 bytes from 198.51.44.1#53(dns1.p01.nsone.net) in 18 ms

Jednak zwykłe wyszukiwanie DNS kończy się niepowodzeniem:

$ nslookup howtogit.net                                                                               
Server:     192.168.1.1
Address:    192.168.1.1#53

** server can't find howtogit.net: SERVFAIL

Zakładam, że gdyby buforowanie było błędne, Cloudflare nadal rozwiązywałoby wyszukiwanie, czego nie robi. Wyszukiwanie w 8.8.8.8 (DNS Google) również kończy się niepowodzeniem:

$ dig @8.8.8.8 howtogit.net

; <<>> DiG 9.10.6 <<>> @8.8.8.8 howtogit.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 63809
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;howtogit.net.          IN  A

;; Query time: 43 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Sep 23 13:05:50 CEST 2018
;; MSG SIZE  rcvd: 41

Ponieważ rekordy DNS są buforowane, próbowałem również opróżnić pamięć podręczną DNS Google dla moich rekordów NS i A. Nadal otrzymuję ten sam wynik, pomimo zmiany, która nastąpiła ponad 10 godzin temu.

Czy moja konfiguracja jest nieprawidłowa? Jak upewnić się, że mój DNS może ponownie poprawnie rozwiązać?

Pieter
źródło
1
W takich przypadkach narzędzie takie dnsviz.netpowinno łatwo pokazać, że występuje problem z DNSSEC. W rzeczywistości możesz wyraźnie zobaczyć problem tutaj: dnsviz.net/d/howtogit.net/W6d5WA/dnssec , który możesz porównać do aktualnie działającego: dnsviz.net/d/howtogit.net/W6kJlg/dnssec
Patrick Mevzek
Tak, rozgryzłem to. Ostatecznie zdecydowałem się na migrację z powrotem do Cloudflare, ponieważ Netlify DNS nie obsługuje DNSSEC. Ale dobrze wiedzieć!
Pieter
DNSSEC jest naprawdę trudny. Kompromis między funkcjami, które zapewnia, a niezbędnymi krokami, aby je uzyskać. W powiązanych przypadkach wskazówka dotycząca rozwiązywania problemów: jeśli dignie powiedzie się usługa SERVFAIL, ale jeśli dokonasz tego samego dodawania +cdi już się nie powiedzie, prawdopodobnie oznacza to, że problem dotyczy DNSSEC. +cdwyłącz kontrole DNSSEC, stąd możliwa różnica. Ale SERVFAIL może się zdarzyć z wieloma problemami, nie ma (na razie) rozszerzonych kodów błędów w DNS ...
Patrick Mevzek

Odpowiedzi:

24

Wygląda na to, że howtogit.netstrefa, do której się podpisał, i że po zmianie serwerów nazw nie jest już podpisywana.

Jednak stary DSrekord został pozostawiony na miejscu, wskazując, że strefa musi być podpisana określonym kluczem.

Usuń DSrekord lub ponownie podpisz strefę i w DSrazie potrzeby zaktualizuj rekord ( DSrekord jest zarządzany przez rejestratora).

Jeśli spojrzysz na końcową stronę odpowiednich dig +tracewyników, jest całkiem jasne, że tak musi być ( DSw ramach odwołania, ale nie DNSKEYna autorytatywnym końcu lub po prostu brak podpisów, jeśli zapytasz o inny typ):

$ dig +trace +all howtogit.net DNSKEY

...

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63298
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;howtogit.net.                  IN      DNSKEY

;; AUTHORITY SECTION:
howtogit.net.           172800  IN      NS      dns1.p01.nsone.net.
howtogit.net.           172800  IN      NS      dns2.p01.nsone.net.
howtogit.net.           172800  IN      NS      dns3.p01.nsone.net.
howtogit.net.           172800  IN      NS      dns4.p01.nsone.net.
howtogit.net.           86400   IN      DS      2371 13 2 F7822E035739507BFB9ED504B65FFE7A95698E58C069EF1DE754EED0 55E6799F
howtogit.net.           86400   IN      RRSIG   DS 8 2 86400 20180927051931 20180920040931 7934 net. POLNdGPgCCeF6ClG4ro1mkUI5DpqUuuLLeR4WCly1L5GbOTgPnzg02Nx 2Sse2dYDLJLB1EQYotZkvVm8GNFS5iE8UQlmp4GA3yxTgUeifw5PX6Eh kiJSip37/CyGCTy6OMPoVeMgQjLnrxt1aAOsnO5BszeGY7gD6ee/XHMO zc4=

;; ADDITIONAL SECTION:
dns1.p01.nsone.net.     172800  IN      A       198.51.44.1
dns2.p01.nsone.net.     172800  IN      A       198.51.45.1
dns3.p01.nsone.net.     172800  IN      A       198.51.44.65
dns4.p01.nsone.net.     172800  IN      A       198.51.45.65

;; Query time: 159 msec
;; SERVER: 2001:503:231d::2:30#53(2001:503:231d::2:30)
;; WHEN: Sun Sep 23 11:35:52 UTC 2018
;; MSG SIZE  rcvd: 402

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53062
;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;howtogit.net.                  IN      DNSKEY

;; AUTHORITY SECTION:
howtogit.net.           3600    IN      SOA     dns1.p01.nsone.net. hostmaster.nsone.net. 1537613509 43200 7200 1209600 3600

;; Query time: 1 msec
;; SERVER: 198.51.45.65#53(198.51.45.65)
;; WHEN: Sun Sep 23 11:35:52 UTC 2018
;; MSG SIZE  rcvd: 103

$
Håkan Lindqvist
źródło
1
Jesteś na miejscu ... wygląda na to, że zapomniałem wyłączyć DNSSEC przed migracją. Usunąłem rekord DS z moim rejestratorem i 8.8.8.8 natychmiast rozpocząłem prawidłowe rozwiązywanie domeny.
Pieter
5
@ Pieter Bez problemu. Dziękujemy za nie zaciemnianie szczegółów, które w przeciwnym razie sprawiają, że na tego typu pytania niepotrzebnie trudno jest odpowiedzieć.
Håkan Lindqvist