Многие из вас заметили, что с интернетом в последнее время довольно регулярно случается что-то нехорошее и неприятное - то уютный бложек не открывается, то ICQ не коннектится, то картинки не открываются.
По поводу недавних проблем в Сети уже расползлась масса слухов. Там и Большой Китайский Файрволл от Белтелеком, и пьяные экскаваторщики. Однако, придется несколько расcтроить тех, кто точит зуб на нашего монополиста. Он совершенно не виноват, а точнее далеко не всегда виноват. Например, проблемы с доступом к многим сетям провайдеров, а значит и к множеству сайтов, произошедшие 16-го февраля, возникли по куда более занятной и глобальной причине нежели какие-то неполадки у Белтелекома. Подробно обо всё в этом написано длинным и полуадминским английским языком здесь: http://www.renesys.com/blog/2009/02/the-flap-heard-around-the-worl.shtml
Для тех же, кто не очень любит читать на неродных языках и изначально не сильно интересуется от всеми этими сисадминскими бреднями о маршрутизаторах, IP-адресах и протоколах, попробую кратко пересказать.
Маршрутизация и автономные сети
Глобальная сеть состоит из сетей более мелких. Сети различных провайдеров связаны между собой, и чем больше у провайдера прямых линков с другими - тем он круче :) В этой ситуации понятно, что преодолеть расстояние из точки А в точку Б можно совершенно разными путями. Определить оптимальный путь является целью маршрутизации. Все интернет-роутеры обмениваются между собой информацией о том, какие маршруты доступны непосредственно им и таким образом эта информация распространяется глобально. Происходит это следующим образом. Каждую сеть в интернете идентифицирует уникальный номер AS (Autonomous System). Эти номера используются в протоколе маршрутизации BGP. При поиске маршрута составляется AS path, список автономных систем, через которые должен пройти пакет по пути из точки А в точку Б. Главным параметром при выборе маршрута является длина этого пути (количество AS в нем). В среднем, эта длина составляет 4 AS. Когда провайдер имеет несколько связей, но хочет использовать какую-то из них только как запасную, он может изменить AS path для этого линка, повторив последнее значение AS несколько раз и увеличив, таким образом длину пути, в результате чего автоматически для связи будет использоваться основной, более короткий линк.
Но что будет, если кто-то повторит это значение двадцать, тридцать, сто, тысячу раз?
Эта запись начнет распространятся по маршрутизаторам, которым придется обрабатывать эти данные. Более продвинутые и правильно сконфигурированные маршрутизаторы будут искать альтернативные маршруты и связь таким образом будет восстановлена. Те же маршрутизаторы, которые постарше и админы у которых не такие смышлёные, просто напросто поразрывают маршруты и дело с концом. А дальше разрыв связей вполне может стать лавинообразным и нарастать по мере распространения по сети.
Собственно, именно это и случилось 16 февраля.
Один маленький, но гордый чешский провайдер, до этого имеющий только один линк, раздобыв, наконец, второй начал радостно посылать анонсы о своем новом маршруте. Вот только чешские админы решили почему-то, что пока стоит связь осуществлять только по первому линку и поэтому просто добавили на второй немножко повторений для удлинения пути. В результате этого немножко, AS path для этого линка состоял из более чем 255 ASN, что привело к тому, что часть маршрутизаторов начала разрывать связь со всеми сетями из которых был получен этот путь. Благодаря этому, уровень анонсов о обновленных маршрутах в десятки раз привысил норамльный уровень и достиг 107 780 обновлений в секунду, а вся эта радость пошла гулять по сети, шокируя и вешая многие маршрутизаторы. В итоге общее количество недоступных по каким-то причинам сетей в мире достигло 12,920, что составляет 4.8% всех выделенных AS – то есть почти пять процентов сетей провайдеров. Как вы поняли, именно это и привело к тому, что многие из вас не могли попасть на любимый сайт.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.