Компания Cloudflare,
В процессе проведения технических работ, желая снять часть трафика с одного из бэкбонов, инженеры удалили одну строку в блоке настроек, определяющем список принимаемых через бэкбон маршрутов, фильтруемых в соответствии с указанным списком префиксов. Правильным было бы деактивировать весь блок, но по ошибке была лишь удалена строка со списком префиксов.
{master}[edit]
atl01# show | compare
[edit policy-options policy-statement 6-BBONE-OUT term 6-SITE-LOCAL from]
! inactive: prefix-list 6-SITE-LOCAL { … }
Содержимое блока:
from {
prefix-list 6-SITE-LOCAL;
}
then {
local-preference 200;
community add SITE-LOCAL-ROUTE;
community add ATL01;
community add NORTH-AMERICA;
accept;
}
Из-за удаления привязки к списку префиксов оставшаяся часть блока стала распространяться на все префиксы и маршрутизатор стал рассылать все свои BGP-маршруты маршрутизаторам других бэкбонов. По стечению обстоятельств новые маршруты имели более высокий приоритет (local-preference 200) по сравнению с приоритетом (100), выставленным для других маршрутов автоматической системой оптимизации трафика. В итоге вместо удаления маршрутизации с бэкбона произошла утечка более приоритетных BGP-маршрутов, в результате которой трафик, адресованный другим бэкбонам, направился в Атланту, что привело к перегрузке маршрутизатора и коллапсу части сети.
Для того чтобы исключить возникновение подобных инцидентов в будущем в понедельник планируется внести несколько изменений в настройки бэкбонов Cloudflare. Для BGP-сеансов будет добавлено ограничение на максимальное число префиксов (maximum-prefix), которое будет блокировать проблемный бэкбон в случае направления через него слишком большого числа префиксов. Если бы данное ограничение было добавлено ранее, то рассматриваемая проблема привела бы к отключению бэкбона в Атланте, но не отразилась на работе всей сети, так как сеть Cloudflare рассчитана на возможность выхода из строя отдельных бэкбонов. Из уже принятых изменений отмечается пересмотр приоритетов (local-preference) для локальных маршрутов, который не позволит одному маршрутизатору влиять на трафик в других частях сети.
isi: opennet.ru