Firma Cloudflare, sieć dostarczania treści dla 27 mln zasobów internetowych, obsługująca 13% z 1000 największych stron internetowych, szczegóły incydentu, w wyniku którego przez 27 minut zakłócona była praca wielu segmentów sieci Cloudflare, w tym tych, które odpowiadały za dostarczanie ruchu do Londynu, Chicago, Los Angeles, Waszyngtonu, Amsterdamu, Paryża, Moskwy i Petersburga. Problem został spowodowany błędną zmianą konfiguracji na routerze w Atlancie. W czasie incydentu, który miał miejsce 17 lipca między 21:12 a 21:39 (UTC), ogólny wolumen ruchu w sieci Cloudflare spadł o około 50%.
W trakcie prac technicznych, chcąc zredukować część ruchu z jednego z backbone'ów, inżynierowie usunęli jedną linię w bloku ustawień, definiującym listę akceptowanych przez backbone tras, filtrowanych zgodnie z podaną listą prefiksów. Poprawnym rozwiązaniem byłoby dezaktywowanie całego bloku, ale przez pomyłkę usunięto tylko linię z listą prefiksów.
{master}[edit]
atl01# show | compare
[edit policy-options policy-statement 6-BBONE-OUT term 6-SITE-LOCAL from]
! inactive: prefix-list 6-SITE-LOCAL { … }
Zawartość bloku:
from {
prefix-list 6-SITE-LOCAL;
}
then {
local-preference 200;
community add SITE-LOCAL-ROUTE;
community add ATL01;
community add NORTH-AMERICA;
accept;
}
Z powodu usunięcia powiązania z listą prefiksów pozostała część bloku zaczęła rozprzestrzeniać się na wszystkie prefiksy, a router zaczął wysyłać wszystkie swoje trasy BGP do routerów innych backbone'ów. Zbiegiem okoliczności nowe trasy miały wyższy priorytet (local-preference 200) w porównaniu do priorytetu (100) ustalonego dla innych tras przez automatyczny system optymalizacji ruchu. W rezultacie zamiast usunięcia routingu z backbone'u doszło do wycieku bardziej preferencyjnych tras BGP, w wyniku czego ruch skierowany do innych backbone'ów trafił do Atlancy, co doprowadziło do przeciążenia routera i załamania części sieci.
Aby zapobiec podobnym incydentom w przyszłości, w poniedziałek planowane są zmiany w ustawieniach backbone'ów Cloudflare. Do sesji BGP zostanie dodane ograniczenie maksymalnej liczby prefiksów (maximum-prefix), które zablokuje problematyczny backbone, w przypadku gdy przez niego będzie kierowane zbyt wiele prefiksów. Gdyby to ograniczenie zostało wprowadzone wcześniej, omawiany problem doprowadziłby do wyłączenia backbone'u w Atlancie, ale nie wpłynęłoby na działanie całej sieci, ponieważ sieć Cloudflare jest zaprojektowana tak, aby pojedyncze backbone'y mogły zawieść. W ramach już wprowadzonych zmian zauważono rewizję priorytetów (local-preference) dla lokalnych tras, co uniemożliwi jednemu routerowi wpływanie na ruch w innych częściach sieci.
Źródło: opennet.ru
