Защита корневых DNS-серверов - DNS Root сервера и anycast
ОГЛАВЛЕНИЕ
DNS Root сервера и anycast
Принцип работы с anycast в глобальном масштабе такой же, как и в локальных сетях. В глобальной сети Интернет в качестве протокола динамической маршрутизации используется протокол BGP.
В целом описывать, как все устроено, и какие проблемы могут возникнуть при включении anycast-а очень сложно. Сам по себе протокол BGP не прост, а при включении anycast возникают дополнительные не совсем приятные моменты. Существует RFC http://tools.ietf.org/html/rfc4786, которые описывают лучшие практики при организации anycast в глобальных масштабах.
Чтобы определить к какому из корневых anycast серверов идут запросы, адресованные на тот либо иной anycast адрес корневого DNS сервера, можно использовать команду.
dig +norec @X.ROOT-SERVERS.NET HOSTNAME.BIND CHAOS TXT
Где X – буква от A до M для каждого из 13-ти anycast IP адресов серверов.
Если у вас есть возможность давать такие команды с различных географически удаленных серверов в сети, то, можно легко убедиться, что на запросы из различных автономных систем приходят ответы с физически разных серверов.
Хотелось бы осветить различные топологии, используемые различными организациями, ответственными за корневые сервера. Прежде, чем описывать какие топологии используется необходимо ввести 2 понятия anycast DNS серверов. Существуют, так называемые, локальные root anycast сервера и глобальные root anycast сервера. Глобальные сервера – это сервера которые доступны в глобальных пределах, то есть теоретически всем в Интернет, хотя, благодаря регуляциям метриками BGP каждый из них доступен только из определенных мест. Локальные сервера доступны только клиентам нескольких ближайших к ним провайдеров. Регулированием того, какой это сервер глобальный или локальный занимается протокол BGP. Согласно тому, какие сервера (локальные или глобальные) и в какой пропорции используются при организации anycast, различают 3 схемы.
Единообразная (flat) – состоит только из глобальных серверов, используется для J-root серверов.
Иерархическая (hierarchical) состоит из нескольких географически близко расположенных глобальных серверов и множества локальных серверов используется для F-root серверов.
Гибридная (hybrid) состоит из географически распределенных глобальных серверов и также распределенных локальных серверов используется для K-root серверов.
Вот, например, как выглядит картина глобального местоположение для k-root серверов c IP адресом 193.0.14.129, которую администрирует RIPE www.ripe.net (гибридная схема).
И для f-root с IP адресом 192.5.5.241, которую администрирует Internet Systems Consortium, Inc. www.isc.org (иерархическая схема).
Как видите, среди различных организаций ответственных за корневые сервера различные подходы. Каждая из схем эффективна, какая из них более эффективна вопрос до конца не определенный.
Согласно всем отчетам, результаты тестирования подтверждают эффективность работы anycast для root DNS серверов в глобальном режиме, проблемы при работе DNS с использованием tcp не существенны.
Согласно исследованиям, проводимым с целью выявления эффективности распределения трафика корневых серверов в глобальных пределах, выяснено следующее: нагрузка на сервера распределяется эффективно, с точки зрения географического положения пользователей (а значит с точки зрения временных задержек ответов от серверов).
На текущий момент всего в мире 150 root DNS серверов, что более чем на порядок больше, чем первоначальное число - 13. Более подробную информацию о текущем состоянии дел по корневым серверам можно узнать тут http://www.root-servers.org/
Тот факт, что сервера географически распределены, делает DoS атаку на них более сложной. Бот сеть, которая сможет вывести из строя все корневые сервера также должна быть глобально распределенной. Ведь, если допустим, хосты атакующей бот сети будут сконцентрированы в основном в Европе, жители Южной Америки даже не будут подозревать о том, что на корневые DNS проводится атака.
В Интернете можно найти большой объем информации о технологии anycast и в частности об использовании ее для DNS. Что касается рамок данной статьи то, на этом я ограничусь.
Заключение
Однозначно никто не может сказать, способна ли данная схема с существующим числом корневых DNS серверов противостоять распределенным DoS атакам в случае использования бот сетей с миллионами хостов. Ясно одно, схема хорошо масштабируемая, и даже если, не смотря ни на что, плохим парням удастся завалить глобальную систему DNS, то хорошие парни в ответ смогут ее многократно усилить. Похоже, хорошие парни побеждают.