Днес редица крупни DNS услуги и производители на DNS сървъри ще проведат съвместно събитие , целящо да привлече внимание на с IP фрагментация при обработка на големи DNS съобщения. Това е второто подобно събитие, миналата година "DNS flag day" върху правилната обработка на EDNS заявки.
Участниците в инициативата DNS flag day 2020 призовават за фиксиране на препоръчителните размери на буферите за EDNS до стойности на нивото 1232 байта (размер MTU 1280 минус 48 байта за заглавия), а също така обработката на заявки по TCP да бъде задължително поддържана на сървърите. В задължителната поддръжка е обозначена само за обработка на UDP заявки, а TCP е посочен като желан, но не задължителен за работа. Новите и явно отнасят TCP към задължителните функции, необходими за правилната работа на DNS. В рамките на провежданата инициатива се предлага да се ускори преходът от изпращане на заявки по UDP към използването на TCP в случаи, когато установеният размер на буфера за EDNS не е достатъчен.
Предложените промени ще премахнат объркването при избора на размер на буфера EDNS и ще решат проблема с фрагментацията на големи UDP съобщения, обработката на които често води до загуба на пакети и изчаквания от страна на клиента. От страната на клиента размерът на буфера EDNS ще бъде постоянен, а големи отговори незабавно ще бъдат изпращани на клиента по TCP. Изключването на изпращането на големи съобщения по UDP също ще реши проблемите с отхвърлянето на големи пакети на някои межсетеви екрани и ще позволи блокирането на по отравяне на DNS кеша, основано на манипулация с фрагментирани UDP пакети (при фрагментиране, вторият фрагмент не включва заглавие с идентификатор, поради което може да бъде подправен, стига само контролна сума да съвпада).
Започвайки от днес, участващите в инициативата доставчици на DNS, включително CloudFlare, Quad 9, Cisco (OpenDNS) и Google, размера на буфера EDNS от 4096 до 1232 байта на своите DNS сървъри (промяната в EDNS ще бъде разпространена за 4-6 седмици и с течение на времето ще обхване все повече заявки). Отговорите на UDP заявки, които не попадат в новото ограничение, ще бъдат изпращани по TCP. Производителите на DNS сървъри, включително BIND, Unbound, Knot, NSD и PowerDNS, ще издадат актуализации с промяна на размера на буфера EDNS по подразбиране от 4096 до 1232 байта.
В крайна сметка, въведените промени могат да доведат до проблеми с резолвинг на DNS-сервери, чиито DNS-отговори по UDP надвишават 1232 байта и които не могат да изпращат отговори по TCP. Проведеният в Google експеримент показа, че промяната в размера на EDNS буфера практически не влияе на нивото на сблъсъците — при буфер от 4096 байта, броят на урязаните UDP запитвания е 0.345%, а недостижимите повторни отговори по TCP са 0.115%. При буфер от 1232 байта тези показатели са 0.367% и 0.116%. Превключването на поддръжката на TCP към задължителни възможности на DNS ще доведе до проблеми в взаимодействието с около 0.1% от DNS-сървърите. Забелязва се, че при съвременните условия без TCP работата на тези сървъри е нестабилна.
Администраторите на авторитетни DNS-сървъри трябва да се уверят, че техният сървър отговаря по TCP на мрежовия порт 53 и че този TCP порт не е блокиран от междусетевата стена. Авторитетният DNS-сървър също не трябва да изпраща UDP отговори, размерът на които надвишава
заявения размер на EDNS буфера. На самия сървър размерът на EDNS буфера трябва да бъде зададен на 1232 байта. Към резолверите се поставят приблизително същите изисквания — задължителна възможност за отговор по TCP, задължителна поддръжка на повторни запитвания по TCP при получаване на урязан UDP отговор и настройка на EDNS буфера на 1232 байта.
За настройката на размера на EDNS буфера в различни DNS-сървъри отговарят следните параметри:
options {
edns-udp-size 1232;
max-udp-size 1232;
};
max-udp-payload: 1232
net.bufsize(1232)
udp-truncation-threshold=1232
edns-outgoing-bufsize=1232
udp-truncation-threshold=1232
edns-buffer-size: 1232
ipv4-edns-size: 1232
ipv6-edns-size: 1232
Източник: opennet.ru
