Доступен robdns, сверхпроизводительный DNS-сервер
2 января 2015 года
В рамках проекта robdns предпринята попытка создания авторитетного (authoritative) DNS-сервера, обеспечивающего максимально возможную производительность и должный уровень безопасности. Основное назначение robdns - работа в роли slave-сервера, берущего на себя основную нагрузку по обработке запросов к определённой DNS-зоне в ситуации аномально большого наводнения трафиком, например, вследствие проведения DDoS-атак на инфраструктуру DNS.
Архитектура robdns подразумевает возможность использования нескольких методов обработки сетевых соединений: помимо традиционного подключения к сетевому порту через систему сетевых сокетов, в robdns имеется возможность перехвата информации о запросах в трафике при помощи libpcap или захвата необработанных пакетов от сетевой карты через PF_RING. Разбор пакетов в этих случаях осуществляется в обход штатного системного сетевого стека с привлечением встроенного в robdns минималистичного и очень быстрого TCP/IP-стека, работающего в пространстве пользователя. Данный стек позволяет добиться обработки миллионов DNS-запросов в секунду на каждом ядре CPU или около 10 млн на обычном сервере, что примерно в 100 раз быстрее, чем BIND.
В настоящее время проект находится на стадии рабочего прототипа, который может обрабатывать запросы на 53 сетевом порту, но пока не поддерживает некоторые расширенные возможности, такие как динамическое обновление DNS-зоны. Формат обрабатываемой DNS-зоны совместим с DNS-сервером BIND9 и может включать в себя такие типы полей, как SOA, NS, A, AAAA, PTR, CNAME, SSHFP, LOC, TXT, SRV, SPF, HINFO, MX, DNSKEY, NSEC, NSEC3, NSEC3PARAM, RRSIG, DS, TLSA и EDNS0. Поддерживается работа с зонами очень большого размера, которые могут насчитывать сотни миллионов записей. Время загрузки зоны, занимающей 8 Гб и содержащей данные о 100 млн доменов, занимает примерно 30 секунд (для сравнения утилита "wc" потратит на обработку такого файла больше времени).
Имеются функции ограничения интенсивности запросов (rate-limit) для противодействия использованию DNS-сервера в роли усилителя трафика и ограничения интенсивности записи в логи для защиты от атак по наводнению логов. Формат логов максимально приближен к BIND 9. Поддерживается работа в Linux, FreeBSD и Windows.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.