BGP. Received-routes vs. Accepted-routes

Заметки с работы. И снова про BGP.

Сегодня я размышляю про функционал Route-Refresh. Нужен он для того, чтобы не разрывать соединение с соседом, не сбрасывать таблицу маршрутизации, не прерывать сервисы, а просто перезапросить маршруты. И ей уже семь лет в обет.

Например, одна из наиболее частых ситуаций, где востребован этот функционал — обновление политики.

Итак, есть политика на импорт маршрутов в таблицу маршрутизации — она фильтрует, к примеру, все префиксы длиннее 23 битов, то есть /24 уже не проходит и не попадает в ТМ. Потом мы бац — и меняем правило — решили блокировать только префиксы длиннее 25. И /24 тогда уже должны быть импортированы.

Тогда BGP по-быстрому перезапрашивает их и применяет обновлённую политику.

Собственно, ввиду беспрецедентного удобства данной возможности, на хуавее упразднён альтернативный путь применить политику без разрыва BGP-сессии: хранить все полученные от соседа маршруты.

Настало время сказать, что существует две BGP-таблицы:

— полученные маршруты — хранит всё.
 — одобренные маршруты — хранит только то, что осталось после применения политик (и удовлетворяет прочим требованиям BGP).

И есть даже две команды, которые позволяют посмотреть эти таблицы

display bgp routing-table peer ipv4-address received-routes
display bgp routing-table peer ipv4-address accepted-routes

Однако в связи с упразднением показывают они одно и то же. Для экономии оперативной памяти маршруты, не прошедшие проверки, не хранятся в таблице полученных маршрутов. А при необходимости перезапрашиваются через Route Refresh.

Выключить этот режим можно командой peer keep-all-routes (для конкретного, как вы понимаете, соседа — ибо не плодите сверх необходимого — Оккама). К примеру, если сосед не поддерживает Route-Refresh (такие троглодиты ещё существуют?)

Ну, а если поддерживает, то не обязательно включать keep-all-routes. Технически и наоборот верно — если хранить все маршруты, то можно и не перезапрашивать, но кто ж его выключит — он же базовый функционал BGP (уже почти).

Эти две функции или, хотите, называйте их особенностями поведения, взаимосвязаны, но, строго говоря, не являются полными синонимами.

Например, имея Route-refresh, вы, вероятно, могли бы захотеть в таблице полученных от соседа маршрутов видеть полный список до фильтрации, чтобы лицезреть работу политик.

Комментарии (0)

© Habrahabr.ru