Заметки с работы. И снова про BGP.
Сегодня я размышляю про функционал Route-Refresh. Нужен он для того, чтобы не разрывать соединение с соседом, не сбрасывать таблицу маршрутизации, не прерывать сервисы, а просто перезапросить маршруты. И ей уже семь лет в обет.
Например, одна из наиболее частых ситуаций, где востребован этот функционал — обновление политики.
Итак, есть политика на импорт маршрутов в таблицу маршрутизации — она фильтрует, к примеру, все префиксы длиннее 23 битов, то есть /24 уже не проходит и не попадает в ТМ. Потом мы бац — и меняем правило — решили блокировать только префиксы длиннее 25. И /24 тогда уже должны быть импортированы.
Тогда BGP по-быстрому перезапрашивает их и применяет обновлённую политику.
Собственно, ввиду беспрецедентного удобства данной возможности, на хуавее упразднён альтернативный путь применить политику без разрыва BGP-сессии: хранить все полученные от соседа маршруты.
Настало время сказать, что существует две BGP-таблицы:
— полученные маршруты — хранит всё.
— одобренные маршруты — хранит только то, что осталось после применения политик (и удовлетворяет прочим требованиям BGP).
И есть даже две команды, которые позволяют посмотреть эти таблицы
Однако в связи с упразднением показывают они одно и то же. Для экономии оперативной памяти маршруты, не прошедшие проверки, не хранятся в таблице полученных маршрутов. А при необходимости перезапрашиваются через Route Refresh.
Выключить этот режим можно командой peer keep-all-routes (для конкретного, как вы понимаете, соседа — ибо не плодите сверх необходимого — Оккама). К примеру, если сосед не поддерживает Route-Refresh (такие троглодиты ещё существуют?)
Ну а если поддерживает, то не обязательно включать keep-all-routes. Технически и наоборот верно — если хранить все маршруты, то можно и не перезапрашивать, но кто ж его выключит — он же базовый функционал BGP (уже почти).
Эти две функции или, хотите, называйте их особенностями поведения, взаимосвязаны, но, строго говоря, не являются полными синонимами.
Например, имея Route-refresh, вы, вероятно, могли бы захотеть в таблице полученных от соседа маршрутов видеть полный список до фильтрации, чтобы лицезреть работу политик.
Сегодня я размышляю про функционал 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, вы, вероятно, могли бы захотеть в таблице полученных от соседа маршрутов видеть полный список до фильтрации, чтобы лицезреть работу политик.
Поделиться с друзьями
vvpoloskin
Ну это особенность хуавея (наверно и циски), на джунах хранится все в hidden.
На счет того, что встречается оборудование с неподдерживаемым функционалом bgp, я совсем не удивляюсь. На практике попадаются спутниковые модемы (из динамики поддерживают вообще только рип) и промышленные GSM-роутеры с весьма скудным функционалом, а где-то еще служат xPON ONT с интересными прошивками и даже существуют сети DOCSIS, и по ним подключены корпоративные клиенты.
eucariot
Возможно. Идея с освобождением оперативной памяти выглядит вполне оправданной, учитывая, что Route Refresh Capability согласуется на этапе установления сессии.
Ну и я смотрю на всё это с операторской колокольни, где BGP действительно нужен. Или стык крупного энтерпрайза с оператором. Про всякие мелкие железки понятно, что ничего не понянто.
xcore78
Хранится, если вы не примените keep none.