The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

02.01.2015 22:57  Доступен robdns, сверхпроизводительный DNS-сервер

В рамках проекта 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.

  1. Главная ссылка к новости (https://github.com/robertdavid...)
  2. OpenNews: Выпуск DNS-сервера BIND 10 1.2.0 ознаменовал передачу проекта сообществу
  3. OpenNews: Новый выпуск DNS-сервера Knot DNS 1.4.4
  4. OpenNews: Релиз DNS-сервера NSD 4.0
  5. OpenNews: Открыт код DNS-сервера YADIFA, используемого на первичных серверах доменной зоны EU
  6. OpenNews: Релиз DNS-сервера Unbound 1.4.17
Лицензия: CC-BY
Тип: Программы
Ключевые слова: dns
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 23:59, 02/01/2015 [ответить] [смотреть все]
  • +2 +/
    Интересно насколько стабильна их реализация tcp-ip стека
     
     
  • 2.2, izyk, 00:38, 03/01/2015 [^] [ответить] [смотреть все] [показать ветку]
  • +1 +/
    Since we don 8217 t have the operating system network stack, we must implement ... весь текст скрыт [показать] [показать ветку]
     
  • 1.3, YetAnotherOnanym, 00:43, 03/01/2015 [ответить] [смотреть все]  
  • +4 +/
    А если этот минималистичный и очень быстрый TCP/IP-стек встроить в web-сервер H2O - он же тогда вощще скорость света обгонит!
     
     
  • 2.4, Аноним, 04:08, 03/01/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +7 +/
    А если это потом еще в ядро встроить, чтобы контексты не переключать...

    Впрочем, видали и покруче: мелкий проц заряжает DMA транзакцию через fpga и та прямой наводкой долбит из памяти в 10Гбит интерфейс. Экономия на оверхеде адская. Но вот правда и гибкость на уровне чугунной гири.

     
     
  • 3.8, Аноним, 10:04, 03/01/2015 [^] [ответить] [смотреть все]  
  • +/
    fpga нонче легко перепрограммируется и может содержать полноценный процессор и в... весь текст скрыт [показать]
     
     
  • 4.20, Аноним, 03:46, 04/01/2015 [^] [ответить] [смотреть все]  
  • +1 +/
    Легко - по сравнению с чем Если сравнивать какое-нибудь редактирование конфига ... весь текст скрыт [показать]
     
  • 2.6, Аноним, 08:07, 03/01/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • –3 +/
    да поглотит их [s]systemd[/s] тьма одного за другим
    =D
     
     
  • 3.17, Crazy Alex, 19:10, 03/01/2015 [^] [ответить] [смотреть все]  
  • +/
    Лучше не надо А то эта тьма такая - позовёшь - может и прийти А нам потом отма... весь текст скрыт [показать]
     
  • 2.14, imprtat, 15:09, 03/01/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Даже больше, он обгонит скорость скорости света!
     
  • 2.19, Легион, 03:03, 04/01/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Очевидно, что, в отличии от протокола DNS, HTTP пользуется всем богатством возмо... весь текст скрыт [показать] [показать ветку]
     
  • 1.5, _KUL, 06:52, 03/01/2015 [ответить] [смотреть все]  
  • –1 +/
    Скоро в элитосетевухах будет встроенный днс сервер на уровне чипа?! :)
     
     
  • 2.7, Аноним, 09:41, 03/01/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    ты почти изобрёл спектрумовские сетевухи
     
  • 2.9, Аноним, 10:05, 03/01/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    при наличии udp tcp offload и RDMA - это не сложно ... весь текст скрыт [показать] [показать ветку]
     
  • 1.10, Нанобот, 10:12, 03/01/2015 [ответить] [смотреть все]  
  • –1 +/
    >примерно в 100 раз быстрее, чем BIND.

    эт чё, получается, что оригинальный сетевой стек тормозит систему в сто раз???

     
     
  • 2.11, cmp, 10:31, 03/01/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +14 +/
    Это получается нормальному стеку отрезали руку и пришили молоток, гвозди он забивает шустрее, но на скрипке играть уже не сможет
     
     
  • 3.12, count0krsk, 11:13, 03/01/2015 [^] [ответить] [смотреть все]  
  • +2 +/
    Браво! You make my day ))
     
  • 3.21, Аноним, 03:50, 04/01/2015 [^] [ответить] [смотреть все]  
  • +/
    Да сможет, просто смычок вместо молотка пришивать будет долговато Зато потом вс... весь текст скрыт [показать]
     
     
  • 4.22, cmp, 12:23, 04/01/2015 [^] [ответить] [смотреть все]  
  • +/
    Ну если уж развивать тему, то можно разработать универсальный разъем, куда буду вставляться в зависимости от условий эксплуатации, либо одно. либо другое, либо что-то еще, только "рука"  и так универсальный разъем, варьируя степень универсальности можно добится прироста эффективности, но разработка/обкатка/шлифовка потребует чертовски много времени и сил, а прирост эффективности будет лишь несколько процентов.

    Проще сотворить некий сетевой сопроцессор с аппаратной реализацией фильтров libpcap, очень может быть что какая-нибудь циска это уже реализовала, даже скорее всего реализовала, только драйвера закрыты, а аппаратная часть лишь в составе какой-нить железяки с ценником с пятью нулями..

    Острие прогресса сейчас ENC28J60, микраха на которой можно построить сетевушку для андурины и прочих одноплатников, сильно не углублялся в тему, но весьма убогонький функционал, стоит копейки, но так и пользы почти нет, побаловаться не больше.

     
     
  • 5.24, Ytch, 04:14, 05/01/2015 [^] [ответить] [смотреть все]  
  • +/
    А microchip известен подобными чипами Они их делали как периферию для своих pic... весь текст скрыт [показать]
     
  • 4.23, Ytch, 03:57, 05/01/2015 [^] [ответить] [смотреть все]  
  • +/
    >> шустрее, но на скрипке играть уже не сможет
    > Да сможет, просто смычок вместо молотка пришивать будет долговато.

    Но на забивании гвоздей сразу станет проигрывать тем у кого таки молоток )

     
  • 2.18, angra, 23:30, 03/01/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Bind как бы ни разу не чемпион, даже скорее известный тормоз. Пусть сравнят скорость с nsd или cdns.


     
  • 1.13, count0krsk, 11:15, 03/01/2015 [ответить] [смотреть все]  
  • –1 +/
    Windows наконец-то обзаведётся нормальным ДНС-сервером.
    Правда ей это не поможет, ибо решето, и будет первым же эксплойтом вырублена нафиг, если не загнется от 10 млн запросов в секунду, в чем я сильно сомневаюсь ))
     
  • 1.15, Аноним, 15:33, 03/01/2015 [ответить] [смотреть все]  
  • +1 +/
    Что-то это напоминает утверждение Java может работать быстрее C ... весь текст скрыт [показать]
     
  • 1.16, Аноним, 15:47, 03/01/2015 [ответить] [смотреть все]  
  • –1 +/
    10кк pps, скажу тебе по секрету, не всякий сетевой драйвер в линуксовом ядре про... весь текст скрыт [показать]
     
  • 1.25, Олег, 11:46, 05/01/2015 [ответить] [смотреть все]  
  • +1 +/
    Ещё чуть-чуть и изобретут plan9.
     
  • 1.26, XoRe, 21:03, 05/01/2015 [ответить] [смотреть все]  
  • +1 +/
    > Время загрузки зоны, занимающей 8 Гб и содержащей данные о 100 млн доменов, занимает примерно 30 секунд (для сравнения утилита "wc" потратит на обработку такого файла больше времени).

    Интересно, как это.
    Одна программа делает read() быстрее, чем другая?

     
     
  • 2.27, xor, 12:44, 03/04/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Если сделать read() из 4х потоков, то скорость вырастет.
     
  • 1.28, karlen, 00:55, 28/01/2016 [ответить] [смотреть все]  
  • +/
    http://livesurf.ru/promo/220529
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor TopList