BGP Route Reflectors

Схема сети
Схема кластеров RR

Если вкратце, то RR работает схоже с Backbone Area в OSPF, распространяя маршруты, полученные от других iBGP-пиров. Однако, кластеры можно настраивать иерархически, как показано на рисунке выше. Т.е. RT.SPB.OBV будет являться одновременно RR для кластера 10.0.0.201 и клиентом кластера 10.0.0.202.

Таким образом, иерархически, сеть RR будет выглядеть вот так:

Настройка RT.SPB.MIR:

В данном случае мы настроили одну единственную группу с указанием кластера. На RT.SPB.OBV необходимо будет указать 2 группы. Одна группа без кластера, в которой RT.SPB.OBV будет просто клиентом кластера RT.SPB.MIR, а другую, где он сам будет являться RR для клиентов. Роутер RT.SPB.LNX же будет просто клиентом RT.SPB.MIR.

Настройка RT.SPB.OBV:

Далее соответственно настраиваем клиентов как клиентов, просто указывая Loopback'и соседей.

Но, в данной топологии есть проблема - это один единственный RR в кластере 10.0.0.201. Как пример можно посмотреть что будет если отключить RT.SPB.OBV и AS8001 в общей топологии сети. До отключения AS8000:

После отключения AS8000:

Теперь предположим, что у нас упал RR - RT.SPB.OBV:

Т.е. нам необходим резервный RR. Пусть им станет RT.SPB.LNX. Для того, чтобы в сети был ещё один RR, необходимо прописать ему тот же кластер, что и другого. Также между RReflector´ами в одном кластере должна быть Full-Mesh топология, при этом другой RR должен быть в той же группе, где указан кластер ID. Только в таком случае не будет петель, так как в RFC4456 сказано, что RR при получении маршрута от другого RR в этом же кластере отбросит маршрут.

Донастроим топологию:

Теперь заново отключим AS8000 и посмотрим маршруты:

Видно, что маршрут получен от 10.0.0.201 (RT.SPB.OBV) и 10.0.0.204 (RT.SPB.LNX). Теперь выключим RT.SPB.OBV:

Как видно всё работает. Теперь схема выглядит так:

Также нужно настроить iBGP внутри AS9002, сделать это можно просто указав в качестве neighbor'ов - IP интерфейсов ge-0/0/0, а type для этих групп указать interal. Больше можно ничего не указывать, чтобы не настраивать лишее. Это будет не совсем правильно, но для связности между ними пойдёт.

Если мы укажем себя как клиента и как route-reflector в одном кластере, то сработает защита от петель и мы не получим маршруты на нашем RR в том же кластере, что и другой RR.

Пример конфига (IP каждого роутера можно узнать по Local-Address):

neighbor 192.168.0.5 - это тоже RR, который работает в том же самом кластере:

В данном случае мы увидим на RT.SPB.LNX следующую таблицу маршрутизации (маршруты от RT.SPB.LNX не приняты):

Единственное решение - поменять cluster для любого RR на уникальный:

Результат:

Last updated

Was this helpful?