РИТ++ 2017, Root Conf
Зал Пекин + Шанхай, 5 июня, 15:00
Тезисы:
http://rootconf.ru/2017/abstracts/2569.html
Большинство администраторов, когда становятся уже слишком серьезными, чтобы просто так использовать DNS-сервера провайдера, часто выбирают bind в качестве DNS-сервера. Дальше bind подталкивает их к использованию не самых хороших практик, например, совмещению ролей резольвера и авторитетного DNS.
Несмотря на все свои крутые преимущества, вроде split horizon, bind, к сожалению, далек по своей производительности от оптимального выбора.
...
4. Кому нужен свой резольвер?
• Организации
• Если резольвер провайдера отсутствует или жмет спереди
• ЦОД или провайдер
• От Вас просто будут ждать его наличия
• Почему резольвера нет из коробки в ОС? (Кроме FreeBSD ;)
• Вопрос к размышлению
9. SO_REUSEPORT ускоряэ
• Ядро >= 3.9
• Да, забудьте о всяких там адских ядрах версии 2.6.моябабушкаизRedHat
• Несколько процессов или потоков могут биндить один порт
• У них должен быть одинаковый UID, чтобы порт не «угнать»
• Нагрузка распределяется равномерно
• SO_REUSEADDR так не делало
12. DNSSEC защищаэ
• Валидировать нужно!
• Современные TTL стремятся к нулю
• Шанс отравления есть
• Мало кто даже из крупных провайдеров это делает
• Ростелеком, например, не
13. Мелочи жизни
• Никакого ANY
iptables -A INPUT -p udp --dport 53 -m string --hex-string "|0000ff0001|" --algo bm -j DROP
• Rate-limit, если Вы не закрыты извне
[здесь -j ACCEPT для всех тех, от кого закрываться не надо]
iptables -A INPUT -p udp --dport 53 -m state --state NEW -m recent …
--set --name DNSQF --rsource
--update --seconds 1 --hitcount 70 --name DNSQF --rsource -j DROP
• Для unbound хорошо interface-automatic: yes
• Тогда может отвечать с любого адаптера
21. Не надо совмещать
• Совмещать на одной машине резольвер и зоны – плохо!
• Однако будет много искушений так поступить
• Ubuntu Server Guide – одно из них
• Если клиент «увел» домен от Вас, то клиенты об этом не узнают
• У клиентов Вашего резольвера он будет старый
• А у всего остального мира – новый
24. Вдумчивая архитектура
• Удобный редактор базы данных – PowerAdmin
• Web-приложение на PHP
• Сразу понятно, что его нельзя держать на реальном ns
• А кроме того, ns обычно несколько
• *XFR зон далеко не самый хороший механизм
• В нашем случае он не позволит уйти от понятия master/slave
32. Есть два стула варианта
• Клиент хочет, чтобы мы держали у себя slave
• А он будет master, т.е. мы должны забирать у него данные
• Этот вариант потребует телодвижений
• Клиент хочет, чтобы мы держали у себя master
• А он будет slave, т.е. будет забирать у нас копию
• Это крайне простой вариант, от нас не нужно ничего
• Любой из наших серверов готов отдать актуальную копию данных
42. Архитектура
• Запрос принимает PowerDNS и смотрит в базу
• Если там есть запрашиваемое, то отдает
• Если нет, то передает unbound на этой же машине для резолва