RFC: 1123
Оригинал: Requirements for Internet Hosts - Application and Support
Категория: Стандарт Интернета
Дата публикации:
Автор:
Перевод: Николай Малых
6.1.3.2. Транспортные протоколы

Программы преобразования и рекурсивные серверы DNS должны поддерживать протокол UDP (рекомендуется также поддержка TCP) для передачи запросов (не для переноса зон). Отметим также, что при передаче запроса, не относящегося к передаче зоны, сначала должен использоваться протокол UDP. Если раздел Answer (ответ) в отклике отсечен и запрашивающая программа поддерживает TCP, рекомендуется повторить запрос с использованием TCP.

Серверы DNS должны обслуживать запросы UDP; рекомендуется обслуживать также TCP-запросы. Сервер имен может ограничить ресурсы для обслуживания запросов TCP, но не рекомендуется отказываться от обработки таких запросов лишь потому, что они могли быть обслужены по протоколу UDP.

Недопустимо сохранять (кэшировать) усеченные отклики и использовать их впоследствии, как нормальные отклики.

  • Обсуждение
  • Протокол UDP является предпочтительным для передачи запросов, поскольку UDP порождает меньше пакетов и не так сильно загружает канал связи. Использование UDP играет очень важную роль для загруженных серверов (особенно для корневых). UDP также обеспечивает дополнительную устойчивость, поскольку резольвер может сделать UDP-запросы к нескольким серверам по цене одного запроса TCP.

    Ситуации с усекновением откликов DNS весьма редки в современной среде Internet, но все-таки возможны. Предсказать такие ситуации невозможно, поскольку их возникновение зависит от данных. Эта зависимость включает число записей RR в ответе, размер каждой записи RR и реализацию алгоритма сжатия имен. Обычно считается, что отсечения списков NS и MX не должно происходить для ответов, содержащих не более 15 записей RR.

    Возможность использования усеченных ответов зависит от приложения. Почтовые программы не должны использовать усеченные записи MX, поскольку это может привести к возникновению почтовых петель.

    Практика показала возможность использования UDP в большинстве случаев. Серверы имен должны использовать компрессию данных в откликах. Резольверы должны отличать ответы с усеченным дополнительным разделом (Additional), который содержит только добавочную информацию, от случаев усекновения раздела Answer (ответ) — в случае отсечения записей MX ответы просто нельзя использовать в почтовых программах. Администраторы должны ограничиваться разумным числом первичных имен в списках серверов имен, вариантов MX и т. п.

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

Серверы имен и резольверы на основе частного соглашения могут применять TCP для всего трафика между собой. Для передачи зон должен использоваться протокол TCP.

Сервер DNS должен иметь достаточно внутренних ресурсов для продолжения обработки запросов UDP во время ожидания отклика или при переносе зоны через открытое соединение TCP [RFC1035].

Сервер может поддерживать запросы UDP, для доставки которых используются групповые или широковещательные адреса IP. Однако для запросов с групповым адресом недопустимо устанавливать бит RD (Recursion Desired — желательна рекурсия) и запросы в групповых или широковещательных пакетах с установленным битом RD должны игнорироваться сервером имен. Хостам, передающим запросы DNS с использованием широковещательного или группового адреса рекомендуется передавать их таким способом только в редких случаях — поместив в кэш IP-адрес(а) из отклика, хост в дальнейшем может передавать нормальные запросы по этому адресу.

  • Обсуждение
  • Широковещательные и (особенно) групповые запросы могут обеспечивать способ поиска серверов имен в соседних сетях при отсутствии информации об адресах таких серверов. Однако частое использование таких запросов может привести к ненужной и чрезмерной загрузке как сети, так и серверов имен.
2007 - 2017 © Русские переводы RFC, IETF, ISOC.