Ошибка при настройке BGP привела к 27-минутному сбою в работе Cloudflare
18 июля 2020 года
Компания Cloudflare, предоставляющая сеть доставки контента для 27 млн интернет-ресурсов и обслуживающая трафик 13% из 1000 крупнейших сайтов, раскрыла подробности инцидента, в результате которого в течение 27 минут была нарушена работа многих сегментов сети, в том числе отвечающих за доставку трафика в Лондон, Чикаго, Лос-Анджелес, Вашингтон, Амстердам, Париж, Москву и Санкт-Петербург. Проблема была вызвана неверным изменением конфигурации на маршрутизаторе в Атланте. Во время инцидента, который произошёл 17 июля с 21:12 по 21:39 (UTC), общий объём трафика в сети Cloudflare снизился примерно на 50%.
В процессе проведения технических работ, желая снять часть трафика с одного из бэкбонов, инженеры удалили одну строку в блоке настроек, определяющем список принимаемых через бэкбон маршрутов, фильтруемых в соответствии с указанным списком префиксов. Правильным было бы деактивировать весь блок, но по ошибке была лишь удалена строка со списком префиксов. {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) для локальных маршрутов, который не позволит одному маршрутизатору влиять на трафик в других частях сети.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.