The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Доступен robdns, сверхпроизводительный DNS-сервер"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Доступен robdns, сверхпроизводительный DNS-сервер"  +/
Сообщение от opennews (??) on 02-Янв-15, 23:59 
В рамках проекта robdns (https://github.com/robertdavidgraham/robdns) предпринята попытка создания авторитетного (authoritative) DNS-сервера, обеспечивающего максимально возможную производительность и должный уровень безопасности.  Основное назначение robdns - работа в роли slave-сервера, берущего на себя основную нагрузку по обработку запросов к определённой DNS-зоне в ситуации аномально большого наводнения трафиком, например, вследствие проведения DDoS-атак на инфраструктуру DNS.

Архитектура (https://github.com/robertdavidgraham/robdns/blob/master/doc/...) robdns подразумевает возможность использования нескольких методов обработки сетевых соединений: помимо традиционного подключения к сетевому порту через систему сетевых сокетов, в robdns имеется возможность перехвата информации о запросах в трафике при помощи libpcap или захвата необработанных пакетов от сетевой карты через PF_RING (http://www.ntop.org/products/pf_ring/). Разбор пакетов в этих случаях осуществляется в обход штатного системного сетевого стека с привлечением встроенного в robdns минималистичного и очень быстрого TCP/IP-стека, работающего в пространстве пользователя. Данный стек позволяет добиться обработки миллионов DNS-запросов в секунду на каждом ядре CPU или около 10 млн на обычном сервере, что примерно в 100 раз быстрее, чем BIND.

В настоящее время проект находится на стадии рабочего прототипа, который может обрабатывать запросы на 53 сетевом порту, но пока не поддерживает некоторые расширенные возможности, такие как динамическое обновление DNS-зоны. Формат (https://github.com/robertdavidgraham/robdns/blob/master/exam...) обрабатываемой 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.

URL: https://github.com/robertdavidgraham/robdns
Новость: https://www.opennet.ru/opennews/art.shtml?num=41386

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Доступен robdns, сверхпроизводительный DNS-сервер"  +2 +/
Сообщение от Аноним (??) on 02-Янв-15, 23:59 
Интересно насколько стабильна их реализация tcp-ip стека
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Доступен robdns, сверхпроизводительный DNS-сервер"  +1 +/
Сообщение от izyk email(ok) on 03-Янв-15, 00:38 
Since we don’t have the operating system network stack, we must implement our own. This is drastically simplified, since we want not to support most of the features of a stack. For example, we don’t support IP fragmentation of any kind. We just drop any incoming fragmented packets, and refuse to generate fragmented packets. For the most part, all we do is a quick parse of the Ethernet, IP, and UDP headers. We must implement some slight additional functionality, like responding to ARP packets, but this is minimal. In the future I’ll be adding TCP, and that’ll get a bit interesting, but the current version doesn’t have it.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Доступен robdns, сверхпроизводительный DNS-сервер"  +4 +/
Сообщение от YetAnotherOnanym (ok) on 03-Янв-15, 00:43 
А если этот минималистичный и очень быстрый TCP/IP-стек встроить в web-сервер H2O - он же тогда вощще скорость света обгонит!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Доступен robdns, сверхпроизводительный DNS-сервер"  +7 +/
Сообщение от Аноним (??) on 03-Янв-15, 04:08 
А если это потом еще в ядро встроить, чтобы контексты не переключать...

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

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

8. "Доступен robdns, сверхпроизводительный DNS-сервер"  +/
Сообщение от Аноним (??) on 03-Янв-15, 10:04 
fpga нонче легко перепрограммируется и может содержать полноценный процессор и вообще грузится с рядом стоящей флэшки. вы случайно с asic не спутали ?
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

20. "Доступен robdns, сверхпроизводительный DNS-сервер"  +1 +/
Сообщение от Аноним (??) on 04-Янв-15, 03:46 
> fpga нонче легко перепрограммируется

Легко - по сравнению с чем? Если сравнивать какое-нибудь редактирование конфига httpd с перепахиванием логики в FPGA и переделкой тотально кастомного протокольного стека, который вы видите впервые в жизни - большой вопрос что там у нас "легко". Хотя если сравнивать с набиванием программы тумблерами на шине - ну да, полная халява, разумеется.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

6. "Доступен robdns, сверхпроизводительный DNS-сервер"  –3 +/
Сообщение от Аноним (??) on 03-Янв-15, 08:07 
да поглотит их [s]systemd[/s] тьма одного за другим
=D
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

17. "Доступен robdns, сверхпроизводительный DNS-сервер"  +/
Сообщение от Crazy Alex (ok) on 03-Янв-15, 19:10 
Лучше не надо. А то эта тьма такая - позовёшь - может и прийти. А нам потом отмахивайся.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

14. "Доступен robdns, сверхпроизводительный DNS-сервер"  +/
Сообщение от imprtat (ok) on 03-Янв-15, 15:09 
Даже больше, он обгонит скорость скорости света!
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

19. "Доступен robdns, сверхпроизводительный DNS-сервер"  +/
Сообщение от Легион on 04-Янв-15, 03:03 
Очевидно, что, в отличии от протокола DNS, HTTP пользуется всем богатством возможностей TCP/IP со всем вытекающим их этого оверхэдом. Т.е. встроенный вами стек будет либо ограниченным, либо не минималистичным.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Доступен robdns, сверхпроизводительный DNS-сервер"  –1 +/
Сообщение от _KUL (ok) on 03-Янв-15, 06:52 
Скоро в элитосетевухах будет встроенный днс сервер на уровне чипа?! :)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Доступен robdns, сверхпроизводительный DNS-сервер"  +/
Сообщение от Аноним (??) on 03-Янв-15, 09:41 
ты почти изобрёл спектрумовские сетевухи
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

9. "Доступен robdns, сверхпроизводительный DNS-сервер"  +/
Сообщение от Аноним (??) on 03-Янв-15, 10:05 
> Скоро в элитосетевухах будет встроенный днс сервер на уровне чипа?! :)

при наличии udp/tcp offload и RDMA - это не сложно.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

10. "Доступен robdns, сверхпроизводительный DNS-сервер"  –1 +/
Сообщение от Нанобот (ok) on 03-Янв-15, 10:12 
>примерно в 100 раз быстрее, чем BIND.

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Доступен robdns, сверхпроизводительный DNS-сервер"  +14 +/
Сообщение от cmp (??) on 03-Янв-15, 10:31 
Это получается нормальному стеку отрезали руку и пришили молоток, гвозди он забивает шустрее, но на скрипке играть уже не сможет
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Доступен robdns, сверхпроизводительный DNS-сервер"  +2 +/
Сообщение от count0krsk (ok) on 03-Янв-15, 11:13 
Браво! You make my day ))
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

21. "Доступен robdns, сверхпроизводительный DNS-сервер"  +/
Сообщение от Аноним (??) on 04-Янв-15, 03:50 
> шустрее, но на скрипке играть уже не сможет

Да сможет, просто смычок вместо молотка пришивать будет долговато. Зато потом все будут завидовать.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

22. "Доступен robdns, сверхпроизводительный DNS-сервер"  +/
Сообщение от cmp (ok) on 04-Янв-15, 12:23 
Ну если уж развивать тему, то можно разработать универсальный разъем, куда буду вставляться в зависимости от условий эксплуатации, либо одно. либо другое, либо что-то еще, только "рука"  и так универсальный разъем, варьируя степень универсальности можно добится прироста эффективности, но разработка/обкатка/шлифовка потребует чертовски много времени и сил, а прирост эффективности будет лишь несколько процентов.

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

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

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

24. "Доступен robdns, сверхпроизводительный DNS-сервер"  +/
Сообщение от Ytch (ok) on 05-Янв-15, 04:14 
> Острие прогресса сейчас ENC28J60, микраха на которой можно построить сетевушку для андурины

А microchip известен подобными чипами. Они их делали как периферию для своих pic-контроллеров, в которых особо не "развернешься", поэтому кучу всяких протокольных вещей реализовывали аппаратно и в отдельных чипах. Выбирали какое-нибудь типовое подмножество стека протоколов и (без прентензии на выжимание максимальной производительности интерфейса) получали простое рабочее решение, которое с минимальным обвесом цеплялось к простым контроллерам и не парило мозги разработчика реализацией протоколов при отсутствии памяти/скорости.
С шинами в контроллерах обычно не густо, поэтому большинство вешаются на SPI/UART. Из того, что сам когда-то щупал - реализация IrDA на MCP215X (было весьма актуально лет надцать назад, а использование чипа позволяло легко прикрутить к любому контроллеру, имеющему UART, но не имеющему памяти))) и реализацию CAN на MCP25XX. Видел, что что-то у них есть, вроде, и по поводу USB, но не довелось.


Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

23. "Доступен robdns, сверхпроизводительный DNS-сервер"  +/
Сообщение от Ytch (ok) on 05-Янв-15, 03:57 
>> шустрее, но на скрипке играть уже не сможет
> Да сможет, просто смычок вместо молотка пришивать будет долговато.

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

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

18. "Доступен robdns, сверхпроизводительный DNS-сервер"  +1 +/
Сообщение от angra (ok) on 03-Янв-15, 23:30 
Bind как бы ни разу не чемпион, даже скорее известный тормоз. Пусть сравнят скорость с nsd или cdns.


Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

13. "Доступен robdns, сверхпроизводительный DNS-сервер"  –1 +/
Сообщение от count0krsk (ok) on 03-Янв-15, 11:15 
Windows наконец-то обзаведётся нормальным ДНС-сервером.
Правда ей это не поможет, ибо решето, и будет первым же эксплойтом вырублена нафиг, если не загнется от 10 млн запросов в секунду, в чем я сильно сомневаюсь ))
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Доступен robdns, сверхпроизводительный DNS-сервер"  +1 +/
Сообщение от Аноним (??) on 03-Янв-15, 15:33 
>Разбор пакетов в этих случаях осуществляется в обход штатного системного сетевого стека с привлечением встроенного в robdns минималистичного и очень быстрого TCP/IP-стека, работающего в пространстве пользователя. Данный стек позволяет добиться обработки миллионов DNS-запросов в секунду на каждом ядре CPU или около 10 млн на обычном сервере, что примерно в 100 раз быстрее, чем BIND.

Что-то это напоминает утверждение "Java может работать быстрее C++".

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Доступен robdns, сверхпроизводительный DNS-сервер"  –1 +/
Сообщение от Аноним (??) on 03-Янв-15, 15:47 
10кк pps, скажу тебе по секрету, не всякий сетевой драйвер в линуксовом ядре прожует. И не всякая сетевая карта.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

25. "Доступен robdns, сверхпроизводительный DNS-сервер"  +1 +/
Сообщение от Олег (??) on 05-Янв-15, 11:46 
Ещё чуть-чуть и изобретут plan9.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

26. "Доступен robdns, сверхпроизводительный DNS-сервер"  +1 +/
Сообщение от XoRe (ok) on 05-Янв-15, 21:03 
> Время загрузки зоны, занимающей 8 Гб и содержащей данные о 100 млн доменов, занимает примерно 30 секунд (для сравнения утилита "wc" потратит на обработку такого файла больше времени).

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "Доступен robdns, сверхпроизводительный DNS-сервер"  +/
Сообщение от xor (??) on 03-Апр-15, 12:44 
Если сделать read() из 4х потоков, то скорость вырастет.
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

28. "Доступен robdns, сверхпроизводительный DNS-сервер"  +/
Сообщение от karlen email on 28-Янв-16, 00:55 
http://livesurf.ru/promo/220529
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру