dadv: (chuck)
Choose your future ([personal profile] dadv) wrote2015-12-17 12:29 am
Entry tags:

Hetzner и eDNS

Оказалось, что немецкий хостер-лоукостер Hetzner в порядке защиты своей инфраструктуры от атак режет, в частности, входящие фрагментированные пакеты UDP, что в современном интернете частично ломает DNS-сервис. Проблема актуальна только тем, кто держит собственные DNS-серверы на физических или виртуальных серверах в Hetzner.

Детально проблема расписана в базе знаний ISC (наш случай - пункт 4. DNS queries/responses using EDNS are allowed, but UDP fragmentation and reassembly is broken), но решение достаточно простое - настроить свой DNS-сервер сообщать другим серверам не посылать требующие фрагментации ответы. Этакий аналог TCP adjust mss, но для DNS через UDP. Более крупные ответы будут доставляться сразу по TCP вместо UDP.

Для сервера BIND достаточно прописать в секции options:

options {
  edns-udp-size 1432;
}

[identity profile] victor-sudakov.livejournal.com 2015-12-28 10:50 am (UTC)(link)
OK, написал им в техподдержку. Деньги-то заплачены сравнительно немалые, 900 руб/год. Будет что толковое от них - сообщу. Текст обращения был такой:

Обнаружилось, что сервер 193.58.251.251 не отвечает на запросы по TCP.

$ dig -b 95.170.158.163 @193.58.251.251 ya.ru a +tcp

; <<>> DiG 9.9.5 <<>> -b 95.170.158.163 @193.58.251.251 ya.ru a +tcp
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached

Прилагаю файл WireShark с примером обмена, из которого видно, что запрос отправляется, а ответа нет.
Edited 2015-12-28 10:52 (UTC)