ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопасность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

8 минут чтени€

—егодн€, в этой статье, вы узнаете, как формируютс€ соседства BGP внутри автономной системы, между автономными системами и даже между маршрутизаторами, которые не св€заны напр€мую.  роме того, мы рассмотрим аутентификацию BGP.

‘ормирование соседства в BGP

ѕредыдущие статьи цикла про BGP:

  1. ќсновы протокола BGP
  2. ѕостроение маршрута протоколом BGP

BGP-пиринг

”читыва€, что BGP €вл€етс€ протоколом маршрутизации AS-to-AS, вполне логично, что внешний BGP (т.е. eBGP) €вл€етс€ ключевым компонентом в его операци€х. —амое первое, что нам нужно учитывать при работе с eBGP, - это то, что стандарты построены таким образом, что требуетс€ пр€мое подключение. Ёто требование конечно можно обойти, но этот момент необходимо рассмотреть. ѕоскольку предполагаетс€ пр€мое соединение, протокол BGP выполн€ет две вещи:

  • ќн будет провер€ть значение времени жизни (TTL), и что значение time-to-live установлено в 1. Ёто означает пр€мую св€зь между одноранговыми узлами EBGP.
  • ќсуществл€етс€ проверка, что два устройства наход€тс€ в одной подсети.

≈ще один важный момент рассмотрени€ пирингов eBGP - это TCP-порты, которые будут использоватьс€. Ёто особенно важно дл€ конфигураций брандмауэров, которые защищают автономные системы. ѕервый спикер BGP, который инициирует изменени€ состо€ни€, приход€щие по мере формировани€ соседства, будет получать трафик из случайного TCP-порта, а конечным портом будет TCP-порт 179. ќтвечающий спикер BGP будет получать трафик с TCP-порта 179, а порт назначени€ будет случайным портом. Ѕрандмауэры должны быть перенастроены с учетом изменений в коммуникации. Ќа основе этих изменений спикер BGP инициирует сеанс, и это, вносит изменени€ дл€ будущего сеанса. Ќекоторые администраторы даже создают механизмы дл€ обеспечени€ того, чтобы сформированные пиринги были получены из известного направлени€.

ј как насчет IPv6? Ќу, как было сказано ранее в предыдущей статье, BGP очень гибок и работает с IPv6, поскольку протокол был изначально спроектирован с учетом IPv6. ¬ы можете формировать пиринги eBGP (и iBGP) с использованием IPv6- адресации, даже если вы используютс€ префиксы IPv4 дл€ информации о достижимости сетевого уровн€. „тобы сформировать в нашей сети пиринг eBGP, необходимо выполнить следующие действи€:

  • «апустите процесс маршрутизации дл€ BGP и укажите локальный AS (router bgp local_as_number).
  • ѕредоставить удаленному спикеру eBGP IP- адрес и удаленному AS номер (neighbor ip-_of_neighbor remote-as remote_as_number).

ѕример 1 демонстрирует конфигурацию и проверку EBGP пиринга между маршрутизаторами TPA1 и ATL.

“опологи€

ѕример 1: Ќастройка пиринга eBGP

ATL#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ATL(config)#router bgp 220
ATL(config-router)#neighbor 30.30.30.1 remote-as 110
ATL(config-router)#end
ATL#
TPAl#conf t
Enter configuration commands, one per line. End with CNTL/Z.
TPA1(config)router bgp 110
TPA1(config-router)#neighbor 30.30.30.2 remote-as 220
TPA1(config-router)#end
TPA1#
TPAl#show ip bgp summary
BGP router identifier 30.30.30.1, local AS number 110
BGP table version is 4, main routing table version 4
1 network entries using 120 bytes of memory
1 path entries using 52 bytes of memory
1/1 BGP path/bestpath attribute entries using 124 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 320 total bytes of memory
BGP activity 2/1 prefixes, 2/1 paths, scan interval 60 secs
Neighbor    V  AS  MsgRcvd MsgSent TblVer InQ OutQ Up/Down   State/PfxRcd
30.30.30.2  4  220            413         414           4     0      0      06:12:46          1
TPA1#
ѕримечание: чтобы облегчить понимание BGP, вы можете включить функцию debug ip bgp, при настройке пиринга. Ёто позволит увидеть переходные состо€ни€ в соседстве.  роме того, чтобы получить больше информации о соседствах, вы можете использовать команду show ip bgp neighbors.

—оздание eBGP пиринга, на основе IPv6, выполн€етс€ также очень просто, как и на основе IPv4. ≈динственное изменение заключаетс€ в том, что мы замен€ем адресацию в IPv4 на IPv6 и активируем соседство. —емейства адресов в маршрутизаторах Cisco дл€ BGP позвол€ют запускать множество различных схем информировани€ о достижимости сетевого уровн€ (NLRI) в рамках одного и того же общего процесса BGP. ѕример 2 демонстрирует подход к пирингу IPv6.

ѕример 2: конфигураци€ пиринга EBGP с использованием IPv6

ATL#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ATL(config)#router bgp 220
ATL(config-router)#neighbor 2201:1212:1212::2 remote-as 110
ATL(config-router-af)#neighbor 2201:1212:1212::2 activate
ATL(config-router-af)#end
ATL#

iBGP-пиринг

≈сли вы внимательно посмотрите на топологию, вы можете заметить, что что-то выгл€дит необычно. ¬идно, что есть iBGP-пиринг. ѕочему существует пиринг iBGP, созданный между TPA1 и TPA2? Ёто выгл€дит совершенно неуместно. ¬ данном случае, как говоритс€, внешность может быть обманчива. √лавное, что вы должны усвоить относительно BGP, €вл€етс€ тот факт, что существует нечто, называемое правилом разделени€ горизонта (Split Horizon Rule) iBGP. Ёто правило гласит, что ни один спикер iBGP не может прин€ть обновление и затем отправить это же обновление другому узлу iBGP. “ак же в требовании говоритьс€, о полном объединении наших спикеров iBGP дл€ обеспечени€ полной осведомленности о префиксах.

≈ще одним важным аспектом, св€занным с iBGP, €вл€етс€ избыточность. ћы хотим установить несколько физических св€зей между устройствами, но что произойдет, если св€зь, используема€ дл€ BGP, прерветс€?  ак мы автоматически переключимс€ к пирингу, использу€ альтернативное подключение?

ѕростой способ решить эту проблему заключаетс€ в реализации loopback-адресов и использовании этих адресов дл€ однорангового соединени€. Ёто то, что мы часто делаем с нашими пирингами BGP, и это может потребовать, дополнительной настройки при использовании подключени€ к провайдеру. Ќапример, в Cisco мы должны специально указать, что источником пиринга €вл€етс€ loopback IP- адрес.

ѕримечание: еще одним важным аспектом при пиринге между петлевыми адресами в iBGP €вл€етс€ то, что loopback-адреса фактически доступны между спикерами BGP. »менно здесь очень удобно использовать протокол внутреннего шлюза (IGP), такой как OSPF или EIGRP.

ѕример 3 показывает конфигурацию пиринга iBGP между устройствами TPA и TPA1. ќбратите внимание, что мы используем петлевой подход в том случае, если мы хотим добавить избыточные св€зи между устройствами в будущем.

ѕример 3: Ќастройка пиринга iBGP

TPA#conf t
Enter configuration commands, one per line. End with CNTL/Z.
TPA(config)router bgp 110
TPA(config-router)#neighbor 8.8.8.8 remote-as 110
TPA(config-router)#neighbor 8.8.8.8 update-source loopbackO
TPA(config-router)#end
TPA#
TPAl#conf t
Enter configuration commands, one per line. End with CNTL/Z.
TPA1(config)#router bgp 110
TPA1(config-router)#neighbor 5.5.5.5 remote-as 110
TPA1(config-router)#neighbor 5.5.5.5 update-source loopbackO
TPA1(config-router)#end
TPA1#

eBGP Multihop

¬ разделе eBGP-пиринг этой статьи, обсуждалось, что ваши соседи будут св€заны напр€мую. ¬ разделе iBGP мы обсуждали преимущество пиринга между loopback дл€ избыточности. “еперь пришло врем€ ответить на вопрос: „то делать, если ваши спикеры eBGP не подключены напр€мую? Ќа самом деле, если мы хотим пиринговать между loopback с eBGP, чтобы воспользоватьс€ потенциальной избыточностью.  ак сделать это, поскольку интерфейсы loopback не св€заны напр€мую друг с другом?

BGP решает эту проблему с помощью опции eBGP multihop. — помощью настройки eBGP multihop вы указываете максимальное количество допустимых прыжков. Ёто пропускает проверку BGP дл€ TTL на значение равное 1, рассмотренное ранее в этой статье. Ќо как насчет требовани€ пр€мого подключени€? BGP отключает эту проверку в фоновом режиме автоматически, при использовании функции eBGP multihop. ѕример 4 демонстрирует настройку eBGP multihop между TPA1 и ATL. «десь нужен multihop, потому что мы настраиваем пиринг между loopback устройств.

ѕример 4: eBGP Multihop

ATL#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ATL(config)#router bgp 220
ATL(config-router)#neighbor 8.8.8.8 remote-as 110
ATL(config-router)#neighbor 8.8.8.8 update-source loopbackO
ATL(config-router)#neighbor 8.8.8.8 ebgp-multihop 2
ATL(config-router)#end
ATL#
TPAl#conf t
Enter configuration commands, one per line. End with CNTL/Z.
TPA1(config)router bgp 110
TPA1(config-router)#neighbor 7.7.7.7 remote-as 220
TPA1(config-router)#neighbor 7.7.7.7 update-source loopbackO
TPA1(config-router)#neighbor 7.7.7.7 ebgp-multihop 2
TPA1(config-router)#end
TPA1#

BGP аутентификаци€

Ѕольшинство организаций сегодн€ добавл€ют аутентификацию в свои настройки BGP, чтобы защитить их от различного рода атак. ѕо общему признанию, аутентификацию немного сложнее настроить на BGP, чем с на других протоколах маршрутизации, поскольку конфигураци€ Ч пирингов- это ручной процесс, который должен выполнен на обоих устройствах. ƒаже с учетом вышесказанного, аутентификаци€ устройств (eBGP или даже iBGP) - отлична€ иде€.

¬ Cisco настройка аутентификации осуществл€етс€ просто. Ќеобходимо задать пароль (т.е. общий секрет) на каждое устройство, настроенное дл€ пиринга. ќб€зательно усвойте, что этот пароль будет отображатьс€ в открытом виде (по умолчанию) внутри вашей сети. ћожно использовать команду service password-encryption дл€ выполнени€ по крайней мере простого шифровани€ тех незашифрованных текстовых паролей, которые по€вл€ютс€ в конфигурации маршрутизатора.

јутентификаци€ с шифрованием Message Digest 5 (MD5) Ц это результат простого задани€ парол€ на устройствах. ѕример 5 отображает аутентификацию, добавленную в конфигурации дл€ TPA1 и ATL.

ѕример 5. Ќастройка аутентификации дл€ BGP-пиринга

ATL#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ATL(config)#router bgp 220
ATL(config-router)#neighbor 8.8.8.8 remote-as 110
ATL(config-router)#neighbor 8.8.8.8 update-source loopbackO
ATL(config-router)#neighbor 8.8.8.8 ebgp-multihop 2
ATL(config-router)#neighbor 8.8.8.8 password MySuperSecret121
ATL(config-router)#end
ATL#
TPAl#conf t
Enter configuration commands, one per line. End with CNTL/Z.
TPA1(config)router bgp 110
TPA1(config-router)#neighbor 7.7.7.7 remote-as 220
TPA1(config-router)#neighbor 7.7.7.7 update-source loopbackO
TPA1(config-router)#neighbor 7.7.7.7 ebgp-multihop 2
ATL(config-router)#neighbor 7.7.7.7 password MySuperSecret121
TPA1(config-router)#end
TPA1#