BGP route reflector

Материал из Xgu.ru

Перейти к: навигация, поиск

< BGP


Route reflectors (RR) как и конфедерация позволяет:

  • избежать необходимости создания полносвязной топологии между всеми iBGP-соседями,
  • всем iBGP-соседям выучить все iBGP-маршруты в AS,
  • предотвратить образование петель.


Содержание

[править] Принцип работы route reflector

При использовании RR для маршрутизаторов в AS определяются такие три роли:

  • RR сервер (RR Server, RR)
  • Клиент (Client)
  • Не клиент (Nonclient)

Только маршрутизатор работающий как RR использует логику отличную от обычного iBGP-маршрутизатора. Другие маршрутизаторы (клиент и не клиент) не изменяют правила работы и фактически даже не знают о существовании RR.

Правила, которыми руководствуется RR принимая решение отправлять маршруты соседу или нет:

Общая таблица сравнения различных режимов работы RR:

Источник от которого выучен префикс Анонсируется ли маршрут клиентам? Анонсируется ли маршрут не клиентам?
Клиент Да Да
Не клиент Да Нет
eBGP Да Да

Отличия в работе RR возникают при взаимодействии с маршрутизаторами, которые работают в роли клиентов. При взаимодействии с eBGP-соседями или с не клиентами, правила аналогичны обычному взаимодействию, с eBGP и iBGP маршрутизаторами, соответственно.

RR сервер (или несколько серверов) и его клиенты формируют один RR кластер (RR cluster). AS в которой используются RR может состоять из:

  • кластера с несколькими RR,
  • нескольких кластеров (использование нескольких кластеров имеет смысл, если существует физическая избыточность).

Когда используется несколько кластеров, то хотя бы один RR из кластера должен быть соседом с хотя бы одним RR в каждом из других кластеров. Как правило, все RR являются непосредственно присоединенными соседями и формируют между собой полносвязную топологию. Маршрутизаторы, которые не являются клиентами, также должны быть присоединены к полносвязной топологии из RR.

Для того чтобы предотвратить образование петель RR используют такие механизмы:

  • CLUSTER_LIST — RR добавляет идентификатор кластера (cluster ID) в атрибут CLUSTER_LIST прежде чем отправить обновление. При получении обновления RR отбрасывает те префиксы для которых идентификатор его кластера уже указан в атрибуте. Это предотвращает образование петель между кластерами.
  • ORIGINATOR_ID — этот атрибут указывает RID того маршрутизатора (не RR), который анонсировал маршрут внутри локальной AS. Если маршрутизатор получает обновление в котором указан его RID, то этот маршрут не используется и не передается далее соседям.
  • анонсируются только лучшие маршруты — RR передает маршрут далее только если если маршрут считается лучшим в его таблице BGP.

[править] Изменение процедуры выбора лучшего маршрута в AS с RR

В тех случаях, когда маршрутизаторы могут получить один и тот же маршрут от RR и от обычного маршрутизатора, правила выбора лучшего маршрута BGP немного изменяются:

  1. Первые шаги, в которых учитываются атрибуты weight, local preference, origin и MED — остаются без изменений,
  2. Если все предыдущие параметры одинаковы, то маршруты полученные от EBGP-соседей предпочтительней, чем маршруты полученные от IBGP-соседей,
  3. Выбрать путь через ближайшего IGP-соседа
  4. Выбрать путь через соседа с наименьшим BGP router ID. Если у префикса есть атрибут Originator ID, то вместо router ID сравнивается Originator ID.
  5. Reflected-маршруты с более коротким cluster-list предпочтительнее (длина cluster-list равна нулю, если маршрут без атрибута cluster-list),
  6. Выбрать путь через соседа с наименьшим IP-адресом

[править] Пример настройки RR в Cisco

Схема сети:

BGP RR.png

На маршрутизаторах, которые выполняют роль клиентов никаких отличий в настройках BGP нет. Пример конфигурации BGP на dyn5:

router bgp 65000
 no synchronization
 bgp log-neighbor-changes
 network 192.168.4.0
 network 192.168.5.0
 neighbor 192.168.4.3 remote-as 65000
 neighbor 192.168.5.6 remote-as 406
 no auto-summary

Конфигурация BGP на dyn1:

router bgp 65000
 no synchronization
 bgp cluster-id 1
 bgp log-neighbor-changes
 network 192.168.1.0
 network 192.168.2.0
 neighbor 192.168.1.2 remote-as 65000
 neighbor 192.168.1.2 route-reflector-client
 neighbor 192.168.2.3 remote-as 65000
 no auto-summary

Конфигурация BGP на dyn3:

router bgp 65000
 no synchronization
 bgp cluster-id 2
 bgp log-neighbor-changes
 network 192.168.2.0
 network 192.168.4.0
 neighbor 192.168.2.1 remote-as 65000
 neighbor 192.168.4.5 remote-as 65000
 neighbor 192.168.4.5 route-reflector-client
 no auto-summary

[править] Просмотр информации

Подробная информация о маршруте, в том числе атрибуты относящиеся к RR:

dyn1# sh ip bgp 192.168.5.0
BGP routing table entry for 192.168.5.0/24, version 7
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to update-groups:
        2
  Local
    192.168.4.5 from 192.168.2.3 (192.168.4.3)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Originator: 192.168.100.1, Cluster list: 0.0.0.2

Подробная информация о маршруте на маршрутизаторе qua2, в том числе атрибуты относящиеся к RR (два кластера):

qua2# sh ip bgp 192.168.5.0
BGP routing table entry for 192.168.5.0/24
Paths: (1 available, no best path)
  Not advertised to any peer
  Local
    192.168.4.5 (inaccessible) from 192.168.1.1 (192.168.100.1)
      Origin IGP, metric 0, localpref 100, valid, internal
      Originator: 192.168.100.1, Cluster list: 0.0.0.1 0.0.0.2 
      Last update: Wed Jul 22 20:16:19 2009

Подробная информация о маршруте, в том числе информация о том, что одним из источников маршрута был RR-клиент:

dyn1# sh ip bgp 192.168.1.0
BGP routing table entry for 192.168.1.0/24, version 5
Paths: (2 available, best #2, table Default-IP-Routing-Table)
  Advertised to update-groups:
        1    2
  Local, (Received from a RR-client)
    192.168.1.2 from 192.168.1.2 (192.168.1.2)
      Origin IGP, metric 0, localpref 100, valid, internal
  Local
    0.0.0.0 from 0.0.0.0 (192.168.2.1)
      Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best

Политика распространения информации на RR:

dyn3# show ip bgp update-group
BGP version 4 update-group 1, internal, Address Family: IPv4 Unicast
 BGP Update version : 5/0, messages 0
 Update messages formatted 3, replicated 0
 Number of NLRIs in the update sent: max 1, min 1
 Minimum time between advertisement runs is 0 seconds
 Has 1 member (* indicates the members currently being sent updates):
  192.168.2.1

BGP version 4 update-group 2, internal, Address Family: IPv4 Unicast
 BGP Update version : 5/0, messages 0
 Route-Reflector Client
 Update messages formatted 3, replicated 0
 Number of NLRIs in the update sent: max 1, min 1
 Minimum time between advertisement runs is 0 seconds
 Has 1 member (* indicates the members currently being sent updates):
  192.168.4.5

В sh ip protocol отображается, что маршрутизатор route reflector:

Routing Protocol is "bgp 1234"
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Route Reflector for address family IPv4 Unicast, 5 clients
  IGP synchronization is disabled
  Automatic route summarization is disabled
  Neighbor(s):
    Address          FiltIn FiltOut DistIn DistOut Weight RouteMap
    1.1.1.1                                              
    3.3.3.3                                              
    4.4.4.4                                              
    5.5.5.5                                              
    7.7.7.7                                              
  Maximum path: 1
  Routing Information Sources:
    Gateway         Distance      Last Update
    7.7.7.7              200      00:04:26
    1.1.1.1              200      00:04:26
    5.5.5.5              200      00:07:20
  Distance: external 20 internal 200 local 200

[править] Дополнительная информация

[править] Примечания


Источник — «http://xgu.ru/wiki/BGP_route_reflector»