Удалённый узел K-root в Селектеле
Увеличение числа пользователей Интернета в развивающихся странах влечёт за собой необходимость развития соответствующей инфраструктуры, в том числе и DNS-серверов.
За последнее несколько лет география корневых серверов DNS была существенно расширена. Ещё совсем недавно рабочие узлы корневых серверов были в основном сконцентрированы в Европе и США, то сегодня они появляются в странах Азии, Африки, Южной Америки. В этом году один из узлов сервера K-Root был установлен даже в Иране, с которого до сих пор не сняты до конца западные санкции.
Вопрос расширения корневой системы DNS актуален и для России. Определённый вклад в его решение удалось внести и нам: в августе этого года у нас был размещён один из узлов корневого DNS-сервера K-Root. В этой статье мы расскажем о его архитектуре и об участии в конкурса на его размещение.
Корневые DNS-серверы: краткая справка
Как известно, система DNS используется в Интернете для обеспечения связи между доменными именами и IP-адресами. Высший уровень иерархии DNS занимают корневые серверы. Они содержат информацию обо всех доменах верхнего уровня (TLD). Эта информация указывает, на какие авторитетные NS-серверы нужно отправлять последующий запрос для рекурсивного разрешения доменного имени.
Система DNS была создана в 1980-х годах. С этого времени и вплоть до 2000-го года система корневых DNS-серверов состояла из первичного сервера (сначала он назывался ns.internic.net, но потом был переименован в a.root-servers.net) и его реплик, впоследствии получившим имена по буквам латинского алфавита: b.root-servers.net, c.root-servers.net и так далее — до m.root-servers.net. Каждый из тринадцати корневых серверов управляется отдельным оператором.
Начиная с начала 2000-х годов в системе корневых серверов используется технология Anycast. Это способствовало существенному расширению её географии и повышению уровня надёжности. Вокруг каждого корневого сервера выстроена система обслуживающих узлов, расположенных по всему миру.
Операторoм системы серверов K-root является некоммерческая организация RIPE NCC. Рассмотрим подробнее, как устроена система K-root с архитектурной точки зрения.
Архитектура системы K-root
Весной этого года система K-root перешла на новую, модернизированную архитектуру. Чтобы лучше понять суть всех последних изменений, рассмотрим вкратце, как всё было устроено раньше.
В старой архитектуре все узлы системы K-root подразделялись на два типа: основные (core nodes) — мощные DNS-серверы с отдельной системой маршрутизаторов и коммутаторов и локальные (local nodes). В состав каждого локального узла входили следующие элементы:
- роутер, который анонсировал сети k.root участникам точки обмена трафиком;
- два NS-сервера для обработки запросов;
- коммутатор.
Графически эту схему можно представить так:
В новой архитектуре понятие “локальный узел” отсутствует вообще. Вместо него используется понятие “удалённый узел” (hosted node).
Удалённые узлы организованы на базе серверов Dell. Никакого сетевого оборудования в составе удалённых узлов нет.
Серверы, на которых установлено специализированное ПО, сами устанавливают BGP-сессию с маршрутизаторами предоставляющего хостинг оператора и анонсируют префиксы K.Root от имени AS25152. Благодаря технологии Anycast различие между основным и удалёнными узлами, по сути, нивелируется.
Для управления конфигурациями используется Ansible (презентация инженера RIPE NCC), что позволяет ускорить и автоматизировать процессы развёртывания ПО. В качестве рабочего ПО используются BIND, NSD и Knot.
Узнать, какой именно сервер установлен на ближайшем к вам узле k.root, можно с помощью утилиты dig:
$ dig @k.root-servers.net version.bind chaos txt +short
"Knot DNS 1.6.4"
$ dig @k.root-servers.net version.bind chaos txt +short
"NSD 4.1.3"
Для анонсирования префиксов используется exabgp.
Технические требования к локальным узлам
К серверам, выступающим в качестве локальных узлов K-root, RIPE NCC предъявляет следующие требования:
- модель семейства Dell Power Edge 2xx (предпочтительнее — R320 или R420);
- минимум 16 ГБ оперативной памяти;
- многоядерный процессор;
- минимум 2 Ethernet-порта c суммарной пропускной способностью 2 ГБ/c;
- RAID-контоллер PERC H310
- два SATA-диска ёмкостью 500 ГБ каждый;
- наличие интегрированного контроллера удалённого доступа iDRAC 7 Enterprise;
- наличие у сервера двух блоков питания;
- выделение IP-адресов (как IPv4, так и IPv6).
Потенциальный хостер должен предоставить в распоряжение RIPE NCC сервер, обладающий описанными выше характеристиками. В нашем случае мы установили дополнительный блок питания для подключения сервера к разным вводам электропитания.
Хостинг К-root: как это получилось у нас
Система корневых серверов DNS постоянно расширяется. Организации, контролирующие корневые серверы, периодически объявляют конкурс на размещение новых обслуживающих узлов. Принять участие может любой оператор связи, техническая инфраструктура которого соответствует предъявляемым оператором требованиям.
О планах по расширению системы K-root мы узнали в апреле 2015 года. Среди кандидатов на расположение новых узлов системы K-root проводился конкурс, в ходе которого оценивались технические и организационные возможности потенциальных хостеров. Немаловажным критерием отбора на этом конкурсе является наличие хорошей связности. Только хорошая связность может быть гарантией того, что новый сервер сможет обслуживать большое количество клиентов.
Мы оформили все необходимые документы, и вскоре наша кандидатура была одобрена.
После этого мы заказали сервер, соответствующий предъявляемым RIPE NCC требованиям, и к августу ону же был установлен в одном из наших дата-центров.
Размещение узла K-root — проект абсолютно некоммерческий. Перед установкой сервера мы подписали с RIPE NCC протокол о взаимопонимании (образец на английском языке можно посмотреть здесь), в котором прямо указывается, что обе стороны выражают заинтересованность в улучшении связности системы DNS — и при этом ни слова о денежно-коммерческой составляющей.
Договор о хостинге узла K-root имеет бессрочный характер. И мы, и RIPE NCC заинтересованы в развитии партнёрских отношений.
Что это нам даёт
Какие преимущества даёт участие в этом некоммерческом проекте нам?
Единственным очевидным преимуществом явлется пресловутый плюс в карму: мы внесли пусть небольшой, но всё-таки вклад в развитие системы DNS и в повышение уровня её отказоустойчивости.
Надеемся, что в будущем нам удастся принять участие и в других масштабных проектах по развитию Интернета.