Механизмы расширения для DNS - Extension mechanisms for DNS

Механизмы расширения для DNS (EDNS) - это спецификация для увеличения размера нескольких параметров система доменных имен (DNS) протокол, размер которого ограничивался Интернет инженерное сообщество считается слишком ограниченным для увеличения функциональности протокола. Первый набор расширений был опубликован в 1999 г. Инженерная группа Интернета в качестве RFC  2671, также известный как EDNS0[1] который был обновлен RFC  6891 в 2013 г. немного изменил аббревиатуру на EDNS (0).[2]

Мотивация

В система доменных имен был впервые разработан в начале 1980-х годов. С тех пор он был постепенно расширен новыми функциями при сохранении совместимости с более ранними версиями протокола.

Ограничения на размер нескольких полей флагов, кодов возврата и типов меток, доступных в основном протоколе DNS, препятствовали поддержке некоторых желательных функций. Более того, сообщения DNS, переносимые UDP были ограничены 512 байтами, не считая протокол Интернета (IP) и транспортный уровень заголовки.[3] Прибегая к виртуальный канал транспорт, используя Протокол управления передачей (TCP), значительно увеличит накладные расходы. Это стало серьезным препятствием для добавления новых функций в DNS. В 1999 году, Пол Викси предложили расширение DNS, чтобы разрешить новые флаги и коды ответов, а также обеспечить поддержку более длинных ответов в структуре, которая обратно совместима с предыдущими реализациями.

Механизм

Поскольку в заголовок DNS нельзя добавлять новые флаги, EDNS добавляет информацию в сообщения DNS в виде псевдо-Ресурсы ("псевдо-RR" s) включены в раздел «дополнительные данные» DNS-сообщения. Обратите внимание, что этот раздел существует как в запросах, так и в ответах.

EDNS вводит единственный тип псевдо-RR: OPT.

Как псевдо-RR, записи типа OPT никогда не появляются ни в каком файле зоны; они существуют только в сообщениях, сфабрикованных участниками DNS.

Механизм обратная совместимость, потому что старые ответчики DNS игнорируют в запросе любые RR неизвестного типа OPT, а новые ответчики DNS никогда не включают OPT в ответ, если он не был указан в запросе. Наличие OPT в запросе означает, что новый запросчик знает, что делать с OPT в ответе.

Псевдозапись OPT предоставляет место для 16 флагов и расширяет пространство для кода ответа. Общий размер Пакет UDP и номер версии (в настоящее время 0) содержатся в записи OPT. Поле данных переменной длины позволяет регистрировать дополнительную информацию в будущих версиях протокола. Исходный протокол DNS предусматривал два типа меток, которые определяются первыми двумя битами в пакетах DNS (RFC 1035 ): 00 (стандартная этикетка) и 11 (сжатая этикетка). EDNS представляет этикетку типа 01 как расширенная этикетка. Младшие 6 бит первого байта могут использоваться для определения до 63 новых расширенных меток.

Пример

Пример псевдозаписи OPT, отображаемой Поиск информации о домене (копать) служебный инструмент:

;; ОПТ-ПСЕВДОЗРЕНИЕ :; EDNS: версия: 0, флаги: делать; UDP: 4096

Результат «EDNS: version: 0» указывает на полное соответствие EDNS0.[4] Результат «flags: do» указывает, что установлен «DNSSEC OK».[5]

Приложения

EDNS необходим для реализации расширений безопасности DNS (DNSSEC ).[6] EDNS также используется для отправки общей информации от преобразователей на серверы имен о географическом местоположении клиентов в виде Подсеть клиента EDNS (ECS) вариант.[7]

Есть предложения по использованию EDNS, чтобы установить, сколько заполнения должно быть вокруг сообщения DNS.[8] и для указания, как долго TCP-соединение должно оставаться активным.[9]

вопросы

На практике могут возникнуть трудности при использовании брандмауэров с обходом EDNS, поскольку некоторые брандмауэры предполагают максимальную длину сообщения DNS в 512 байт и блокируют более длинные пакеты DNS.

Внедрение EDNS сделало Атака с усилением DNS возможно, тип отраженная атака отказа в обслуживании, поскольку EDNS обеспечивает получение очень больших пакетов ответа по сравнению с относительно небольшими пакетами запроса.

Рабочая группа IETF DNS Extensions (dnsext) завершила работу над усовершенствованием EDNS0, которое было опубликовано как RFC 6891.

Рекомендации

  1. ^ RFC  2671, Механизмы расширения для DNS (EDNS0), П. Викси, Интернет-сообщество (август 1999 г.)
  2. ^ RFC  6891, Механизмы расширения для DNS (EDNS (0)), Дж. Дамас, М. Графф, П. Викси (апрель 2013 г.)
  3. ^ RFC 1035, Доменные имена - реализация и спецификация, П. Мокапетрис (ноябрь 1987 г.)
  4. ^ Сетевая рабочая группа IETF, август 1999 г., RFC 2671: Механизмы расширения для DNS (EDNS0), стр. 3, Полное соответствие этой спецификации обозначается версией «0».
  5. ^ Сетевая рабочая группа IETF, декабрь 2001 г., RFC 3225: Указывая на поддержку DNSSEC резолвером, стр. 3. Механизм, выбранный для явного уведомления о способности клиента принимать (если не понимает) записей безопасности DNSSEC, использует старший бит поля Z в заголовке EDNS0 OPT в запрос. Этот бит называется битом «DNSSEC OK» (DO).
  6. ^ RFC 4035, Модификации протокола для расширений безопасности DNS, Р. Арендс, Telematica Instituut, 2005. Раздел 4.1 Поддержка EDNS
  7. ^ Контавалли, Карло. «RFC 7871: подсеть клиента в запросах DNS». tools.ietf.org. Получено 2018-02-02.
  8. ^ Майрхофер, Александр. «RFC 7830: параметр заполнения EDNS (0)». tools.ietf.org. Получено 2018-02-02.
  9. ^ Воутерс, Пол. «RFC 7828: опция edns-tcp-keepalive EDNS0». tools.ietf.org. Получено 2018-02-02.

Смотрите также