Pull to refresh

Comments 13

ну вообще-то там система и так распределенная. К тому же советую почитать как работает сама система DNS.
Значит ли Ваше замечание, что "...всего лишь 13 корневых серверов..." - это неверная формулировка автора статьи или же проблему "выбивания" корневых DNS можно обойти "уровнем ниже", например?
К примеру то что каждый из 13 серверов проедставляет собой распределенную систему, а никак не одну машину. К тому же есть куча зеркал этих серверов. И к тому же обращения идут рекурсивно. Т.е. к у кореневых серверов начанают спрашивать к примеру зону .ru затем у серверов зоны .ru спрашивать где сервер habrahabr.ru а затем только у самого сервера спрашивают адрес habrahabr.ru. Мысль понятна? Плюс кеширование.
Да, вполне доступно.

Соответственно, если некто возжелает "выбить" зону .ru, то ему придется как минимум блокировать работу зеркал.

А "каждый из 13 серверов представляет распределенную систему" - значит ли это, что физически это несколько (десятков?) больших ЭВМ, объединенных системой load-sharing и задублированных?
DNS система не распределённая, а иерархическая. Распределённость ресурсов конкретно взятого сервера не имеет отношения к протоколу DNS и логике взаимодействия серверов между собой и резолвером. Что такое "зеркала", не совсем ясно (stealth secondaries?), но ясно то, что обращения идут только к этим 13.

Распределённость начинается там, где кончается централизованный контроль.

В пиринговой сети я могу выложить файл с названием hotsex.mpeg, а внутри будет речь Шмидта, и никто ничего с этим не сможет поделать. Точно так же, если я буду членом гипотетической распределённой сети ДНС, я смогу изменять чужие зоны, и без управления этим из одного источника авторитативных изменений ничего поделать будет нельзя.

Атака на рут-сервера не так страшна, как потенциальный тейковер рут-сервера. Представьте, что кто-то, получив контроль над рут-сервером, поменял NS записи для той же самой зоны ".ru". Даже думать не хочется о последствиях. При этом шансы этого тем выше, чем больше будет рут-серверов.

При всех атаках и опасениях по поводу DNS, нельзя не отметить, что это одна из наиболее эффективно и безошибочно работающих подсистем в интернете. За 20 лет она почти не претерпела никаких изменений, RFC носили характер необязательных дополнений — редкий пример того, как можно делать правильно с самого начала. Слава Мокапетрису и Викси.
Однако же масштаб угрозы, со слов Шмидта, впечатляет - четверть всех машин могут потенциально влужить орудием атаки на руты. Увеличение числа рутов ведет к росту вероятности того же тейковера. Отсюда вывод - информация о, например, NS, должна храниться а) в грид-сети б) быть распределенной таким образом, чтобы при любом изменении ее можон было восстанавливать с других точек в первозданном виде. Тогда тот, кто попытается переписать информацию, осуществив тейковер над конкретной точкой, столкнется с противодействием всех элементов грид-сети. А тут ботнет уже вряд ли справится - это только другой грид сможет.

Возможно, я несколько путано излагаю - не судите строго.
Информация о рут-серверах и так хранится в грид-сети, а именно, на любом DNS-сервере в интернете, в так называемом кэш-файле, который поставляется с дистрибутивом. Важное преимущество такой сети в том, что её узлы не общаются друг с другом, и вообще ни с кем, в смысле передачи этой информации, что очень сильно повышает её защищённость от распределённых атак :)
" любом DNS-сервере в интернете, в так называемом кэш-файле, который поставляется с дистрибутивом"
Позвольте, но это не грид! В гриде дистрибутив будет "размазан" по сотне или сотне тысяч (в зависимости от мощности грид-сети) машин, и никакая произвольно взята из них не будет иметь полного файла, только часть. При запросе файл "собирается" из этих кусочков и выдается запросившему.

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

В этом случае никакая атака не свалит DNS-структуру, и чем больше машин будут поддерживать это "течение файла" - тем более защищенной будет сеть.

И еще. При определенных алгоритмах DNS как таковая вообще перестанет быть нужна. Над проблемами адресации в подобной сети (лишенной иерархии) я и раздумываю сейчас более всего.

Позвольте, но это не грид! В гриде дистрибутив будет "размазан" по сотне или сотне тысяч (в зависимости от мощности грид-сети) машин, и никакая произвольно взята из них не будет иметь полного файла, только часть. При запросе файл "собирается" из этих кусочков и выдается запросившему.

Если представить все DNS записи в виде одного файла как раз получится почти то о чем в говорите. Реализация конечно немного другая, так как есть primary DNS сервера которые держат определенную зону. Но остальные при запросах кешируют записи на время указанное в файле зоны и обновление поисходит только по истечению определенного времени. Именно по этому миграция домена на новые адреса может занимать один-два дня а расползание нового домена может происходить за время от часа до дня.


И еще. При определенных алгоритмах DNS как таковая вообще перестанет быть нужна. Над проблемами адресации в подобной сети (лишенной иерархии) я и раздумываю сейчас более всего.

Читайте спецификацию IPv6
Если представить все DNS записи в виде одного файла как раз получится почти то о чем в говорите. Реализация конечно немного другая, так как есть primary DNS сервера которые держат определенную зону.

Похоже.


Читайте спецификацию IPv6
Я не настолько копенгаген, чтобы переваривать подобные документы, но буду благодарен либо за линк на русскоязычную спецификацию, либо за краткое изложение основных элементов данного протокола.
Sign up to leave a comment.

Articles