Mam naprawdę dziwny problem z moim DNS. Mojej nazwy domeny ( strugee.net
) nie da się rozwiązać w niektórych sieciach, a w innych.
Na przykład w mojej sieci domowej (ta sama sieć, w której znajduje się serwer):
% dig strugee.net
; <<>> DiG 9.10.3-P4 <<>> strugee.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10086
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;strugee.net. IN A
;; ANSWER SECTION:
strugee.net. 1800 IN A 216.160.72.225
;; Query time: 186 msec
;; SERVER: 205.171.3.65#53(205.171.3.65)
;; WHEN: Sat Apr 16 15:42:36 PDT 2016
;; MSG SIZE rcvd: 56
Jednak jeśli zaloguję się na serwerze, który mam na Digital Ocean, domena nie rozwiąże:
% dig strugee.net
; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> strugee.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 58551
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;strugee.net. IN A
;; Query time: 110 msec
;; SERVER: 2001:4860:4860::8844#53(2001:4860:4860::8844)
;; WHEN: Sat Apr 16 18:44:25 EDT 2016
;; MSG SIZE rcvd: 40
Ale przejście bezpośrednio do autorytatywnych serwerów nazw działa dobrze:
% dig @dns1.registrar-servers.com strugee.net
; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> @dns1.registrar-servers.com strugee.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30856
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;strugee.net. IN A
;; ANSWER SECTION:
strugee.net. 1800 IN A 216.160.72.225
;; AUTHORITY SECTION:
strugee.net. 1800 IN NS dns3.registrar-servers.com.
strugee.net. 1800 IN NS dns4.registrar-servers.com.
strugee.net. 1800 IN NS dns2.registrar-servers.com.
strugee.net. 1800 IN NS dns1.registrar-servers.com.
strugee.net. 1800 IN NS dns5.registrar-servers.com.
;; Query time: 3 msec
;; SERVER: 216.87.155.33#53(216.87.155.33)
;; WHEN: Sat Apr 16 18:46:36 EDT 2016
;; MSG SIZE rcvd: 172
Jest całkiem jasne, że istnieje problem z jakąś dużą siecią, która nie rozwiązuje mojej domeny, ale wydaje mi się, że nie wiem, gdzie. Przejrzałem stronę dig
podręczną w poszukiwaniu opcji, które mogą pomóc, ale nie znalazłem nic szczególnie przydatnego.
Jestem na Namecheap zarówno jako rejestrator domen, jak i hosting DNS. Mam włączoną opcję DNSSEC. Ostatnio nie wprowadziłem żadnych zmian w ustawieniach DNS.
Jak mogę debugować ten problem i znaleźć szkodliwy serwer nazw?
źródło
SERVFAIL
może wskazywać na problem z nadrzędną wersją, ale nadal oznacza pakiet odpowiedzi.strugee.net
ma pięć rekordów NS, ale brakAAAA
zapisówA
kleju, tylko zapisy kleju. Co gorsza, te pięćA
rekordów kleju wskazuje tylko na dwa różne adresy IP. To wydaje się dość kruche. Nawet jeśli nie jest to podstawowa przyczyna problemu, na który należy zwrócić uwagę.Odpowiedzi:
daxd5 oferuje kilka dobrych rad na początek, ale jedyną prawdziwą odpowiedzią jest to, że musisz wiedzieć, jak myśleć jak rekurencyjny serwer DNS. Ponieważ w autorytatywnej warstwie występuje wiele błędnych konfiguracji, które mogą powodować niespójność
SERVFAIL
, potrzebujesz profesjonalnych narzędzi DNS lub narzędzi do sprawdzania poprawności online.W każdym razie celem nie jest wyrzucenie cię z pomocy, ale chciałem upewnić się, że rozumiesz, że nie ma rozstrzygającej odpowiedzi na to pytanie.
W twoim konkretnym przypadku zauważyłem, że
strugee.net
wygląda na strefę podpisaną za pomocą DNSSEC. Widać to po obecnościDS
iRRSIG
zapisów w łańcuchu poleceń:Zanim przejdziemy dalej, musimy sprawdzić, czy podpisanie jest prawidłowe. DNSViz jest narzędziem często używanym do tego celu i potwierdza, że rzeczywiście istnieją problemy . Wściekła czerwień na obrazie sugeruje, że masz problem, ale zamiast rozmyślać nad wszystkim, możemy po prostu rozwinąć Powiadomienia na lewym pasku bocznym:
Problem jest jasny: podpis w Twojej strefie wygasł i klucze muszą zostać odświeżone. Powodem, dla którego widzisz niespójne wyniki, jest to, że nie wszystkie serwery rekurencyjne mają włączoną weryfikację DNSSEC. Jedni, którzy się sprawdzają, opuszczają domenę, a ci, którzy tego nie robią, działają jak zwykle.
Edycja: infrastruktura DNS Comcast jest znana z implementacji sprawdzania poprawności DNSSEC i jako jeden z ich klientów mogę potwierdzić, że również ją widzę
SERVFAIL
.źródło
stugee.net
w wyjściu dig, co oczywiście jest literówką. Część DNSSEC tej analizy została przeprowadzona dla poprawnej nazwy.Chociaż rzeczywiście widzisz, że autorytatywne serwery nazw odpowiadają poprawnie, musisz śledzić cały łańcuch rozwiązywania DNS. To jest, przejdź całą hierarchię DNS od serwerów głównych w górę.
To w zasadzie sprawdza, czy publiczne serwery DNS działają, a ty robisz to samo, co powinien być twój resolver DNS. Powinieneś więc otrzymywać takie same odpowiedzi jak powyżej na serwerze Digital Ocean, chyba że coś jest nie tak z ich usługą rozpoznawania nazw DNS:
Jeśli dwa pierwsze zapytania zawiodą, oznacza to awarię DNS po stronie Digital Ocean. Sprawdź swój
/etc/resolv.conf
i spróbuj wykonać zapytanie do dodatkowego serwera DNS. Jeśli drugi działa, po prostu zmień kolejność na resolwery i spróbuj ponownie.źródło