Check-Host.cc

Globalny weryfikator EDNS (Extension Mechanisms for DNS)

EDNS (Extension Mechanisms for DNS), formalnie zdefiniowany w RFC 6891, nie jest tradycyjnym rekordem pliku strefy. Zamiast tego jest strukturalną modyfikacją samego głównego protokołu DNS. Gdy architekturę DNS zaprojektowano w latach 80., protokół dyktował, że każde zapytanie wykonywane za pośrednictwem bezstanowego (stateless) protokołu User Datagram Protocol (UDP) musi być ściśle ograniczone do maksymalnego Payloadu wynoszącego 512 bajtów. Przez dziesięciolecia to ograniczenie wystarczało do transmisji podstawowych adresów IP. Jednak wraz z rozwojem Internetu, ten sztywny limit stał się potężnym wąskim gardłem architektonicznym.

Pokonywanie bariery UDP 512 Bajtów

Wprowadzenie nowoczesnych wymagań infrastrukturalnych — w szczególności 128-bitowych adresów IPv6 i potężnych podpisów kryptograficznych generowanych przez DNSSEC — spowodowało, że odpowiedzi DNS rutynowo przekraczały 1500 bajtów. Bez EDNS autorytatywny serwer próbujący zwrócić duży Payload za pośrednictwem protokołu UDP jest zmuszony do skrócenia (truncate) pakietu, ustawienia bitu "TC" (Truncated) w nagłówku i zmuszenia klienta do całkowitego ponownego zainicjowania zapytania za pośrednictwem znacznie wolniejszego stanowego (stateful) połączenia TCP. Taki proces TCP fallback wprowadza bardzo duże, kumulujące się opóźnienia w rozwiązywaniu aplikacji i obciąża zasoby serwera nazw. EDNS rozwiązuje ten problem, wstrzykując "pseudo-rekord OPT" do nagłówka DNS.

Pseudo-rekord OPT i negocjowanie bufora (Buffer Negotiation)

Rekord OPT nie istnieje w statycznym pliku strefy. Jest on generowany dynamicznie podczas aktywnej transakcji. Gdy zgodny ze standardem EDNS resolver pyta serwer, dołącza do zapytania ten rekord OPT, ogłaszając maksymalny akceptowalny rozmiar swojego Payloadu UDP (zazwyczaj 1232 lub 4096 bajtów). Jeśli autorytatywny serwer obsługuje EDNS, wykorzystuje ten wynegocjowany rozmiar bufora do przesyłania ogromnych Payloadów DNSSEC w jednej, błyskawicznej transakcji UDP, całkowicie omijając powolny TCP fallback.

Diagnozowanie "Czarnych Dziur" w sieci i dropów Firewalla

Użycie weryfikatora zgodności EDNS jest obowiązkowym krokiem przy zaawansowanym debugowaniu sieci. Wiele starszych, wdrożonych w przedsiębiorstwach zapór sieciowych (firewalls), przestarzałych systemów wykrywania włamań (IDS) i słabo skonfigurowanych routerów konsumenckich wciąż agresywnie odrzuca przychodzące pakiety UDP większe niż 512 bajtów, interpretując je jako ataki przepełnienia bufora (buffer overflow) lub tzw. UDP floods. W takich przypadkach klient doświadcza poważnych timeoutów DNS, co powoduje powstawanie przerywanej niedostępności witryny. Ponadto protokół EDNS wprowadza zaawansowaną telemetrię routingu, taką jak EDNS Client Subnet (ECS), co pozwala rekursywnym resolverom przekazywać fragment adresu IP użytkownika do autorytatywnego serwera. Pozwala to sieciom CDN na kierowanie ruchu do najbliższego pod względem geograficznym centrum danych z niezwykłą precyzją.