Протокол IP : Протокол BGP

Настройка и проверка функции условных извещений BGP

5 апреля 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Перевод, выполненный профессиональным переводчиком (10 февраля 2011) | Английский (22 августа 2015) | Отзыв


Содержание


Введение

Функция условного объявления для протокола BGP обеспечивает дополнительный контроль за объявлениями маршрутов в зависимости от существования других префиксов в таблице BGP.

Предварительные условия

Требования

Для применения этой конфигурации необходимо предварительно ознакомиться со следующими материалами:

Используемые компоненты

Характеристика условных извещений BGP, описанная в этом документе, была представлена в Cisco Выпуск ПО IOS� 11.1CC и 11.2 и доступна в более поздних версиях.

Сведения, содержащиеся в данном документе, касаются следующих версий программного и аппаратного обеспечения:

  • Cisco выпуск ПО IOS� 12.2 (13) T13

  • Маршрутизаторы Cisco серии 2500

Сведения, представленные в этом документе, были получены от устройств, работающих в специальной лабораторной среде. Все устройства, описанные в этом документе, были запущены с чистой (стандартной) конфигурацией. В рабочей сети необходимо изучить потенциальное воздействие всех команд до их использования.

Теоретические сведения

Обычно маршруты распространяются независимо от наличия другого пути. Функция условного объявления BGP отслеживает маршруты по префиксам маршрутов, используя ключевые слова non-exist-map и advertise-map команды neighbor advertise-map. Если префикс маршрута отсутствует в выходных данных команды non-exist-map, то объявляется маршрут, заданный командой advertise-map. Эта возможность полезна для сетей с несколькими интерфейсами, в которых некоторые префиксы объявляются одному из поставщиков услуг, только если отсутствуют сведения от другого поставщика (что указывает на сбой в одноранговом сеансе или частичную доступность).

Условные объявления BGP отправляются в дополнение к нормальным объявлениям, которые маршрутизатор BGP отправляет своим партнерам.

Условные обозначения

Дополнительные сведения об условных обозначениях см. в документе Технические рекомендации Cisco. Условные обозначения.

Настройка

В этом разделе содержатся сведения о настройке функций, описанных в этом документе.

Примечание: Для получения дополнительной информации о командах, встречающихся в этом документе, используйте средство поиска команд

Схема сети

В этом документе используются настройки сети, показанные на данной диаграмме.

Здесь для объявления сети 192.168.50.0/24 маршрутизатору R102 используется кольцевой интерфейс R103. У маршрутизатора R102 есть сеть BGP 128.16.16.0/24, которая по умолчанию объявляется обеим внешним сторонам BGP (eBGP): R101 и R103.

/image/gif/paws/16137/cond_adv_01.gif

С функцией условного объявления BGP на маршрутизаторе R102 становится возможным решить следующие задачи:

  • Если 192.168.50.0/24 занесена в таблицу BGP для R102, то не нужно объявлять сеть 128.16.16.0/24 для R101.

  • Если 192.168.50.0/24 не занесена в таблицу BGP для R102, то нужно объявить сеть 128.16.16.0/24 для R101.

С Cisco IOS� 12.2T или более поздние версии, ключевое слово существовать-карты может использоваться для выполнения этих задач также:

  • Если 192.168.50.0/24 занесена в таблицу BGP для R102, то нужно объявить сеть 128.16.16.0/24 для R101.

  • Если 192.168.50.0/24 не занесена в таблицу BGP для R102, то не нужно объявлять сеть 128.16.16.0/24 для R101.

Настройка функции условного объявления

Эти конфигурации используются в данном документе:

Примечание: Пример здесь обсуждает ключевое слово non-exist-map. Применение ключевого слова exist-map будет аналогичным.

R102
hostname R102 
! 
interface Loopback0 
 ip address 128.16.16.1 255.255.255.0 
! 
interface Serial8/0 
 ip address 10.10.10.2 255.255.255.0 
! 
interface Serial9/0 
 ip address 10.10.20.2 255.255.255.0 
! 
router bgp 2 
 bgp log-neighbor-changes 
 network 128.16.16.0 mask 255.255.255.0 
 network 130.130.0.0 
 neighbor 10.10.10.1 remote-as 1 
 neighbor 10.10.10.1 advertise-map ADVERTISE non-exist-map NON-EXIST

!--- Advertises the routes matched in the route-map ADVERTISE (128.16.16.0/24)
!--- only if the routes matched in route-map NON-EXIST (192.168.50.0/24) 
!--- do not exist in the BGP table.
 
 neighbor 10.10.20.3 remote-as 3 
! 
ip route 130.130.0.0 255.255.0.0 Null0 
! 
access-list 60 permit 128.16.16.0 0.0.0.255 
access-list 65 permit 192.168.50.0 0.0.0.255 
! 
route-map NON-EXIST permit 10 
 match ip address 65 
!  
route-map ADVERTISE permit 10 
 match ip address 60 
!

R103
hostname R103 
! 
interface Loopback0 
 ip address 192.168.50.1 255.255.255.0 
! 
interface Serial9/0 
 ip address 10.10.20.3 255.255.255.0 
!  
router bgp 3 
 bgp log-neighbor-changes 
 network 192.168.50.0 
 neighbor 10.10.20.2 remote-as 2 
!

R101
hostname R101 
! 
interface Loopback0 
 ip address 200.200.200.1 255.255.255.0 
! 
interface Serial8/0 
 ip address 10.10.10.1 255.255.255.0 
!  
router bgp 1 
 bgp log-neighbor-changes 
 network 200.200.200.0 
 neighbor 10.10.10.2 remote-as 2 
!

Проверка конфигурации

Пример 1

В следующем примере проверяется состояние BGP при нахождении сети 192.168.50.0/24 в таблице BGP для R102:

/image/gif/paws/16137/cond_adv_01.gif

Вначале следует выяснить, присутствует ли сеть 192.168.50.0/24 в таблице BGP маршрутизатора R102:

R102# 
show ip bgp

BGP table version is 6, local router ID is 128.16.16.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 128.16.16.0/24   0.0.0.0                  0         32768 i
*> 130.130.0.0      0.0.0.0                  0         32768 i
*> 192.168.50.0     10.10.20.3               0             0 3 i
*> 200.200.200.0    10.10.10.1               0             0 1 i

Поскольку сеть 192.168.50.0/24 присутствует в таблице BGP R102, маршрутизатор R102 не должен объявлять сеть 128.16.16/24 для R101.

R102# show ip bgp neighbors 10.10.10.1 advertised-routes 
BGP table version is 6, local router ID is 128.16.16.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 130.130.0.0      0.0.0.0                  0         32768 i
*> 192.168.50.0     10.10.20.3               0             0 3 i

!--- Note 128.16.16.0/24 is not advertised to neighbor 10.10.10.1.


R102# show ip bgp 128.16.16.0
BGP routing table entry for 128.16.16.0/24, version 6
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:

!--- This is not advertised to R101.
  
10.10.20.3     
  Local
    0.0.0.0 from 0.0.0.0 (128.16.16.1)
      Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best

Затем проверьте состояние условного объявления на R102:

R102# show ip bgp neighbors 10.10.10.1
BGP neighbor is 10.10.10.1,  remote AS 1, external link
  BGP version 4, remote router ID 200.200.200.1
  BGP state = Established, up for 02:27:07
  Last read 00:00:07, hold time is 180, keepalive interval is 60 seconds

 
!--- Output suppressed.



 For address family: IPv4 Unicast
  BGP table version 6, neighbor version 6
  Index 1, Offset 0, Mask 0x2
  Condition-map NON-EXIST, Advertise-map ADVERTISE, status: Withdraw
  1 accepted prefixes consume 36 bytes
  Prefix advertised 3, suppressed 0, withdrawn 1
  Number of NLRIs in the update sent: max 1, min 0


!--- Output suppressed.



{\f3 В приведенных выходных данных видно, что условное объявление отозвано (withdrawn) и что сети, соответствующие карте маршрутов ADVERTISE, не объявляются другой стороне BGP }–{\f3 10.10.10.1.}

Чтобы убедиться в том, что маршруты, соответствующие карте маршрутов ADVERTISE, не объявляются для R101, проверьте таблицу BGP на R101:

R101# show ip bgp 128.16.16.0
% Network not in table

Пример 2

В следующем примере показано состояние BGP в условиях, когда сеть 192.168.50.0/24 не существует в таблице R102 BGP:

cond_adv_02.gif

Сначала отключите кольцевой интерфейс 0 на R103, чтобы маршрутизатор R103 прекратил объявление 192.168.50.0/24 для R102.

R103(config)# interface loopback 0
R103(config-if)# shutdown 
R103(config-if)#
03:29:36: %LINK-5-CHANGED: Interface Loopback0, changed state to administratively down

Затем убедитесь в том, что маршрутизатор R102 не запоминает сеть 192.168.50.0/24 и что сеть не включена в таблицу BGP маршрутизатора R102.

R102# show ip bgp 
BGP table version is 8, local router ID is 128.16.16.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 128.16.16.0/24   0.0.0.0                  0         32768 i
*> 130.130.0.0      0.0.0.0                  0         32768 i
*> 200.200.200.0    10.10.10.1               0             0 1 i

!--- Note 192.168.50.0/24 is not present.


Определите, сколько времени занимает завершение рассылки условных объявлений:

R102# 
debug ip bgp updates

*Mar  1 02:39:18.059: BGP(0): 10.10.20.3 rcv UPDATE about 192.168.50.0/24
-- withdrawn
*Mar  1 02:39:18.059: BGP(0): no valid path for 192.168.50.0/24
*Mar  1 02:39:18.079: BGP(0): nettable_walker 192.168.50.0/24 no best path
*Mar  1 02:39:18.219: BGP(0): 10.10.10.1 computing updates, afi 0, neighbor 
version 10, table version 11, starting at 0.0.0.0
*Mar  1 02:39:18.219: BGP(0): 10.10.10.1 send unreachable 192.168.50.0/24
*Mar  1 02:39:18.219: BGP(0): 10.10.10.1 send UPDATE 192.168.50.0/24 
-- unreachable
*Mar  1 02:39:18.219: BGP(0): 10.10.10.1 1 updates enqueued (average=27, maximum=27)
*Mar  1 02:39:18.219: BGP(0): 10.10.10.1 update run completed, afi 0, ran for 0ms, 
neighbor version 10, start version 11, throttled to 11

*Mar  1 02:40:04.747: BPG(0): Condition NON-EXIST changes to Advertise
*Mar  1 02:40:04.747: BGP(0): net 128.16.16.0/24 matches ADV MAP ADVERTISE: 
bump version to 12
*Mar  1 02:40:05.187: BGP(0): nettable_walker 128.16.16.0/24 route sourced 
locally
*Mar  1 02:40:05.187: BGP(0): 10.10.10.1 computing updates, afi 0, neighbor 
version 11, table version 12, starting at 0.0.0.0
*Mar  1 02:40:05.187: BGP(0): 10.10.10.1 128.16.16.0/24 matches advertise map 
ADVERTISE, state: Advertise
*Mar  1 02:40:05.187: BGP(0): 10.10.10.1 send UPDATE (format) 128.16.16.0/24, 
next 10.10.10.2, metric 0, path 
*Mar  1 02:40:05.187: BGP(0): 10.10.10.1 1 updates enqueued (average=52, maximum=52)
*Mar  1 02:40:05.187: BGP(0): 10.10.10.1 update run completed, afi 0, ran for 0ms, 
neighbor version 11, start version 12, throttled to 12

Процесс условного объявления запускается процессом сканера BGP, который выполняется каждые 60 секунд. Это означает, что условное объявление должно действовать не позднее чем через 60 секунд. Условное объявление может начать действовать раньше, в зависимости от того когда контролируемый маршрут будет удален из таблицы BGP и когда будет отработан следующий экземпляр сканера BGP. Для проверки состояния условного объявления на маршрутизаторе R102 для соседнего узла 10.10.10.1 выполните следующие команды на маршрутизаторе R102:

R102# show ip bgp neighbors 10.10.10.1
BGP neighbor is 10.10.10.1,  remote AS 1, external link
  BGP version 4, remote router ID 200.200.200.1
  BGP state = Established, up for 02:45:27
  Last read 00:00:27, hold time is 180, keepalive interval is 60 seconds
  
!--- Output suppressed.



 For address family: IPv4 Unicast
  BGP table version 12, neighbor version 12
  Index 1, Offset 0, Mask 0x2
  Condition-map NON-EXIST, Advertise-map ADVERTISE, status: Advertise
  1 accepted prefixes consume 36 bytes
  Prefix advertised 6, suppressed 0, withdrawn 4
  Number of NLRIs in the update sent: max 1, min 0
 
!--- Output suppressed.



В таблице BGP и таблице маршрутизации R101 имеется сеть 128.16.16.0/24, как показано ниже:

Примечание: В этом примере выходных данных условные объявления BGP (сеть 128.16.16.0/24) передаются, в дополнение к стандартным объявлениям BGP (сеть 130.130.0.0/16), который маршрутизатор под управлением BGP передает к его узлам.

R101# show ip bgp
BGP table version is 18, local router ID is 200.200.200.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 128.16.16.0/24   10.10.10.2               0             0 2 i
*> 130.130.0.0      10.10.10.2               0             0 2 i
*> 200.200.200.0    0.0.0.0                  0         32768 i

R101# show ip route bgp
     128.16.0.0/24 is subnetted, 1 subnets
B       128.16.16.0 [20/0] via 10.10.10.2, 00:09:32
B    130.130.0.0/16 [20/0] via 10.10.10.2, 02:48:46

Пример 3

В следующем примере сеть 192.168.50.0/24 повторно устанавливается на маршрутизаторе R102 для проверки изменения роли BGP с объявления (advertise) на отзыв (withdraw)."

/image/gif/paws/16137/cond_adv_01.gif

Для повторной установки сети 192.168.50.0/24 выполните команду no shutdown, чтобы вернуть интерфейс loopback 0 маршрутизатора R103 в активное состояние (UP).

R103(config)# interface loopback 0
R103(config-if)# no shutdown
R103(config-if)#
03:49:06: %LINK-3-UPDOWN: Interface Loopback0, 
changed state to up
03:49:07: %LINEPROTO-5-UPDOWN: Line protocol on 
Interface Loopback0, changed state to up

!--- R102 kicks in conditional advertisement the moment the 
!--- conditional network is received again.

*Mar  1 02:51:42.227: BGP(0): 10.10.20.3 rcvd UPDATE w/ attr: 
nexthop 10.10.20.3, origin i, metric 0, path 3
*Mar  1 02:51:42.227: BGP(0): 10.10.20.3 rcvd 192.168.50.0/24
*Mar  1 02:51:42.247: BGP(0): Revise route installing 192.168.50.0/24 -> 
10.10.20.3 to main IP table
*Mar  1 02:51:42.379: BGP(0): 10.10.10.1 computing updates, afi 0, 
neighbor version 12, table version 13, starting at 0.0.0.0
*Mar  1 02:51:42.379: BGP(0): 10.10.10.1 send UPDATE (format) 
192.168.50.0/24, next 10.10.10.2, metric 0, path 3
*Mar  1 02:51:42.379: BGP(0): 10.10.10.1 1 updates enqueued 
(average=47, maximum=47)
*Mar  1 02:51:42.379: BGP(0): 10.10.10.1 update run completed, afi 0, 
ran for 0ms, neighbor version 12, start version 13, throttled to 13

*Mar  1 02:52:09.159: BPG(0): Condition NON-EXIST changes to Withdraw
*Mar  1 02:52:09.159: BGP(0): net 128.16.16.0/24 matches ADV MAP 
ADVERTISE: bump version to 14
*Mar  1 02:52:09.499: BGP(0): nettable_walker 128.16.16.0/24 route 
sourced locally
*Mar  1 02:52:11.559: BGP(0): 10.10.10.1 computing updates, afi 0, 
neighbor version 13, table version 14, starting at 0.0.0.0
*Mar  1 02:52:11.559: BGP(0): 10.10.10.1 128.16.16.0/24 matches advertise 
map ADVERTISE, state: Withdraw
*Mar  1 02:52:11.559: BGP(0): 10.10.10.1 send unreachable 128.16.16.0/24
*Mar  1 02:52:11.559: BGP(0): 10.10.10.1 send UPDATE 128.16.16.0/24 -- unreachable
*Mar  1 02:52:11.559: BGP(0): 10.10.10.1 1 updates enqueued (average=27, maximum=27)
*Mar  1 02:52:11.559: BGP(0): 10.10.10.1 update run completed, afi 0, ran for 0ms, 
neighbor version 13, start version 14, throttled to 14

Маршрутизатор R102 больше не объявляет сеть 128.16.16.0/24 маршрутизатору R101.

R102# show ip bgp neighbors 10.10.10.1 advertised-routes 
BGP table version is 14, local router ID is 128.16.16.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 130.130.0.0      0.0.0.0                  0         32768 i
*> 192.168.50.0     10.10.20.3               0             0 3 i

!--- Note 128.16.16.0/24 is not advertised.

R102# show ip bgp neighbors 10.10.10.1
BGP neighbor is 10.10.10.1,  remote AS 1, external link
  BGP version 4, remote router ID 200.200.200.1
  BGP state = Established, up for 03:01:32
  Last read 00:00:31, hold time is 180, keepalive interval is 60 seconds
  Neighbor capabilities:
!--- Output supressed.

 For address family: IPv4 Unicast
  BGP table version 14, neighbor version 14
  Index 1, Offset 0, Mask 0x2
  Condition-map NON-EXIST, Advertise-map ADVERTISE, status: Withdraw
  1 accepted prefixes consume 36 bytes
  Prefix advertised 7, suppressed 0, withdrawn 5
  Number of NLRIs in the update sent: max 1, min 0
  
!--- Output supressed.


Примечание: В сценарии реальных условий AS1 и AS3 связаны с Интернетом (Глобальный BGP). Следовательно, становится возможным распространить сеть 192.168.50.0/24 через глобальную полносвязную структуру BGP из AS3 в таблицу BGP AS1 (R101). В свою очередь AS1 может распространять префикс 192.168.50.0 маршрутизатору R102 (в зависимости от политики, согласованной между AS1 и AS2). Если R101 распространяет изученные маршруты AS3 из глобальной ячейки BGP в R102, условное объявление может не работать, если в команде non-exist map не задано дополнительных проверок.

Чтобы получить более четкое представление о причинах невыполнения условного оповещения, рассмотрим следующий сценарий. AS1 запоминает сеть 192.168.50.0/24 из карты global bgp mesh и объявляет 192.168.50.0/24 системе AS2 (R102). R102 также запоминает префикс 192.168.50.0/24 благодаря прямому одноранговому соединению с R103 (по каналу R102 с каналом R103). При нарушении прямого соединения между R102 и R103 можно ожидать, что префикс 192.168.50.0/24 прекратит существовать в таблице BGP маршрутизатора R102, вступит в действие условное объявление и маршрутизатору R101 будет объявлен префикс 128.16.16.0/24. Однако поскольку префикс 192.168.50.0/24 продолжает существовать в таблице BGP маршрутизатора R102 (который получил этот префикс от R101), условное объявление перестает действовать из-за того, что префикс карты non-exist map по-прежнему существует в таблице BGP маршрутизатора R102. {\f3 Чтобы обеспечить запоминание префикса 192.168.50.0/24 только в случае получения через непосредственное соединение с AS3 (R102 с R103) для прохождения условного объявления, добавьте к команде }{\f3 non-exist map}{\f3 оператор }{\f3 match as_path}{\f3 , совпадающий с параметром AS_PATH префикса 192.168.50.0/24, полученного по прямому соединению (в данном случае }–{\f3 AS 3).} {\f3 Регулярное выражение для этого случая }–{\f3 ^3}{\f3 .} Дополнительные сведения о регулярных выражениях см. в документе Использование регулярных выражений в протоколе BGP. Помните, что невозможно сопоставлять только пути as-path без сопоставления префиксов. Оператор match as-path только дополняет критерии сопоставления для совпавшего префикса. Другими словами, в отсутствие префикса от автономной системы с определенным номером невозможно объявить префиксы соседнему узлу.

Новая конфигурация R102 приведена ниже. Дополнения выделены жирным шрифтом.

R101
hostname R102  
!  
interface Loopback0  
 ip address 128.16.16.1 255.255.255.0  
!  
interface Serial8/0  
 ip address 10.10.10.2 255.255.255.0  
!  
interface Serial9/0  
 ip address 10.10.20.2 255.255.255.0  
!  
router bgp 2  
 bgp log-neighbor-changes  
 network 128.16.16.0 mask 255.255.255.0  
 network 130.130.0.0  
 neighbor 10.10.10.1 remote-as 1  
 neighbor 10.10.10.1 advertise-map ADVERTISE non-exist-map NON-EXIST  
 neighbor 10.10.20.3 remote-as 3  
!  
ip route 130.130.0.0 255.255.0.0 Null0 
! 
ip as-path access-list 1 permit ^3 
!  
access-list 60 permit 128.16.16.0 0.0.0.255  
access-list 65 permit 192.168.50.0 0.0.0.255  
!  
route-map NON-EXIST permit 10  
 match ip address 65  
  match as-path 1 
!  
route-map ADVERTISE permit 10  
 match ip address 60  
!

Типичные ошибки

Известно несколько ошибок, связанных с BGP и условным объявлением. Дополнительные сведения см. в средстве обнаружения ошибок в описаниях кодов ошибок CSCdp18563 (только для зарегистрированных пользователей) и CSCdp20320 (только для зарегистрированных пользователей).

Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.


Дополнительные сведения


Document ID: 16137