Инженерам по телематике и инфраструктурным сервисам, а так-же их боссам посвящается.
Выполнение перечисленных правил может помочь вам минимизировать жалобы ваших пользователей на DNS:
- Никогда не используйте межсетевые экраны с контролем состояния сессий на DNS серверах. Iptables и пр. сетевые экраны существенным образом уменьшают производительность нагруженных DNS серверов. Если по организационным причинам необходимо проводить фильтрацию трафика — то лучше это делать на обычных не statefull межсетевых экранах на сетевом оборудовании. Например с помощью обычных ACL на аппаратных маршрутизаторах Cisco, начиная с 7600 (6500) серии, построенных на ASIC и FPGA.
- Размер кеша должен быть меньше или равен 512Мб. БОльшие значения не приводят к хоть сколько либо значимому увеличению эффективности кеширования, но увеличивают требования к пропускной способности оперативной памяти и эффективности кешей центрального процессора. При использовании кеша размером 512Мб желательно иметь общий объем оперативной памяти не менее 2048Мб.
- Средняя нагрузка на центральный процессор DNS сервера не должна превышать 30%. Выполнение этого правила позволит легче пережить DDOS и вирусные атаки.
- Всегда используйте настройки, ограничивающие доступ к кеширующим DNS серверам только для своих клиентов. Не стоит позволять их использовать всем пользователям Интернет. Это может привести к использованию ваших DNS серверов для DNS Amplification Attacks, к неконтролируемой нагрузке и увеличивает шансы злоумышленников отравить ваш кеш.
- Всегда разделяйте авторитативные и кеширующие DNS сервера. Это справедливо для организаций любых размеров.
- DNS сервера желательно эксплуатировать на выделенном для них оборудовании. Для кеширующих DNS серверов самым важным параметром является мощность центрального процессора. Для авторитативных DNS серверов несколько важнее пропускная способность оперативной памяти. При малых нагрузках на DNS сервера допускается их использование на системах виртуализации. При этом им обязательно необходимо гарантировать ресурсы по процессору, памяти и сети.
- Для DNS серверов лучше использовать процессоры максимальной частоты. Лучше один мощный двух-ядерный или четырех-ядерный процессор, чем два процессора меньшей частоты. Дело в том, что современное программное обеспечение плохо масштабируется на множество ядер-нитей процессоров. Более того лучше использовать «single-threaded» реализации (или сборки) программного обеспечения DNS.
- Используйте 64-битные операционные системы на современном оборудовании. Для новых систем следует использовать сервера, построенные x86-64. Системы построенные на SPARC процессорах значительно меньше подходят для задач DNS сервера.
- Для DNS серверов желательно использовать гигабитные сетевые интерфейсы, для того чтобы сеть не стала узким местом.
- При необходимости распределять нагрузку на несколько DNS серверов рекомендуется делать это через IP ANYCAST или с помощью баласировщиков нагрузки c выключением состояния сессий.
- Используйте проверенные решения. Тестируйте новые версии перед использованием их в продуктивной среде. Старайтесь делать одно изменение за раз, не больше. Например обновляя версию ПО, обновите ее сначала только на одном из серверов.
- Не увлекайтесь слишком тюнингом сетевого стэка операционной системы. Как правило все современные UNIX и UNIX-like системы имеют оптимальные настройки. Если появились какие то проблемы эксплуатации, то надо провести как можно более глубокую диагностику, перед тем как кошмарить операционную систему громадными буферами и пр.
- До начала использования DNSSEC необходимо тщательно протестировать как и ПО, так и нагрузку на оборудование. Дополнительно к этому стоит внимательно отнестись к процедурам, связанным с DNSEC, так как любая ошибка может быть незаметной и в то же время носить фатальный характер, когда DNSSEC кеширующие DNS сервера будут отвергать записи с ваших зон как неправильно подписанные.
- Не ленитесь настроить мониторинг ваших DNS серверов. Это позволить избежать проблем до того как их заметят пользователи. Ведь проблемы DNS воспринимаются пользователями как проблемы сети. Им неважно что у вас супер-современная скоростная низколатентная сеть, защищенная от сбоев, если у них медленно открыватся страничка в Интернет из за плохо работающего DNS сервера.
- Сохраняйте общий дизайн вашего DNS решения максимально простым. Это облегчит вам диагностику проблем.