Уже несколько раз в отчетах об инцидентах маршрутизации мы рассказывали о возможных последствиях отсутствия фильтров BGP-анонсов на стыках с клиентами. Подобная, некорректная, конфигурация большую часть времени будет работать совершенно нормально — до тех пор, пока в один прекрасный день не станет виновной в сетевой аномалии регионального или глобального масштаба. И позавчера, 25.11.2018, это случилось снова — на этот раз в России.
В 13.00 UTC (16:00 по московскому времени) небольшой российский оператор Krek Ltd (AS57494) начал анонсировать префиксы между своими провайдерами, в результате перенаправив значительную часть трафика Ростелекома на свою сеть. Аномалия затронула более 40 тысяч префиксов — выдержать такую нагрузку сеть Krek, конечно, не могла. В результате от 10 до 20% пользователей на территории РФ потеряли доступ к тысячам сервисов, включая такие популярные как Amazon, Youtube, Вконтакте и онлайн-кинотеатру IVI.RU.
Более чем с 5000 префиксов инцидент распространился за пределы российского интернет-сегмента, затягивая трафик других регионов в эту черную дыру.
Эта утечка маршрута является результатом двух взаимосвязанных ошибок — ошибки в настройке BGP в сети Krek и отсутствии фильтрации на стыках в сети Ростелекома. Оба оператора заплатили высокую цену за собственные ошибки, но вряд ли это может до конца удовлетворить владельцев других сервисов, потерявших значительную часть пользователей.
Вернуть трафик любой ценой
Широко распространено мнение, что у оператора нет способа вернуть трафик из такой аномалии — чужой маршрутизатор находится вне вашего контроля. Конечно, можно начать писать письма «виновным» сторонам — это может ускорить процесс восстановления, но все равно не вернет трафик в вашу сеть мгновенно.
Но существует и другой способ вернуть корректную связность, эксплуатируя механизм обнаружения циклов BGP: сеть обязана автоматически сбросить маршрут в случае, если AS Path включает ее собственный номер AS. Поэтому, если вы знаете, кто является источником аномалии, вы можете добавить его AS в начало вашего пути, таким образом вынуждая его сбросить этот маршрут.
Подобная манипуляция AS Path может дополнить мониторинг сетевых анонсов, предоставляя гарантированный метод активной борьбы с инцидентами типа утечки маршрута (route leak). Но при использовании такой политики, вы должны быть осторожны, всегда проверяя валидность результата относительно процедуры валидации ROA.