Check-Host.cc

Глобальный чекер EDNS (Extension Mechanisms for DNS)

EDNS (Extension Mechanisms for DNS), формально определенный в RFC 6891, не является традиционной записью файла зоны. Вместо этого это структурная модификация самого базового протокола DNS. Когда DNS изначально проектировался в 1980-х годах, протокол предписывал, что любой запрос, выполняемый по User Datagram Protocol (UDP) без сохранения состояния (stateless), должен быть строго ограничен максимальным Payload в 512 байт. В течение десятилетий этого ограничения было достаточно для передачи базовых IP-адресов. Однако по мере развития Интернета этот жесткий лимит стал огромным архитектурным узким местом (bottleneck).

Преодоление UDP-барьера в 512 байт

Внедрение современных требований к инфраструктуре — в частности, 128-битных адресов IPv6 и массивных криптографических подписей, генерируемых DNSSEC, — привело к тому, что ответы DNS регулярно превышали 1500 байт. Без EDNS авторитетный сервер, пытающийся вернуть большой Payload по UDP, вынужден обрезать (truncate) пакет, установить бит "TC" (Truncated) в заголовке и заставить клиента полностью переинициировать запрос через более медленное TCP-соединение с сохранением состояния (stateful). Этот процесс TCP fallback вводит серьезную комплексную задержку в разрешение приложений и перегружает ресурсы сервера имен. EDNS решает это путем внедрения "псевдо-записи OPT" в заголовок DNS.

Псевдо-запись OPT и согласование буфера (Buffer Negotiation)

Запись OPT не существует в статическом файле зоны. Она динамически генерируется во время активной транзакции. Когда EDNS-совместимый резолвер запрашивает сервер, он прикрепляет эту запись OPT, чтобы объявить (advertise) свой максимальный приемлемый размер UDP Payload (обычно 1232 или 4096 байт). Если авторитетный сервер поддерживает EDNS, он использует этот согласованный размер буфера для передачи массивных DNSSEC Payload в одной молниеносной транзакции UDP, полностью обходя медленный TCP fallback.

Диагностика сетевых "черных дыр" и сбросов Firewall

Использование проверки соответствия EDNS — обязательный шаг для расширенной отладки сети. Многие устаревшие корпоративные брандмауэры (firewalls), старые системы обнаружения вторжений (IDS) и плохо настроенные потребительские маршрутизаторы по-прежнему агрессивно отбрасывают входящие UDP-пакеты размером более 512 байт, интерпретируя их как атаки переполнения буфера (buffer overflow) или UDP-флуд. Когда это происходит, клиент испытывает серьезные таймауты DNS, вызывая прерывистую недоступность сайта. Кроме того, EDNS вводит расширенную телеметрию маршрутизации, такую как EDNS Client Subnet (ECS), которая позволяет рекурсивным резолверам передавать фрагмент IP-адреса пользователя на авторитетный сервер, позволяя сетям CDN направлять трафик в ближайший географический дата-центр с исключительной точностью.