BGP в Cisco
Материал из Xgu.ru
- Автор: Наташа Самойленко
На этой странице описывается настройка BGP на маршрутизаторах Cisco.
На странице BGP/config представлена схема и конфигурационные файлы для сети, которая рассматривается на этой странице.
[править] Выбор пути
Характеристики процедуры выбора пути протоколом BGP:
- В таблице BGP хранятся все известные пути, а в таблице маршрутизации — лучшие.
- Пути выбираются на основании политик.
- Пути не выбираются на основании пропускной способности.
Сначала проверяется:
- Доступен ли next-hop (Route Resolvability Condition)
- Для того чтобы next-hop считался доступным (accessible), необходимо чтобы в таблице маршрутизации был IGP-маршрут, который ведет к нему.
На маршрутизаторе Cisco, если не настроены никакие политики выбора пути, выбор пути происходит таким образом (на каждый следующий шаг маршрутизатор переходит только при совпадении значений на предыдущем):
- Максимальное значение weight (локально для маршрутизатора).
- Максимальное значение local preference (для всей AS).
- Предпочесть локальный маршрут маршрутизатора (next hop = 0.0.0.0).
- Кратчайший путь через автономные системы. (самый короткий AS_PATH)
- Минимальное значение origin code (IGP < EGP < incomplete).
- Минимальное значение MED (распространяется между автономными системами).
- Путь eBGP лучше чем путь iBGP.
- Выбрать путь через ближайшего IGP-соседа.
- Выбрать самый старый маршрут для eBGP-пути.
- Выбрать путь через соседа с наименьшим BGP router ID.
- Выбрать путь через соседа с наименьшим IP-адресом.
Только лучшие пути из таблицы BGP анонсируется BGP-соседям и помещается в таблицу маршрутизации (если другой маршрут не выиграет по значению AD). |
[править] Создание процесса BGP
Создание процесса BGP:
dyn3(config)# router bgp <1-65535>
Параметры:
- <1-65535> номер автономной системы, который принадлежит локальный маршрутизатор (приватный диапазон 64512-65535). Сравнивая этот номер с номерами автономных систем соседей, маршрутизатор будет использовать iBGP или eBGP.
В отличие от протоколов IGP, команда router bgp не включает работу BGP на маршрутизаторе. На маршрутизаторе может существовать только один процесс BGP.
[править] Выбор идентификатора маршрутизатора (Router ID)
Router ID можно назначить административно выполнив команду:
dyn3(config-router)# bgp router-id <ip-address>
Если RID не был назначен административно, то он выбирается автоматически (в момент создания процесса BGP), в зависимости от настроек маршрутизатора, по таким правилам:
- Наибольший IP-адрес присвоенный loopback-интерфейсу (в состоянии up/up) будет Router ID.
- Наибольший IP-адрес из всех других интерфейсов (в состоянии up/up) будет Router ID.
[править] Соседи BGP
Создать соседа BGP (эта команда активирует сессию BGP с указанным соседом):
dyn3(config-router)# neighbor <ip-address | peer-group-name> remote-as <as-number>
Параметры команды neighbor:
- ip-address — идентифицирует соседний маршрутизатор. Это тот адрес, который будет указан как получатель в BGP-пакетах. У локального маршрутизатора обязательно должен быть маршрут к этому соседу для того, чтобы он смог установить отношения соседства с ним.
- peer-group-name — группа маршрутизаторов BGP, которые используют одинаковую политику обновлений.
- remote-as <as-number> — номер автономной системы соседа.
Команда neighbor используется для указания и внутренних соседей и внешних:
- Если указывается адрес внутреннего соседа (номер AS соседа совпадает с номером AS локального маршрутизатора), то он не обязательно должен быть непосредственно присоединен к маршрутизатору (но маршрут к соседу прописан должен быть).
- Если указывается адрес внешнего соседа (номер AS соседа отличается от номера AS локального маршрутизатора), то он должен быть непосредственно присоединен к маршрутизатору, по умолчанию.
Пример задания соседей на маршрутизаторе dyn3:
dyn3(config)#router bgp 65000 dyn3(config-router)# neighbor 192.168.4.3 remote-as 65000 dyn3(config-router)# neighbor 192.168.2.1 remote-as 65000 dyn3(config-router)# neighbor 192.168.3.4 remote-as 65000 dyn3(config-router)# neighbor 192.168.5.6 remote-as 65006
При необходимости можно указать описание для соседа:
dyn3(config-router)# neighbor <ip-address> description <text>
[править] Настройка адреса для отправки обновлений
Для тех случаев, когда в сети iBGP есть несколько путей между соседями и в качестве отправителя могут быть разные интерфейсы, рекомендуется настраивать loopback-интерфейсы. Соседи будут указываться по их loopback-интерфейсам.
Для того чтобы пакеты BGP отправлялись с адресом отправителя loopback-интерфейсом, необходимо это явно указать:
dyn3(config-router)# neighbor <ip-address | peer-group-name> update-source <interface-type interface-number>
После выполнение этой команды, пакеты соседу с указанным IP-адресом, будут отправляться с адресом отправителя равным IP-адресу loopback-интерфейса. Сети loopback-интерфейсов должны быть доступны соседям.
[править] Настройка eBGP-соседей через loopback
Если loopback-интерфейсы используются как отправители пакетов BGP, то для eBGP-соседей необходимо разрешить коммуникации с соседями, которые находятся не в непосредственно присоединенных сетях. Это можно сделать увеличив TTL в пакетах с помощью команды ebgp-multihop или отменив проверку connected маршрутов.
Увеличение TTL:
dyn3(config-router)# neighbor <ip-address | peer-group-name> ebgp-multihop [ttl]
|
По умолчанию BGP проверяет находится ли eBGP-сосед в непосредственно присоединенной сети локального маршрутизатора. Эту проверку отключает параметр disable-connected-check. |
Если EBGP-соседи непосредственно соединены, но сессия BGP поднята между loopback-интерфейсами, то можно отключить проверку connected-маршрутов (значение TTL остается прежним = 1). В таком случае сессия не будет установлена, если EBGP-сессия будет передаваться через другие устройства.
Пример настройки:
router bgp 20 neighbor 192.1.4.4 remote-as 10 neighbor 192.1.4.4 disable-connected-check neighbor 192.1.4.4 update-source Loopback0
|
Маршрутизатор не уменьшает TTL в пакетах, которые предназначены ему самому |
[править] Аутентификация
Аутентификация с соседом (группой соседей):
dyn3(config-router)# neighbor <ip-address | peer-group-name> password <string>
После указания пароля, к каждому TCP-сегменту, который отправляется соседу, будет добавляться значение MD5-хеша взятое с таких входных данных:
- IP-адрес отправителя, IP-адрес получателя, номер протокола дополненный нулями, размер сегмента
- заголовок TCP, исключая опции и предполагая нулевое значение контрольной суммы
- данные сегмента TCP
- указанный ключ или пароль, известный обеим сторонам соединения TCP
[править] Изменение значения таймеров keepalive и hold
Для каждого соседа может быть указано уникальное значение таймеров keepalive и hold. BGP выполняет проверку таймеров keepalive и hold, однако несовпадение этих параметров не влияет на установку отношений соседства.
По умолчанию значение таймеров:
- Hold — 180 секунд,
- Keepalive — 60 секунд.
В сообщениях Open передается только значение таймера Hold. Если значения таймеров не совпадают, то каждый маршрутизатор будет использовать меньшее значение таймера Hold.
Если выбранное значение таймера Hold равно нулю, то сообщения Keepalive отправляться не будут.
Так как значение таймера keepalive не передается, то оно должно быть каким-то образом получено. Маршрутизатор выбирает значение таймера keepalive таким образом:
- Если был выбран таймер hold, который настроен на локальном маршрутизаторе, то используется локальное значение таймера keepalive;
- Если был выбран таймер hold, который настроен на соседнем маршрутизаторе и значение локально настроенного таймера keepalive меньше чем 1/3 выбранного таймера hold, то используется локальное значение таймера keepalive;
- Если был выбран таймер hold, который настроен на соседнем маршрутизаторе и значение локально настроенного таймера keepalive больше чем 1/3 выбранного таймера hold, то используется целое число, которое меньше чем 1/3 выбранного таймера hold.
Изменение таймеров для процесса BGP:
dyn3(config-router)# timers bgp <keepalive> <holdtime>
Изменение таймеров для соседа или группы соседей (эти значения более приоритетные чем значения таймеров для процесса):
dyn3(config-router)# neighbor <ip-address | peer-group-name> timers <keepalive> <holdtime>
[править] Разрыв связи с соседом
Административно разорвать связь с соседом (используется при внесении изменений для того чтобы избежать route flapping):
dyn3(config-router)# neighbor <ip-address | peer-group-name> shutdown
Восстановить административно разорванную связь с соседом:
dyn3(config-router)# no neighbor <ip-address | peer-group-name> shutdown
Когда маршрутизатор создает BGP-пакет, IP-адрес указанный в команде neighbor определяет адрес назначения в пакете, а исходящий интерфейс — адрес отправителя. Когда BGP-пакет получен для новой сессии, адрес отправителя в пакете сравнивается с IP-адресами соседей:
|
[править] Группа соседей
Объединение соседей в группы не добавляет новый функционал. Группы позволяют сократить количество настроек, которые относятся к соседям и оптимизировать производительность маршрутизатора.
После объединения соседей в группу:
- Параметры можно задавать для группы соседей
- Для группы должна быть одинаковая исходящая политика (outbound policy)
- Входящая политика (inbound policy) для группы может быть различной
- Обновления генерируются один раз для всей группы
- Соседний маршрутизатор может принадлежать только одной группе соседей
- Группа соседей имеет локальное значение, эта настройка никак не передается соседям
- В группе нельзя смешивать iBGP и EBGP соседей.
Соседи, которые принадлежат группе, всегда наследуют такие параметры группы (настройка этих параметров для конкретного соседа не перебивает настройки сделанные для группы):
- remote-as
- version
- update-source
- out-route-map
- out-filter-list
- out-dist-list
- minimum-advertisement-interval
- next-hop-self
Создание группы соседей:
dyn3(config-router)# neighbor <peer-group-name> peer-group
Добавить соседа в созданную группу:
dyn3(config-router)# neighbor <ip-address> peer-group <peer-group-name>
Написать о BGP Dynamic Update Peer-Groups и Peer Templates |
[править] TTL security check
dyn(config-router)# neighbor <address> ttl-security hops <hop-count>
[править] Построение таблицы BGP
В таблице BGP, которая также называется таблица топологии BGP или BGP Routing Information Base (RIB), хранится информация о сетях (NLRI), которые выучены BGP и соответствующие атрибуты пути.
Маршрутизатор может поместить запись в таблицу BGP таким образом:
- используя команду network,
- получив обновление от соседа,
- перераспределив маршруты из другого источника.
Просмотр таблицы BGP:
show ip bgp
[править] Команда network
Указать какие сети анонсировать по протоколу BGP (если сеть присутствует в таблице маршрутизации):
dyn3(config-router)# network <network-number> [mask <network-mask>] [route-map <map-tag>]
Параметр route-map позволяет изменить параметры маршрута перед тем как он будет помещен в таблицу BGP. Например, можно изменить такие параметры:
- Weight,
- Community,
- Local preference,
- MED.
Команда network в BGP отличается от аналогичной команды в IGP-протоколах. В BGP эта команда говорит процессу BGP:
- Найти в текущей таблице маршрутизации маршрут, который в точности совпадает с параметрами команды network. Если такой маршрут существует, то поместить соответствующую NLRI в локальную BGP-таблицу.
Свойства команды:
- Указывает какую сеть поместить в таблицу BGP и затем анонсировать соседям,
- Без указания маски BGP анонсирует классовую сеть,
- При включенном no auto-summary — BGP ищет полное совпадение префикса и длины префикса с маршрутами в таблице маршрутизации,
- При включенном auto-summary — если в команде network указана классовая сеть, то совпадением считается ситуация, когда в таблице маршрутизации существует хотя бы одна подсеть этой классовой сети,
- Максимально возможное число команд network в процессе BGP — 200.
Отличия от протоколов IGP:
- Не включает BGP на интерфейсе,
- Указываются не только непосредственно присоединенные сети, а все сети, которые должны быть анонсированы,
- Если указанная сеть не найдена в таблице маршрутизации, то сеть анонсироваться не будет.
|
Команда neighbor указывает BGP кому анонсировать, а команда network — что анонсировать. |
В ситуациях когда необходимо анонсировать маршрут, которого нет в таблице маршрутизации, создают статический маршрут в null 0. Например, на маршрутизатор приходят по IGP протоколу подсети суммарной сети 77.7.0.0/16. Самой суммарной сети в таблице маршрутизации нет, но в BGP необходимо анонсировать именно её.
Настройка будет выглядеть так:
dyn(config-router)# network 77.7.0.0 mask 255.255.0.0 dyn(config)# ip route 77.7.0.0 255.255.0.0 null 0
Суммарный маршрут будет анонсироваться всегда, так как интерфейс null 0 доступен всегда. Пришедшие пакеты будут отправляться по маршрутам полученным по IGP. Если маршрута в определенную сеть нет, то пакет будет отброшен.
[править] Перераспределение маршрутов
В BGP с помощью команды redistribute можно перераспределить маршруты:
- статические,
- присоединенные,
- выученные с помощью IGP протоколов.
dyn3(config-router)#redistribute ? bgp Border Gateway Protocol (BGP) connected Connected dvmrp Redistribution of DVMRP into BGP IPv4 Multicast eigrp Enhanced Interior Gateway Routing Protocol (EIGRP) isis ISO IS-IS iso-igrp IGRP for OSI networks mobile Mobile routes odr On Demand stub Routes ospf Open Shortest Path First (OSPF) rip Routing Information Protocol (RIP) static Static routes
При перераспределении маршрутов из IGP протоколов в BGP:
- Перераспределяются два типа маршрутов из таблицы маршрутизации:
- выученные по соответствующему IGP протоколу,
- присоединенные маршруты совпадающие с указанной командой network в IGP,
- Метрика перераспределенных маршрутов:
- может не указываться:
- BGP использует отличный от протоколов IGP механизм выбора лучшего маршрута,
- по умолчанию метрика протокола IGP переходит в атрибут MED,
- если указывается, то это значение атрибута MED.
- может не указываться:
[править] Перераспределение маршрутов OSPF
Схема будет использоваться для объяснения настройки перераспределения маршрутов OSPF в BGP:
[править] Начальные условия
На маршрутизаторе dyn3 такая таблица маршрутизации:
dyn3# sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set C 192.168.4.0/24 is directly connected, FastEthernet1/0 O IA 192.168.1.0/24 [110/2] via 192.168.2.1, 00:47:06, FastEthernet0/0 C 192.168.2.0/24 is directly connected, FastEthernet0/0 O E1 192.168.3.0/24 [110/22] via 192.168.2.1, 00:47:06, FastEthernet0/0
Настройка OSPF на dyn3:
router ospf 1 network 192.168.2.0 0.0.0.255 area 0
[править] Перераспределение маршрутов без задания метрики
По умолчанию, если в команде redistribute не указан тип маршрута, то перераспределяются внутризональные и межзональные маршруты OSPF. Опция команды -- internal.
|
Внутренними (internal) маршруты называются по тому принципу, что все они сгенерированы процессом OSPF, при совпадении сети интерфейса с сетью указанной в команде network. |
Перераспределение внутризональных и межзональных маршрутов OSPF в BGP:
dyn3(config)# router bgp 65000 dyn3(config-router)# redistribute ospf 1
Таблица BGP на dyn3 после перераспределения внутренних маршрутов:
dyn3# sh ip bgp BGP table version is 7, local router ID is 192.168.4.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 192.168.2.1 2 32768 ? *> 192.168.2.0 0.0.0.0 0 32768 ?
Таблица BGP на dyn5 после перераспределения внутренних маршрутов:
dyn5# sh ip bgp BGP table version is 7, local router ID is 192.168.5.5 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i192.168.1.0 192.168.2.1 2 100 0 ? *>i192.168.2.0 192.168.4.3 0 100 0 ?
Перераспределение маршрутов других типов:
router(config-router)# redistribute ospf 1 match <internal | external <1|2> | nssa-external <1|2>>
Например, на dyn3 перераспределение маршрутов типа E1:
dyn3(config)# router bgp 65000 dyn3(config-router)# redistribute ospf 1 match external 1
Если до этого было выполнено перераспределение маршрутов командой redistribute ospf 1, то теперь будут перераспределяться маршруты:
- внутризональные и межзональные,
- типа external 1.
|
При перераспределении маршрутов новая команда redistribute с параметром match не переписывает предыдущие настройки, а добавляет новый тип маршрута. |
Конфигурация dyn3:
router bgp 65000 no synchronization bgp log-neighbor-changes redistribute ospf 1 match internal external 1 neighbor 192.168.4.5 remote-as 65000 no auto-summary
Таблица BGP на dyn3 после перераспределения внутренних и E1 маршрутов:
dyn3# sh ip bgp BGP table version is 8, local router ID is 192.168.4.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 192.168.2.1 2 32768 ? *> 192.168.2.0 0.0.0.0 0 32768 ? *> 192.168.3.0 192.168.2.1 22 32768 ?
Таблица BGP на dyn5 после перераспределения внутренних и E1 маршрутов:
dyn5# sh ip bgp BGP table version is 8, local router ID is 192.168.5.5 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i192.168.1.0 192.168.2.1 2 100 0 ? *>i192.168.2.0 192.168.4.3 0 100 0 ? *>i192.168.3.0 192.168.2.1 22 100 0 ?
Таблица маршрутизации на dyn5 после перераспределения внутренних и E1 маршрутов:
dyn5# sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set C 192.168.4.0/24 is directly connected, FastEthernet0/0 C 192.168.5.0/24 is directly connected, FastEthernet1/0 B 192.168.1.0/24 [200/2] via 192.168.2.1, 00:06:02 B 192.168.2.0/24 [200/0] via 192.168.4.3, 00:06:07 B 192.168.3.0/24 [200/22] via 192.168.2.1, 00:00:03
[править] Перераспределение маршрутов и задание метрики (атрибута MED)
Изменение метрики (атрибут MED) для маршрутов перераспределенных из OSPF:
dyn3(config)# router bgp 65000 dyn3(config-router)# redistribute ospf 1 metric 85
Таблица BGP на dyn3 после перераспределения:
dyn3# sh ip bgp BGP table version is 10, local router ID is 192.168.4.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 192.168.2.1 85 32768 ? *> 192.168.2.0 0.0.0.0 0 32768 ? *> 192.168.3.0 192.168.2.1 85 32768 ?
Таблица BGP на dyn5 после перераспределения:
dyn5# sh ip bgp BGP table version is 10, local router ID is 192.168.5.5 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i192.168.1.0 192.168.2.1 85 100 0 ? *>i192.168.2.0 192.168.4.3 0 100 0 ? *>i192.168.3.0 192.168.2.1 85 100 0 ?
[править] Удаление настроек перераспределения маршрутов
Если необходимо удалить настроенное перераспределение определенных маршрутов, например, оставить только маршруты E1 и удалить внутренние:
dyn3(config-router)# no redistribute ospf 1 match internal
Теперь в таблице BGP только маршрут E1:
dyn3# sh ip bgp BGP table version is 19, local router ID is 192.168.4.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.168.3.0 192.168.2.1 22 32768 ?
|
На сайте cisco указано, что после удаления всех ключевых слов (internal, external и др) в команде redistribute, остается команда redistribute ospf 1 и при этом перераспределяются внутренние маршруты. Команда остается, но маршруты перестают перераспределяться. Если просто повторить команду, то они перераспределяются. Далее демонстрация этого поведения. Для того чтобы удалить перераспределение полностью необходимо использовать команду no redistribute ospf 1. |
Настроено перераспределение внутренних маршрутов:
dyn3(config-router)#redistribute ospf 1
Таблица BGP с перераспределенными внутренними маршрутами:
dyn3(config-router)#do sh ip bgp BGP table version is 40, local router ID is 192.168.4.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 192.168.2.1 2 32768 ? *> 192.168.2.0 0.0.0.0 0 32768 ?
Настроено перераспределение E1 маршрутов:
dyn3(config-router)#redistribute ospf 1 match external 1
Таблица BGP с перераспределенными внутренними и E1 маршрутами:
dyn3(config-router)#do sh ip bgp BGP table version is 41, local router ID is 192.168.4.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 192.168.2.1 2 32768 ? *> 192.168.2.0 0.0.0.0 0 32768 ? *> 192.168.3.0 192.168.2.1 22 32768 ?
Конфигурация маршрутизатора:
dyn3(config-router)#do sh run | i redis redistribute ospf 1 match internal external 1
Если полностью удалить всё настроенное перераспределение таким образом:
dyn3(config-router)#no redistribute ospf 1 match internal external 1
то на маршрутизаторе всё равно остается такая настройка:
dyn3(config-router)#do sh run | i redis redistribute ospf 1
Однако маршруты более не перераспределяются:
dyn3(config-router)#do sh ip bgp
После повторения команды:
dyn3(config-router)# redistribute ospf 1
Внутренние маршруты опять перераспределяются:
dyn3(config-router)#do sh ip bgp BGP table version is 46, local router ID is 192.168.4.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 192.168.2.1 2 32768 ? *> 192.168.2.0 0.0.0.0 0 32768 ?
[править] Автоматическое суммирование (команда auto-summary)
Команда auto-summary по-разному проявляет себя при использовании её с командами redistribute и network.
При включенной команде auto-summary:
- команда redistribute добавляет только соответствующую классовую сеть в BGP-таблицу,
- команда network добавляет соответствующую классовую сеть и подсети (если они есть в таблице маршрутизации) в BGP-таблицу.
При выключенной команде no auto-summary:
- команда redistribute добавляет соответствующие подсети в BGP-таблицу,
- команда network добавляет подсети в BGP-таблицу, если они есть в таблице маршрутизации.
[править] Суммирование маршрутов
Создание суммарного маршрута:
dyn(config-router)# aggregate-address address mask [as-set] [summary-only] [suppress-map map-name] [advertise-map map-name] [attribute-map map-name]
Параметры команды:
- as-set — если настроена эта опция, маршрутизатор создает поле AS_SET для суммарного маршрута, но только в том случае, если поле AS_SEQ суммарного маршрута равно 0;
- summary-only — если задана эта опция, маршрутизатор анонсирует суммарный маршрут и не анонсирует его компоненты. По умолчанию все компоненты суммарного маршрута анонсируются;
- suppress-map — если задана эта опция, маршрутизатор анонсирует суммарный маршрут и подмножество его компонентов, за исключением тех которые явно указаны, наличие опции summary-only при этом игнорируется;
Логика команды aggregate-address:
- Суммарный маршрут не создается, если в таблице BGP нет ни одного маршрута для NLRI внутри суммарного маршрута
- Если из таблицы BGP исчезнут все подсети суммарного маршрута, будет удален и суммарный маршрут (маршрутизатор сообщит соседям, что маршрут более не действителен)
- По умолчанию анонсирует суммарный маршрут и все компоненты маршрута
- Если суммарный маршрут анонсируется eBGP-соседу, то маршрутизатор добавляет номер своей автономной системы в поле AS_SEQ перед отправкой сообщения Update
- Next-hop адрес:
- Устанавливает Next-hop адрес суммарного маршрута в локальной таблице BGP равным 0.0.0.0
- Устанавливает Next-hop адрес суммарного маршрута, при анонсировании его соседям, равным IP-адресу, который указан как источник обновлений для соответствующих соседей
- AS path:
- Если у всех компонентов суммарного маршрута одинаковое значение поля AS_SEQ, то для суммарного маршрута значение этого поля будет таким же
- Если у компонентов суммарного маршрута отличается значение поля AS_SEQ, то для суммарного маршрута значение этого поля будет установлено равным 0 (так как маршрутизатор не может указать корректное значение этого поля для суммарного маршрута)
- Установка поля AS_SEQ равным 0 может привести к образованию петель, так как BGP обнаруживает петли просматривая атрибут AS path. Поле AS_SET (параметр as-set) решает эту проблему, указывая все автономные системы через которые проходил любой из компонентов суммарного маршрута.
[править] Маршрут по умолчанию
В BGP маршрут по умолчанию может быть добавлен с помощью команд:
- network — маршрут по умолчанию должен существовать в таблице маршрутизации;
- redistribute — маршрут по умолчанию должен существовать в таблице маршрутизации. И надо указать команду default-information originate;
- neighbor default-originate — не добавляет маршрут по умолчанию в локальную таблицу BGP, но анонсирует маршрут соседям. По умолчанию не проверяет существует ли маршрут по умолчанию в таблице маршрутизации (можно указать чтобы проверка выполнялась задав route-map).
Добавление маршрута по умолчанию:
dyn(config-router)# neighbor <address> default-originate [route-map <map-name>]
[править] Conditional route injection
dyn(config-router)# bgp inject-map <inject-map-name> exist-map <exist-map-name> [copy-attributes]
[править] Анонсирование маршрутов соседям
Для того чтобы маршрутизатор анонсировал маршруты соседям, необходимо чтобы они были в таблице BGP. В предыдущем разделе описывались варианты с помощью которых маршрут может быть помещен в таблицу BGP. В этом разделе описываются правила, используя которые, маршрутизатор решает анонсировать маршрут из таблицы BGP или нет.
[править] Правила анонсирования маршрутов
При выборе какой маршрут должен быть отправлен соседу в сообщении Update, BGP использует такие правила:
- Отправлять только лучшие маршруты из таблицы BGP
- Для iBGP-соседей — не анонсировать маршруты, которые были выучены от других iBGP-соседей
- Для eBGP-соседей — не анонсировать маршруты для которых номер AS соседа уже находится в атрибуте AS path
- Не анонсировать suppressed или dampened маршруты
- Не анонсировать маршруты, которые отфильтрованы настройками
|
Если маршрут BGP не попал в таблицу маршрутизации из-за того, что есть маршрут от источника с лучшим значением AD, то маршрут всё равно анонсируется всем соседям BGP. Это можно изменить с помощью bgp suppress-inactive. |
[править] Построение таблицы маршрутизации
[править] Рекурсивная маршрутизация (recursive routing)
Next-hop в BGP отличается от IGP протоколов. В BGP next-hop, как правило, указывает на eBGP-соседа, который отправил обновление в локальную автономную систему. Соответственно, для iBGP-маршрутизаторов, next-hop находится не в непосредственно присоединенной сети.
Для того чтобы полученный маршрут был выбран как лучший в таблице BGP и был помещён в таблицу маршрутизации, необходимо чтобы указанный next-hop был доступен. Проверка доступности next-hop фактически заставляет маршрутизатор дважды просматривать таблицу маршрутизации для того чтобы определить доступность пришедшего маршрута — это и называется рекурсивной маршрутизацией. Для того чтобы проверка доступности next-hop была пройдена, необходимо чтобы в IGP протоколе, который работает в локальной автономной системе, был маршрут к этому next-hop.
Если next-hop для определенного маршрута не доступен, то этот маршрут будет сохранен в таблице BGP, но он не может быть помещён а таблицу маршрутизации.
[править] Изменение AD
Изменение значений AD для всех маршрутов:
dyn3(config-router)# distance bgp <external-distance> <internal-distance> <local-distance>
|
Новое значение AD применяется только для маршрутов, которые были получены после того как была выполнена команда. |
Настройка значения AD отличного от значения по умолчанию для маршрутов, которые пришли от определенного соседа:
dyn3(config-router)# distance <AD-value> <ip-address> <mask> [access-list]
Параметры команды:
- AD-value — значение AD,
- ip-address — IP-адрес, который используется в команде neighbor для указания соседа,
- access-list — ACL, который указывает для каких маршрутов полученных от соседа установить значение AD (если сеть совпадает с правилом permit, то AD будет изменено).
Пример задания AD 5 для сети 192.168.100.0/24 полученной от соседа 192.168.4.5:
dyn3(config)# ip access-list standard BGP-AD dyn3(config-std-nacl)# permit 192.168.100.0 0.0.0.255 dyn3(config-std-nacl)# exit dyn3(config)# router bgp 65000 dyn3(config-router)# distance 5 192.168.4.5 0.0.0.0 BGP-AD
Значение AD на маршрутизаторе:
dyn3# sh ip protocol Routing Protocol is "bgp 65000" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set IGP synchronization is disabled Automatic route summarization is disabled Redistributing: ospf 1 Neighbor(s): Address FiltIn FiltOut DistIn DistOut Weight RouteMap 192.168.4.5 Maximum path: 1 Routing Information Sources: Gateway Distance Last Update Distance: external 20 internal 200 local 200 Address Wild mask Distance List 192.168.4.5 0.0.0.0 5 BGP-AD
Таблица маршрутизации (получено два маршрута от соседа):
dyn3(config)#do sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set C 192.168.4.0/24 is directly connected, FastEthernet1/0 B 192.168.5.0/24 [200/0] via 192.168.4.5, 00:00:06 O IA 192.168.1.0/24 [110/2] via 192.168.2.1, 09:16:36, FastEthernet0/0 C 192.168.2.0/24 is directly connected, FastEthernet0/0 B 192.168.100.0/24 [5/0] via 192.168.4.5, 00:00:06 O E1 192.168.3.0/24 [110/22] via 192.168.2.1, 09:16:36, FastEthernet0/0
[править] Добавление eBGP-маршрутов в таблицу маршрутизации
Маршрут eBGP будет добавлен в таблицу маршрутизации, если:
- маршрут выбран в таблице BGP как лучший маршрут,
- AD маршрута меньше, чем AD других источников аналогичного маршрута.
[править] backdoor маршруты
Команда network backdoor влияет на маршруты eBGP таким образом:
- Для указанной сети маршрутизатор будет использовать значение local AD (по умолчанию 200) для маршрутов полученных по eBGP
- Маршрутизатор не будет анонсировать указанную сеть по BGP
dyn3(config-router)# network <network> backdoor
[править] Добавление iBGP-маршрутов в таблицу маршрутизации
Маршрут iBGP будет добавлен в таблицу маршрутизации, если:
- маршрут выбран в таблице BGP как лучший маршрут,
- AD маршрута меньше, чем AD других источников аналогичного маршрута.
[править] Синхронизация BGP
Правило синхронизации:
- iBGP маршрут считается лучшим в таблице BGP, только если он был выучен по протоколу IGP и находится в таблице маршрутизации. Или, другими словами: не использовать или не анонсировать внешним соседям маршрут, выученный по iBGP, до тех пор пока соответствующий маршрут не будет выучен от IGP. По умолчанию выключено.
Включить синхронизацию BGP:
dyn3(config-router)# synchronization
|
Для OSPF кроме синхронизации маршрутов должно выполняться ещё одно правило:
|
Синхронизация может быть выключена в тех случаях когда все маршрутизаторы в транзитной зоне работают в full mesh iBGP. Если синхронизация выключена, то все маршруты внутри автономной системы должны передаваться с помощью iBGP.
Для обхода правила, которое требует чтобы между iBGP-маршрутизаторами в автономной системе было полносвязное соединение, используется два механизма:
- Конфедерации (confederation)
- Route reflectors
Как правило, синхронизация не включается. При включенном правиле синхронизации все маршруты BGP должны быть получены и по протоколу IGP. То есть, должно быть настроено перераспределение маршрутов BGP в протокол IGP.
[править] Конфедерации (confederation)
Создание конфедерации позволяет:
- избежать необходимости создания полносвязной топологии между всеми iBGP-соседями,
- всем iBGP-соседям выучить все iBGP-маршруты в AS,
- предотвратить образование петель.
При использовании конфедераций BGP, автономная система разбивается на подавтономные системы (sub-AS). Маршрутизаторы, которые находятся в одной sub-AS называются confederation iBGP-соседи, а маршрутизаторы в разных sub-AS называются confederation eBGP-соседи.
Правила работы маршрутизаторов в конфедерации:
- iBGP-соседи в конфедерации должны быть соединены в полносвязную топологию (full mesh). Они, как и обычные iBGP-соседи, не передают iBGP-маршруты друг другу.
- eBGP-соседи в конфедерации:
- как и eBGP-соседи анонсируют iBGP-маршруты выученные внутри sub-AS конфедерации в другую sub-AS,
- как и eBGP-соседи по умолчанию используют для пакетов TTL 1 (изменяется neighbor ebgp-multihop),
- во всех остальных случаях работают как обычные iBGP-соседи (например, next-hop по умолчанию не изменяется).
- Внутри конфедераций для предотвращения петель используется атрибут AS Path. Маршрутизаторы, которые находятся в конфедерации добавляют в атрибут сегменты AS_CONFED_SEQ и AS_CONFED_SET.
- Когда маршрутизатор выбирает лучший маршрут на основании атрибута AS Path, номера автономных систем конфедераций не учитываются.
- Когда обновление отправляется маршрутизатору, который не находится в конфедерации, то номера конфедераций удаляются.
[править] Пример настройки конфедерации
Схема сети:
Конфигурация BGP на dyn1:
router bgp 65001 no synchronization bgp log-neighbor-changes bgp confederation identifier 500 bgp confederation peers 65035 network 192.168.1.0 network 192.168.2.0 neighbor 192.168.1.2 remote-as 402 neighbor 192.168.2.3 remote-as 65035 no auto-summary
Конфигурация BGP на dyn3:
router bgp 65035 no synchronization bgp log-neighbor-changes bgp confederation identifier 500 bgp confederation peers 65001 network 192.168.2.0 network 192.168.4.0 neighbor 192.168.2.1 remote-as 65001 neighbor 192.168.4.5 remote-as 65035 no auto-summary
Конфигурация BGP на dyn5:
router bgp 65035 no synchronization bgp log-neighbor-changes bgp confederation identifier 500 bgp confederation peers 65001 network 192.168.4.0 network 192.168.5.0 network 192.168.100.0 neighbor 192.168.4.3 remote-as 65035 neighbor 192.168.5.6 remote-as 406 no auto-summary
Конфигурация BGP на qua6:
router bgp 406 bgp router-id 192.168.5.6 network 192.168.5.0/24 neighbor 192.168.5.5 remote-as 500
[править] Просмотр информации
Таблица BGP на маршрутизаторе dyn1, который находится внутри конфедерации (в скобках в столбце атрибута AS Path указана sub-AS):
dyn1# sh ip bgp BGP table version is 6, local router ID is 192.168.2.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * 192.168.1.0 192.168.1.2 0 0 402 i *> 0.0.0.0 0 32768 i * 192.168.2.0 192.168.2.3 0 100 0 (65035) i *> 0.0.0.0 0 32768 i *> 192.168.4.0 192.168.2.3 0 100 0 (65035) i *> 192.168.5.0 192.168.4.5 0 100 0 (65035) i *> 192.168.100.0 192.168.4.5 0 100 0 (65035) i
Таблица BGP на маршрутизаторе qua2, который находится за пределами конфедерации (за пределами конфедерации не видны номера sub-AS):
qua2# sh ip bgp BGP table version is 0, local router ID is 192.168.1.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, R Removed Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 0.0.0.0 0 32768 i * 192.168.1.1 0 0 500 i *> 192.168.2.0 192.168.1.1 0 0 500 i *> 192.168.4.0 192.168.1.1 0 500 i *> 192.168.5.0 192.168.1.1 0 500 i *> 192.168.100.0 192.168.1.1 0 500 i Total number of prefixes 5
Более подробная информация о маршруте внутри конфедерации:
dyn3# sh ip bgp 192.168.100.0 BGP routing table entry for 192.168.100.0/24, version 8 Paths: (1 available, best #1, table Default-IP-Routing-Table) Advertised to update-groups: 1 Local 192.168.4.5 from 192.168.4.5 (192.168.100.1) Origin IGP, metric 0, localpref 100, valid, confed-internal, best
Более подробная информация о маршруте вне конфедерации:
dyn3# sh ip bgp 192.168.1.0 BGP routing table entry for 192.168.1.0/24, version 2 Paths: (1 available, best #1, table Default-IP-Routing-Table) Advertised to update-groups: 2 (65001) 192.168.2.1 from 192.168.2.1 (192.168.2.1) Origin IGP, metric 0, localpref 100, valid, confed-external, best
[править] Route reflectors
Route reflectors (RR) как и конфедерация позволяет:
- избежать необходимости создания полносвязной топологии между всеми iBGP-соседями,
- всем iBGP-соседям выучить все iBGP-маршруты в AS,
- предотвратить образование петель.
При использовании 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 немного изменяются:
- Первые шаги, в которых учитываются атрибуты weight, local preference, origin и MED — остаются без изменений,
- Если все предыдущие параметры одинаковы, то маршруты полученные от EBGP-соседей предпочтительней, чем маршруты полученные от IBGP-соседей,
- Выбрать путь через ближайшего IGP-соседа
- Выбрать путь через соседа с наименьшим BGP router ID. Если у префикса есть атрибут Originator ID, то вместо router ID сравнивается Originator ID.
- Reflected-маршруты с более коротким cluster-list предпочтительнее (длина cluster-list равна нулю, если маршрут без атрибута cluster-list),
- Выбрать путь через соседа с наименьшим IP-адресом
[править] Пример настройки RR
Схема сети:
На маршрутизаторах, которые выполняют роль клиентов никаких отличий в настройках 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
[править] Изменение атрибутов пути
[править] Weight
dyn(config-router)# neighbor <ip-address | peer-group-name> weight <weight>
Изменение weight с помощью route-map:
route-map <name> permit <sequence> match <condition> set weight <weight>
Применение route-map:
router bgp 65000 neighbor <ip-address> route-map <name> in
[править] Local preference
По умолчанию значение local preference 100. Для того чтобы изменить значение по умолчанию можно использовать два варианта: команду bgp default local-preference или route-map.
Команда bgp default local-preference применяется для маршрутов в которых не установлено значение local preference:
- маршрутов полученных от eBGP-соседей,
- локальных маршрутов.
Изменение значения по умолчанию local preference:
dyn3(config-router)# bgp default local-preference <0-4294967295>
Все маршруты iBGP будут анонсироваться с новым значением local preference.
Изменение local preference с помощью route-map:
route-map <name> permit <sequence> match <condition> set local-preference <value>
Применение route-map:
router bgp 65000 neighbor <ip-address> route-map <name> in | out
[править] Next-hop
Изменение атрибута next-hop зависит от того какому соседу анонсируется маршрут — iBGP или eBGP:
- по умолчанию, когда маршрут анонсируется eBGP-соседу, атрибут next-hop меняется на IP-адрес маршрутизатора, который анонсирует маршрут;
- по умолчанию, когда маршрут анонсируется iBGP-соседу, атрибут next-hop не изменяется.
Изменение поведения по умолчанию атрибута next-hop для iBGP-соседа — все обновления для соседа отправлять с указанием в качестве next-hop локального маршрутизатора:
dyn3(config-router)# neighbor <ip-address | peer-group-name> next-hop-self
Изменение поведения по умолчанию атрибута next-hop для eBGP-соседа — все обновления для соседа отправлять без изменения атрибута next-hop:
dyn3(config-router)# neighbor <ip-address | peer-group-name> next-hop-unchanged
[править] AS path
set as-path prepend
[править] Origin
Атрибут Origin:
Значение Origin | Код в таблице BGP | Используется если маршрут введен с использованием следующих команд |
---|---|---|
IGP | i |
|
EGP | e | Маршрут был выучен по протоколу EGP. Специфических команд нет |
Incomplete | ? |
|
Атрибут Origin может быть изменен в route-map. Параметр set origin позволяет указать какое значение атрибута будет у маршрутов совпадающих с критериями route-map:
dyn1(config-route-map)# set origin ? egp remote EGP igp local IGP incomplete unknown heritage
[править] MED
Атрибут MED используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный.
MED считается "слабым" атрибутом, так как для того чтобы он повлиял на выбор маршрута необходимо чтобы атрибуты Weight, local preference, AS-path и origin code были с одинаковым значением.
Особенности атрибута в IOS:
- Атрибут MED в IOS называется метрикой (metric).
- По умолчанию для маршрутизаторов Cisco равен 0.
- По умолчанию атрибут MED не передается с маршрутами, так как это не обязательный атрибут.
- Исключение из этого правила: маршруты, которые анонсируются локальным маршрутизатором (с помощью команды network или перераспределения маршрутов), и для которых есть полное совпадение в таблице маршрутизации. В таком случае маршрутизатор использует метрику в таблице маршрутизации как атрибут MED.
Изменение атрибута MED для перераспределенных маршрутов:
dyn(config-router)# default-metric <1-4294967295>
Изменение MED с помощью route-map:
route-map <name> permit <sequence> match <condition> set metric <value>
Применение route-map:
router bgp 65000 neighbor <ip-address> route-map <name> in | out
Если необходимо указать определенное значение атрибута MED для всех маршрутов связанных с определенным соседом, то необходимо использовать route-map без критериев match.
[править] bgp always-compare-med
По умолчанию атрибут MED проверяется только при сравнении маршрутов из одной и той же AS. Команда always-compare-med меняет это поведение. После её задания, атрибут сравнивается и для маршрутов пришедших с разных AS. Такое поведение необходимо настроить на всех маршрутизаторах в AS. Иначе могут возникнуть петли.
Настройка always-compare-med:
dyn(config-router)# bgp always-compare-med
[править] bgp bestpath med missing-as-worst
В Cisco IOS если MED не указан для маршрута, то он считается равным 0 и, соответственно, считается лучшим значением MED. Команда med missing-as-worst позволяет указать, что, при отсутствии атрибута MED в маршруте, он будет равным 4294967295 (самым худшим).
Настройка такого поведения:
dyn1(config-router)# bgp bestpath med missing-as-worst
[править] Пример изменения MED
Пример таблицы BGP до изменения поведения:
Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 0.0.0.0 0 32768 i *>i192.168.6.0 192.168.7.8 0 200 0 8 67 i * 192.168.20.8 0 9 8 67 i * 192.168.20.8 0 8 67 i r>i192.168.7.0 192.168.7.8 0 200 0 8 67 i r 192.168.20.8 0 9 8 67 i r 192.168.20.8 0 8 67 i
Пример таблицы BGP после задания med missing-as-worst:
Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 0.0.0.0 0 32768 i *>i192.168.6.0 192.168.7.8 0 200 0 8 67 i * 192.168.20.8 4294967295 0 9 8 67 i * 192.168.20.8 4294967295 0 8 67 i r>i192.168.7.0 192.168.7.8 0 200 0 8 67 i r 192.168.20.8 4294967295 0 9 8 67 i r 192.168.20.8 4294967295 0 8 67 i
[править] bgp bestpath med confed
По умолчанию атрибут MED проверяется только при сравнении маршрутов из одной и той же AS. Для того чтобы MED учитывался для маршрутов из конфедерации, необходимо задать команду med confed
dyn1(config-router)# bgp bestpath med confed
[править] bgp deterministic-med
Команда bgp deterministic-med изменяет процесс выбора лучшего пути. После включения команды, значение атрибута MED будет проверяться сразу после проверки AS-path. До сравнения типов маршрутов BGP (internal или external) и метрики IGP до next-hop адресов.
dyn3(config-router)# bgp deterministic-med
[править] Community
Изменение формата community с 32битного числа на пару 16битных чисел:
dyn(config)# ip bgp-community new-format
По умолчанию community отбрасываются в исходящих обновлениях BGP. Даже если community указывались в соответствующей исходящей route-map. Для того чтобы изменить это, необходимо явно настроить отправку community соседям:
dyn(config-router)# neighbor <ip-address> send-community
[править] Community internet
В Cisco, кроме well-known значений community, используется также специальное значение internet. Для этого используется значение 0:0.
Community internet используется для обозначения всех маршрутизаторов, так как все маршрутизаторы принадлежат этой community. Например, если в community-list необходимо разрешить все community, кроме одного определенного значения, то permit internet будет использоваться как permit all в ACL.
Пример:
ip community-list 1 deny 100:37 ip community-list 1 permit internet
[править] community-list
Стандартный community-list:
dyn(config)# ip community-list <1-99> <permit | deny> <value>
Особенности стандартного community-list:
- Для того чтобы указать совпадение со всеми community необходимо использовать ключевое слово internet.
- Если в правиле ip community-list указано несколько значений community, то они все должны быть в пришедшем маршруте для того чтобы было совпадение с правилом.
- Если совпадений в community-list не нашлось, то маршрут будет запрещен неявным правилом (как в ACL).
Расширенный community-list:
dyn(config)# ip community-list <100-199> <permit | deny> <regexp>
Особенности расширенного community-list:
- Community присоединенные к маршруту упорядочиваются, конвертируются в строки и сравниваются с регулярными выражениями.
- Для того чтобы указать совпадение со всеми community необходимо использовать регулярное выражение ".*".
Именованный community-list:
dyn(config)# ip community-list <standard|expanded> <name> <permit|deny> <value|regexp>
[править] Community в route-map
Использование community как критерия совпадения в route-map:
route-map <name> permit <sequence> match community <list-name|list-number> [exact]
Удаление community из входящих или исходящих обновлений BGP:
route-map <name> permit <sequence> set comm-list <list-name|list-number> delete
[править] Управление маршрутами
[править] Порядок применения фильтров в BGP
К обновлениям, которые приходят от соседей или отправляются им, могут быть применены несколько фильтров. Порядок применения фильтров указан ниже.
Если к соседу применены несколько фильтров в одном направлении, то все фильтры должны разрешить обновление, чтобы оно прошло. |
Для входящих обновлений:
- route-map
- filter-list
- prefix-list, distribute-list
Для исходящих обновлений:
- prefix-list, distribute-list
- filter-list
- route-map
Если фильтр применен к соседу, но не создан в конфигурации, то по умолчанию:
- Distribute list и prefix list пропустят любое обновление
- Filter list и route map запретят обновление
|
Фильтры prefix-list и distribute-list взаимоисключающие. Только один из них может быть применен в каждом направлении (входящем и исходящем) для конкретного соседа. |
На сайте cisco.com и сайте ine.com указан такой порядок:
Для входящих обновлений:
- route-map
- filter-list
- prefix-list, distribute-list
Для исходящих обновлений:
- prefix-list, distribute-list
- filter-list
- route-map
В книге BGP design and implementation такой порядок:
Для входящих обновлений:
- filter-list
- route-map
- prefix-list, distribute-list
Для исходящих обновлений:
- prefix-list, distribute-list
- prefix-list ORF
- filter-list
- route-map
В методичке к курсу BGP 3.2 порядок явно не задан, нарисован лишь схематически:
Для входящих обновлений:
- prefix-list, distribute-list
- filter-list
- route-map
Для исходящих обновлений:
- route-map
- filter-list
- prefix-list, distribute-list
В тексте указан отличающийся порядок для исходящих обновлений:
- filter-list
- prefix-list, distribute-list
- route-map
При проверке на практике получились ещё более интересные результаты. Порядок то был как на сайте cisco.com, то немного менялся в зависимости от того, какой был тест. При случае проверю ещё раз, свои результаты даже не записывала, так как получилось по-разному.
Поэтому если Вы хотите изменить порядок, то напишите, пожалуйста, на странице обсуждения где Вы это прочитали. Или какие тесты проводили и какой они дали результат. Иначе я вынуждена буду вернуть порядок в прежнее состояние (как на сайте cisco.com).
Однако, так как к обновлениям будут применены все фильтры, то порядок становится менее критичным. В итоге все фильтры должны разрешить обновление, чтобы оно прошло.
[править] Фильтрация маршрутов по AS path
Фильтрация маршрутов по AS path может использоваться в таких случаях:
- Клиент подключен к двум провайдерам, у него настроен BGP, и необходимо фильтровать трафик таким образом, чтобы провайдерам анонсировались только сети клиента. Необходимо избежать ситуации, когда клиент может стать транзитной AS из-за того, что он анонсирует сети провайдеров друг другу. В этом случае правилом может быть: анонсировать только сети с пустым значением AS path (локальные сети клиента).
- Для того чтобы повлиять на выбор лучшего маршрута, например, от конкретного соседа. Можно указывать какие номера автономных систем должны или не должны встречаться в маршруте.
- Если необходимо повлиять на выбор пути в локальную автономную систему из других автономных систем. Может применяться AS prepending — добавление AS в атрибуте AS path.
Отобразить маршруты, которые совпадают с указанным регулярным выражением:
dyn# show ip bgp regexp <regexp>
Создание фильтра:
dyn(config)# ip as-path access-list 1 <permit | deny> regexp
Пример настройки фильтра:
dyn(config)# ip as-path access-list 1 permit ^8_ dyn(config)# ip as-path access-list 1 permit _67_
Отобразить все настроенные фильтры или конкретный фильтр:
dyn# show ip as-path-access-list [number]
Отобразить маршруты, которые совпадают с указанным фильтром:
dyn# show ip bgp filter-list
Применение фильтра:
dyn(config-router)# neighbor <ip-address | peer-group-name> filter-list <acl-number> <in | out>
[править] Регулярные выражения
Символы, которые используются в регулярных выражениях:
- . любой символ, включая пробел
- * ноль или больше совпадений с выражением
- + одно или больше совпадений с выражением
- ? ноль или одно совпадение с выражением
- ^ начало строки
- $ конец строки
- _ любой разделитель (включая, начало, конец, пробел, табуляцию, запятую)
- \ не воспринимать следующий символ как специальный
- [] совпадение с одним из символов в диапазоне
- | логическое или
Примеры регулярных выражений:
- _67_ маршруты проходящие через AS 67
- ^67$ маршруты из непосредственно присоединенной AS 67
- _67$ маршруты отправленные из AS 67
- ^67_ сети находящиеся за AS 67
- ^$ маршруты локальной AS
- .* любая строка
[править] Пример тестирования регулярного выражения
Для того чтобы проверить отработает ли регулярное выражение так, как предполагалось, можно выполнить команду:
dyn# show ip bgp regexp <regexp>
Например, есть такая таблица BGP:
dyn1# sh ip bgp BGP table version is 9, local router ID is 197.1.8.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 100.67.67.0/24 192.168.20.8 0 8 67 i *> 100.78.78.0/24 192.168.20.8 0 8 67 i *> 100.100.6.0/24 192.168.20.8 0 8 67 i *> 192.168.1.0 0.0.0.0 0 32768 i r> 192.168.20.0 192.168.20.8 0 0 8 i *>i192.168.21.0 197.1.6.1 0 100 0 5 i *> 197.1.0.0/16 0.0.0.0 0 32768 i
Проверить как отработает регулярное выражение ^8_ (сети, которые находятся за автономной системой 8)
dyn1# sh ip bgp regexp ^8_ BGP table version is 9, local router ID is 197.1.8.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 100.67.67.0/24 192.168.20.8 0 8 67 i *> 100.78.78.0/24 192.168.20.8 0 8 67 i *> 100.100.6.0/24 192.168.20.8 0 8 67 i r> 192.168.20.0 192.168.20.8 0 0 8 i
Проверка регулярного выражения _67_ (маршруты проходящие через автономную систему 67):
dyn1# sh ip bgp regexp _67_ BGP table version is 9, local router ID is 197.1.8.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 100.67.67.0/24 192.168.20.8 0 8 67 i *> 100.78.78.0/24 192.168.20.8 0 8 67 i *> 100.100.6.0/24 192.168.20.8 0 8 67 i
[править] Пример проверки работы фильтра
Например, на маршрутизаторе настроен такой фильтр:
dyn1# show ip as-path-access-list 1 AS path access list 1 permit ^8_ permit _67_
Отобразить маршруты, которые совпадают с фильтром 1 (используется тот же маршрутизатор, что и в предыдущем примере):
dyn1# show ip bgp filter-list 1 BGP table version is 9, local router ID is 197.1.8.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 100.67.67.0/24 192.168.20.8 0 8 67 i *> 100.78.78.0/24 192.168.20.8 0 8 67 i *> 100.100.6.0/24 192.168.20.8 0 8 67 i r> 192.168.20.0 192.168.20.8 0 0 8 i
[править] Distribute list
dyn3(config-router)# distribute-list <acl> out
Сети разрешенные в acl, будут перераспределены.
[править] Prefix list
В каждом prefix list может быть несколько команд prefix-list, каждой из которых присвоен порядковый номер. Когда маршрутизатор обрабатывает prefix list, он просматривает все команды в соответствии с порядковыми номерами команд. Каждой команде соответствует действие permit или deny.
Синтаксис команды:
ip prefix-list <list-name> [seq <value>] <deny|permit> <network/length> [ge <value>] [le <value>]
Объяснение логики команды prefix-list на примере сети 10.0.0.0/8:
- ip prefix-list 1 permit 10.0.0.0/8 — только сеть 10.0.0.0/8,
- ip prefix-list 1 permit 10.0.0.0/8 le 11 — маршруты у которых первый октет 10, и префикс от 8 до 11,
- ip prefix-list 1 permit 10.0.0.0/8 ge 11 — маршруты у которых первый октет 10, и префикс от 11 до 32,
- ip prefix-list 1 permit 10.0.0.0/8 ge 11 le 13 — маршруты у которых первый октет 10, и префикс от 11 до 13.
[править] Применение prefix list
Фильтрует входящие или исходящие обновления BGP для указанного соседа:
dyn(config-router)# neighbor <ip-address | peer-group-name> prefix-list <list-name> <in|out>
Фильтрует маршруты перераспределенные из указанного процесса маршрутизации в BGP:
dyn(config-router)# distribute-list prefix-list <list-name> out <routing-process>
[править] Outbound route filtering
Outbound route filtering (ORF) — функциональность BGP, которая позволяет маршрутизаторам обмениваться информацией о настроенных фильтрах обновлений BGP. Если оба маршрутизатора поддерживают эту функциональность и соответственно настроены, то они могут обмениваться информацией о том, какие фильтры у них настроены.
Возможности ORF:
- Использует BGP ORF send и receive capabilities для уменьшения количества обновлений BGP, которые отправляются соседям.
- Помогает уменьшить затрату системных ресурсов, которые необходимы для генерирования и обработки обновлений, фильтруя эти обновления на источнике.
- Уменьшает количество ненужных обновлений BGP.
dyn(config-router)# neighbor <ip-address> capability orf prefix-list <receive|send|both>
router# show ip bgp neighbor <ip-address> received prefix-filter
[править] Карты маршрутов (route maps)
В каждой route map может быть несколько команд route-map, каждой из которых присвоен порядковый номер. Когда маршрутизатор обрабатывает route map, он просматривает все команды в соответствии с порядковыми номерами команд.
В каждой команде route-map указано действие permit или deny. Кроме того, с помощью команды match указываются параметры которые должны быть у маршрута для того чтобы он совпал с правилом. Для того чтобы указать весь трафик, в команде route-map просто не надо указывать команду match.
Если после параметра match идет несколько опций, то к ним применяется логика или, то есть должен совпасть один из перечисленных параметров. Если задано несколько параметров match в отдельных строках, то к ним применяется логика и, то есть должны совпасть все параметры.
В каждой команде route-map может быть одна или более команд set, которые используются для изменения каких-либо параметров проходящих маршрутов.
Route map позволяет фильтровать маршруты при перераспределении и изменять различные атрибуты маршрутов.
Пример изменения значения атрибута origin для сетей разрешенных в ACL 101:
dyn(config)# route-map NEW_Origin permit dyn(config-route-map)# match ip address 101 dyn(config-route-map)# set origin igp
[править] Route-map Policy list
[править] Route-map continue
[править] Применение изменений в настройках политик BGP
Три способа инициировать отправку обновлений:
- Hard reset
- Soft reset
- Обновление маршрутов (route refresh)
[править] Hard reset
Hard reset:
dyn3# clear ip bgp *
Результат выполнения команды clear ip bgp *:
- Сброс всех BGP-соединений с этим маршрутизатором
- Очищается таблица BGP
- Сессии BGP переходят из состояния established в состояние idle
- Вся информация должна быть заново выучена (сосед должен её заново отправить)
Hard reset для соседа:
dyn3# clear ip bgp <neighbor-address>
Результат выполнения команды clear ip bgp <neighbor>:
- Сброс BGP-соединений только с соседом
- Сессия BGP, установленная с этим соседом, переходит из состояния established в состояние idle
- Вся информация от соседа должна быть заново выучена
[править] Soft reset
Soft reset — методы, которые позволяют обновить политики BGP не разрывая сессию с соседом.
[править] Outbound soft reset
Soft reset outbound (параметр soft необязательный, без его указания, команда clear ip bgp out, выполняет те же действия):
dyn3# clear ip bgp <neighbor-address> [soft] out
Результат выполнения команды clear ip bgp <neighbor-address> soft out:
- Маршруты выученные от указанного соседа не теряются
- Версия таблицы (table version number) для соседа выставляется равной 0. При наступлении следующего интервала для отправки обновлений, маршрутизатор проверяет таблицу BGP и отправляет соседу все маршруты, так как у них версия больше чем ноль
- Локальный маршрутизатор отправляет заново всю информацию BGP соседу, не разрывая соединения
- Соединение не разрывается
- Это команда нужна для случаев, когда обновляется исходящая политика
- При изменении входящей политики, команда soft out не помогает
Какие маршруты анонсируются указанному соседу:
dyn3# show ip bgp neighbors <neighbor-address> advertised-routes
[править] Inbound soft reset
Выполнение inbound soft reset:
- Сохранить обновления полученные от соседа — команда neighbor <neighbor-address> soft-reconfiguration inbound
- Изменить входящую политику
- Заново сгенерировать обновления на локальном маршрутизаторе — команда clear ip bgp <neighbor-address> soft in
Вместо этой функции лучше использовать Dynamic inbound soft reset. |
Сохранение всех обновлений полученных от указанного соседа:
dyn3(config-router)# neighbor <neighbor-address> soft-reconfiguration inbound
Результат выполнения команды neighbor soft-reconfiguration inbound:
- Локальный маршрутизатор сохраняет все обновления полученные от указанного соседа
- Применяется в случаях изменения входящей политики
Отобразить маршруты полученные от соседа и сохраненные в результате выполнения inbound soft reconfiguration:
dyn3# show ip bgp neighbours <neighbor-address> received-routes
После того как входящая политика была изменена, необходимо заново отправить обновления от этого соседа для применения политики. Маршрутизатор использует сохраненную информацию для того чтобы сгенерировать обновления от указанного соседа.
Inbound soft reset (параметр soft необязательный, без его указания, команда clear ip bgp in, выполняет те же действия):
dyn3# clear ip bgp <neighbor-address> [soft] in
Результат выполнения команды clear ip bgp <neighbor-address> [soft] in (после сохранения обновлений от соседа):
- Локальный маршрутизатор использует сохраненную информацию для того чтобы сгенерировать обновления от указанного соседа
- Сосед не отправляет обновления, все обновления генерируются заново локально
[править] Inbound и outboung soft reset
Одновременный soft reset для входящих и исходящих обновлений:
dyn3# clear ip bgp <neighbor-address> soft
[править] Обновление маршрутов (route refresh) или Dynamic inbound soft reset
Обновление маршрутов (route refresh) — улучшенный механизм inbound soft reset. Другое название — Dynamic inbound soft reset. Маршрутизатор отправляет соседу запрос на повторную отправку всех маршрутов. При этом не происходит разрыва сессии с соседом. По сравнению с inbound soft reset, когда требовалось сохранить все маршруты полученные от соседа, этот метод требует меньшей затраты ресурсов маршрутизатора.
Для использования route refresh, оба маршрутизатора должны поддерживать эту функцию. Информация о поддержке функции анонсируется в сообщениях Open.
Обновление маршрутов (команда улучшает механизм inbound soft reset):
dyn3# clear ip bgp <neighbor-address> in
Результат выполнения команды clear ip bgp <neighbor-address> in:
- Маршруты отправленные соседу не убираются
- Соединение не разрывается
- Обновления не сохраняются локально
- Сосед заново отправляет маршруты
- Обновляет маршруты от соседа в таблице маршрутизации
[править] Просмотр информации
Просмотр краткой информации о соседях:
dyn3# show ip bgp summary
Таблица BGP:
dyn3# show ip bgp
Отобразить маршруты в таблице BGP, которые начинаются на 192.168.0.0:
dyn3# show ip bgp 192.168.0.0/16 longer-prefixes
Подробная информация о маршрутах к определенной сети:
dyn3# show ip bgp 192.168.1.0 mask 255.255.255.0
Маску можно указывать в формате CIDR:
dyn3# show ip bgp 192.168.1.0/24
Указывает какие сети не были помещены в RIB (routing information base) и почему они не были туда помещены:
dyn3# show ip bgp rib-failure
[править] Информация о соседях
Детальная информация о соседях:
dyn3# show ip bgp neighbors
Какие маршруты были получены от соседа:
dyn3# show ip bgp neighbours A.B.C.D routes
Отобразить маршруты полученные от соседа и сохраненные в результате выполнения inbound soft reconfiguration:
dyn3# show ip bgp neighbours A.B.C.D received-routes
|
Для того чтобы можно было просмотреть какие маршруты были получены от соседа, надо чтобы для этого соседа была выполнена команда neighbor <neighbor-id> soft-reconfiguration inbound. |
Какие маршруты анонсируются указанному соседу:
dyn3# show ip bgp neighbors A.B.C.D advertised-routes
[править] Отображение маршрутов с определенной AS в AS Path
Пример таблицы BGP на маршрутизаторе:
dyn5# sh ip bgp BGP table version is 5, local router ID is 192.168.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i192.168.1.0 192.168.2.1 0 100 0 i *>i192.168.2.0 192.168.4.3 0 100 0 i * i192.168.4.0 192.168.4.3 0 100 0 i *> 0.0.0.0 0 32768 i * 192.168.5.0 192.168.5.6 0 0 406 i *> 0.0.0.0 0 32768 i
Показать маршруты у которых в AS Path встречается ASN 406:
dyn5#sh ip bgp regexp 406 BGP table version is 5, local router ID is 192.168.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * 192.168.5.0 192.168.5.6 0 0 406 i
[править] Команды отладки (debug)
dyn# debug ip tcp transactions
dyn# debug ip bgp events
dyn# debug ip bgp keepalives
Информация об обновлениях BGP:
dyn# debug ip bgp updates
Отобразить все входящие и исходящие обновления для маршрутов совпадающих с ACL:
dyn# debug ip bgp updates <acl>
Отобразить все обновления полученные от или отправленные соседу (можно добавлять ACL):
dyn# debug ip bgp <ip-address> updates [acl]
[править] Разное
По умолчанию маршрутизатор отбрасывает обновление BGP, если видит в AS path номер своей автономной системы. Однако, можно разрешить маршрутизатору нарушать это правило:
dyn(config-router)# neighbor 199.1.1.1 allowas-in
[править] BGP policy accounting
[править] Сходимость BGP
Процессы BGP:
- BGP open
- BGP I/O
- BGP Scanner - проходит по таблице BGP и проверяет доступность next-hop. Проверяет condition advertisement. Выполняет route dampening. Запускается каждые 60 секунд.
- BGP Router
Фильтр для просмотра информации о процессах связанных с BGP:
dyn1# show processes cpu | include BGP 175 119076 2804506 42 0.00% 0.00% 0.00% 0 BGP Router 176 140408 163366 859 0.00% 0.00% 0.00% 0 BGP I/O 177 2982572 90228 33055 0.00% 0.55% 0.31% 0 BGP Scanner
[править] Конфигурационные файлы маршрутизаторов dyn1, dyn3, dyn5
Конфигурационные файлы на странице BGP/config.
[править] Дополнительная информация
- BGP Best Path Selection Algorithm
- Load Balancing in BGP Networks
- BGP Case Studies
- Using the BGP for Interdomain Routing
- Understanding Route Aggregation in BGP
- Cisco IOS IP Routing Protocols Command Reference
- Cisco IOS IP Routing Protocols Configuration Guide, Release 12.4
|
---|