Jestem w trakcie konfigurowania monitorowania serwerów DNS kilku dużych hostów internetowych. Moim celem jest porównanie czasów odpowiedzi serwerów dns poprzez śledzenie ich odpowiedzi na ping.
W trakcie tego procesu odkryłem, że serwery nazw Bluehost nie odpowiadają na ping. Próbowałem uzyskać więcej informacji, uruchamiając Pingdom DNS Check na bluehost.com i spowodowało to następujący błąd:
Serwer nazw ns1.bluehost.com (74.220.195.31) nie odpowiada na zapytania przez TCP.
Serwer nazw nie odpowiedział na zapytania wysłane przez TCP. Jest to prawdopodobnie spowodowane nieprawidłowym skonfigurowaniem serwera nazw lub nieprawidłowym filtrowaniem w zaporze. Jest to dość powszechne błędne przekonanie, że DNS nie potrzebuje TCP, chyba że zapewniają transfery stref - być może administrator serwera nazw nie wie, że TCP zwykle jest wymagany.
Chciałbym wiedzieć, co następuje:
- W jakim stopniu powyższe stwierdzenie jest prawdziwe?
- Jakie są konsekwencje, że serwer nazw nie odpowiada na zapytania przez TCP?
źródło
powinien obsługiwać TCP i UDP - TCP ma rozmiar odpowiedzi> 512 bajtów (co obejmuje transfery stref) (tak czy inaczej, zgodnie z tym, co przeczytałem. Zazwyczaj włączam TCP i UDP dla NS, które uruchamiam ...)
źródło
Dobrze jest wiedzieć, co mówią RFC na ten temat, i mamy już na to dobrą, autorytatywną odpowiedź, ale dla celów praktycznych uważam radę prof. Dr. J. J. Bernsteina, autora DJBDNS, dość zabawną.
http://cr.yp.to/djbdns/tcp.html#why (2003-01-16)
Zauważ, że pomija wyraźną wzmiankę o DNSSEC; powodem jest to, że według DJB DNSSEC należy do kategorii „zawsze błąd”. Więcej informacji na stronie https://cr.yp.to/djbdns/forgery.html . DJB ma alternatywny standard o nazwie DNSCurve - http://dnscurve.org/ - który został już niezależnie przyjęty przez niektórych dostawców (np. OpenDNS). Interesujące: /security/45770/if-dnssec-is-so-questionable-why-is-it-ahead-of-dnscurve-in-adoption .
Należy zauważyć, że jeśli powyższa dokumentacja dotycząca konfiguracji DJBDNS wskazuje na jej funkcje, wydaje się, że obsługuje ona tylko AXFR dla TCP. Ponieważ wielu dostawców nadal korzysta z DJBDNS, jest mało prawdopodobne, aby obsługiwali DNS przez TCP bez dodatkowych wysiłków.
PS Zauważ, że DJB faktycznie ćwiczy to, co głosi. Jego własne serwery (1) uruchamiają DNSCurve, (2), nie odpowiadają poprawnie na TCP. Tylko
+notcp
sukces się powiedzie (co jest domyślne):, podczas gdy a
+tcp
zawiedzie (najwyraźniej z innym komunikatem o błędzie, w zależności od tego, który z jego serwerów zostanie wybrany):źródło
TCP jest wymagany tylko i zwykle używany tylko wtedy, gdy wymagana jest długa odpowiedź. Mogą wystąpić negatywne skutki. Przesyłanie stref odbywa się za pośrednictwem protokołu TCP, ponieważ są duże i muszą być niezawodne. Nie zezwalanie na TCP z niezaufanych serwerów jest jednym ze sposobów zapewnienia, że podane zostaną tylko małe odpowiedzi.
Wraz z wprowadzeniem podpisanych odpowiedzi DNS pojawił się wymóg rozluźnienia limitu 512 bajtów na odpowiedzi UPD. EDNS0 zapewnia mechanizm dłuższych odpowiedzi UDP. Brak zezwolenia na DNS przez TCP najprawdopodobniej spowoduje uszkodzenie bezpiecznej implementacji DNS.
Zupełnie możliwe jest uruchomienie serwera DNS, który ma tylko port UDP 53 otwarty do Internetu. Wymagany jest dostęp TCP do peerów DNS, ale jest to mała lista hostów.
Istnieje nowsza wersja RFC596, która wymaga teraz protokołu TCP do pełnej implementacji DNS. Jest to skierowane do implementatorów. Dokumenty w szczególności nie dotyczą operatorów, ale ostrzegają, że niedozwolenie TCP może spowodować szereg scenariuszy awarii. Wyszczególnia wiele różnych awarii, które mogą wystąpić, jeśli DNS przez TCP nie jest obsługiwany.
Dyskutowano na temat korzystania z protokołu TCP w celu zapobiegania atakom wzmacniającym DNS. TCP ma własne ryzyko odmowy usługi, ale dystrybucja jest trudniejsza.
źródło