Як cломать весь інтернет
Багато з вас помітили, що з інтернетом останнім часом досить регулярно трапляється щось погане і неприємне - то затишний бложек не відкривається, то ICQ не коннектітся, то картинки не відкриваються.
Маршрутизація і автономні мережі
Глобальна мережа складається з мереж дрібніших. Мережі різних провайдерів пов'язані між собою, і чим більше у провайдера прямих лінків з іншими - тим він крутіше :) У цій ситуації зрозуміло, що подолати відстань з точки А в точку Б можна абсолютно різними шляхами. Визначити оптимальний шлях є метою маршрутизації. Всі інтернет-роутери обмінюються між собою інформацією про те, які маршрути доступні безпосередньо їм і таким чином ця інформація поширюється глобально.
Відбувається це в такий спосіб. Кожну мережу в інтернеті ідентифікує унікальний номер AS (Autonomous System). Ці номери використовуються в протоколі маршрутизації BGP.
При пошуку маршруту складається AS path, список автономних систем, через які повинен пройти пакет по шляху з точки А в точку Б. Головним параметром при виборі маршруту є довжина цього шляху (кількість AS в ньому). В середньому, ця довжина становить 4 AS.
Коли провайдер має кілька зв'язків, але хоче використовувати якусь із них тільки як запасну, він може змінити AS path для цього лінка, повторивши останнє значення AS кілька разів і збільшивши, таким чином довжину шляху, в результаті чого автоматично для зв'язку буде використовуватися основний , більш короткий лінк.
Але що буде, якщо хтось повторить це значення двадцять, тридцять, сто, тисячу разів?
Ця запис почне поширюватися по маршрутизаторів, яким доведеться обробляти ці дані. Більш просунуті і правильно сконфігуровані маршрутизатори будуть шукати альтернативні маршрути і зв'язок таким чином буде відновлено. Ті ж маршрутизатори, які постарше і адміни у яких не такі тямущі, просто напросто повириваєте маршрути і справа з кінцем. А далі розрив зв'язків цілком може стати лавиноподібним і наростати в міру поширення по мережі.
Один маленький, але гордий чеський провайдер, до цього має тільки один лінк, роздобувши, нарешті, другий почав радісно посилати анонси про свій новий маршрут. Ось тільки чеські адміни вирішили чомусь, що поки варто зв'язок здійснювати тільки за першим лінку і тому просто додали на другий трошки повторень для подовження шляху. В результаті цього трошки, AS path для цього лінка складався з більш ніж 255 ASN, що призвело до того, що частина маршрутизаторів початку розривати зв'язок з усіма мережами з яких було отримано цей шлях. Завдяки цьому, рівень анонсів про оновлених маршрутах в десятки разів перевищити норамльному рівень і досяг 107 780 оновлень в секунду, а вся ця радість пішла гуляти по мережі, шокуючи і вішаючи багато маршрутизаторів.
У підсумку загальна кількість недоступних з якихось причин мереж в світі досягло 12,920, що становить 4.8% всіх виділених AS - тобто майже п'ять відсотків мереж провайдерів. Як ви зрозуміли, саме це і призвело до того, що багато хто з вас не могли потрапити на улюблений сайт.

Які ж висновки можна зробити з того, що сталося? Незважаючи на те, що маршрутизатори основних провайдерів спокійно перенесли те, що трапилося, в мережі залишається безліч застарілого і неправильно сконфигурированного обладнання. Також виникає питання, як буде далі закінчиться справа з надійністю Інтернету, якщо помилка в одному слабкому ланці призводить до краху всієї великого ланцюга.
Деякі, до речі, пам'ятають гучну вразливість в DNS. Це ще один дзвіночок до того, що, можливо, варто почати переглядати архітектуру інтернет з позицій безпеки і стійкості до подібних потрясінь.
P.S. Або може просто ввести ліцензування мережевих адміністраторів з регулярними атестаціями і медоглядами, на відповідність коефіцієнта кривизни рук встановленого нормативу. )