Mój rejestrator domen i DNS zapewniają obecnie ignorowanie żądań DNS do nieznanych domen. Przez ignorowanie mam na myśli czarne dziury i nigdy nie odpowiada, co powoduje, że moi klienci DNS i biblioteki resolvera ponawiają próbę, wycofują się, a na koniec limit czasu.
dig @NS3.DNSOWL.COM somedomainthatdoesntexist.org
...
;; connection timed out; no servers could be reached
Badając inne popularne usługi nazw domen, widzę, że takie zachowanie jest dość wyjątkowe, ponieważ inni dostawcy zwracają RCODE 5 (ODMOWIONY):
dig @DNS1.NAME-SERVICES.COM somedomainthatdoesntexist.org
dig @NS-284.AWSDNS-35.COM somedomainthatdoesntexist.org
dig @NS21.DOMAINCONTROL.COM somedomainthatdoesntexist.org
Wszystkie zwracają coś takiego:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 64732
lub
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 31219
Zwrot REFUSED
lub NXDOMAIN
natychmiastowe jest właściwe IMHO, w przeciwieństwie do po prostu upuszczenia żądania na piętrze serwerowni.
Kiedy skarżę się do mojego dostawcy na brak odpowiedzi jego serwerów, proszą mnie o zacytowanie RFC, które naruszają ich serwery. Wiem, że to dziwne, że proszą mnie o udowodnienie, że ich serwery powinny odpowiadać na wszystkie żądania, ale niech tak będzie.
Pytania :
- Zastrzegam sobie, że jeśli nie ma zduplikowanych identyfikatorów żądań lub odpowiedzi DOS, serwer powinien zawsze odpowiadać na żądanie. Czy to jest poprawne?
- Jakie RFC i konkretną sekcję powinienem zacytować, aby potwierdzić moje zastrzeżenie?
Dla mnie źle jest nie odpowiadać na zapytanie DNS. Większość klientów wycofuje się, a następnie retransmituje to samo zapytanie na ten sam serwer DNS lub inny serwer. Nie tylko spowalniają klientów, ale również powodują, że to samo zapytanie jest wykonywane ponownie przez ich własne lub inne serwery, w zależności od autorytatywnych serwerów nazw i wpisów NS.
W RFC 1536 i 2308 widzę wiele informacji na temat negatywnego buforowania ze względu na wydajność i aby zatrzymać retransmisję tego samego zapytania. W 4074 widzę informację o zwróceniu pustej odpowiedzi z kodem RCODE 0, więc klient wie, że nie ma informacji ipv6, które powinny spowodować, że klient zapyta o RR, co jest kolejnym przykładem pustej odpowiedzi.
Ale nie mogę znaleźć dokumentu RFC, który mówi, że serwer DNS powinien odpowiedzieć na żądanie, prawdopodobnie dlatego, że jest to dorozumiane.
Konkretny problem występuje, gdy migruję swoją domenę (i powiązane rekordy DNS) na ich serwery lub pierwsze X minut po zarejestrowaniu nowej domeny w ich usłudze. Pomiędzy momentem, w którym zmieniają się autorytatywne serwery nazw (co jest teraz cholernie szybkie), jest opóźnienie, a ich serwery zaczynają obsługiwać moje rekordy DNS. W tym czasie klienci DNS uważają, że ich serwery są wiarygodne, ale nigdy nie odpowiadają na żądanie - nawet za pomocą REFUSED
. Rozumiem opóźnienie, które jest w porządku, ale nie zgadzam się z decyzją, aby nie odpowiadać na żądania DNS. Dla przypomnienia, rozumiem, jak obejść te ograniczenia w ich systemie, ale nadal współpracuję z nimi, aby ulepszyć ich usługi, aby były bardziej zgodne z protokołem DNS.
Dzięki za pomoc.
Edytować:
W ciągu kilku miesięcy od opublikowania tego i skontaktowania się z moim dostawcą zmienili swoje serwery, aby wrócić NXDOMAIN
do nieznanych domen.