Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Протокол BGP - протокол динамической маршрутизации, основная его  задача  состоит в том, чтобы обмениваться маршрутами между автономными системами AS (eBGP), а также в пределах одной системы (iBGP). Данный протокол поддерживается всей линейкой L3-коммутаторов SNR. 

Базовая настройка BGP

Схема сети:

Схема сети










Конфигурация коммутатора R2:

router bgp 10  
 bgp router-id 1.1.1.2  
 network 1.1.1.0/30  
 network 2.2.2.0/30  
 neighbor 1.1.1.1 remote-as 10  
 neighbor 2.2.2.2 remote-as 20     

Коммутатор R1 и R3 настраиваем аналогичным образом, но изменяется router-id и адреса соседей.  Анонсировать подсети 1.1.1.0/30 и 2.2.2.0/30 -  также не требуется.

Проверяем, что все работает:

show ip bgp summary:
Neighbor        V          AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
1.1.1.1         4          10       2       3       34    0    0 00:00:06       0
2.2.2.2         4          20       7       9       34    0    0 00:05:26       0 

show ip route:
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       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, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default
C       1.1.1.0/30 is directly connected, Vlan10  tag:0
C       2.2.2.0/30 is directly connected, Vlan20  tag:0   

Настройка BFD (Bidirectional Forwarding Detection)

При падении линка или потере связности между устройствами, BGP-сессия исчезает не сразу. Она остается активной еще некоторое время. Для быстрой сходимости сети используют протокол BFD. Данный протокол обнаруживает проблемы связности на IP-уровне и обеспечивает быструю сходимость сети. Обращаем внимание на то, что для каждого соседа он включается отдельно, при этом настройка таймеров производится на VLAN-интерфейсе.

router bgp 10
 neighbor 1.1.1.2 bfd

Настройка атрибутов MED, Weight, Community

Атрибут MED (multi-exit discriminator) предназначен для определения наилучшего пути, по которому другие AS могут взаимодействовать с нашей AS. Данный атрибут не локальный, он передается между AS. Если вам требуется чтобы всегда происходило сравнение значения метрики между разными AS, то необходимо добавить в конфигурацию команду bgp always-compare-med.

route-map metric permit 10
 set metric 50
!
router bgp 10
 bgp always-compare-med
 neighbor 1.1.1.1 remote-as 10
 neighbor 1.1.1.1 route-map metric out

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

router bgp 20
 neighbor 2.2.2.1 weight 150

Атрибут BGP community предназначен для маркировки маршрутов с целью последующей их обработки по специальным правилам. У маршрутов может быть несколько community. К примеру, на основе данного атрибута можно фильтровать трафик. Также, данный атрибут применяется для балансировки и распределения нагрузки. Принцип его работы почти аналогичен работе ip access-list:

access-list 1 permit 2.0.0.0 0.255.255.255
access-list 2 permit any-source
!
router bgp 10
 neighbor 2.2.2.2 route-map set-community out
!
route-map set-community permit 10
 match ip address 1
 set community 1111
!
route-map set-community permit 20
 match ip address 2

После данной настройки,  коммутатор будет отправлять атрибут Community 0:1111 для соседа 2.2.2.2

Примечание

После изменений необходимо применить команду clear ip bgp <neighbor_ip> soft, иначе они вступят в силу не сразу.

Настройка BGP confederation

Для масштабирования сети можно использовать функционал BGP Confederation. Суть заключается в том, чтобы разделить большую автономную систему AS на несколько подсистем (подуровней AS). Это позволяет всем iBGP-соседям изучить все iBGP-маршруты в AS, не используя при этом полносвязную топологию между всеми устройствами в сети. Для других AS конфедерация будет отображаться только под своим глобальным номером AS.

Схема сети:

Конфигурация устройств:

!
router bgp 10
 bgp router-id 1.1.1.2 
 bgp confederation identifier 100
 bgp confederation peers 30
 neighbor 1.1.1.1 remote-as 30
!
router bgp 30
 bgp router-id 1.1.1.1
 bgp confederation identifier 100
 bgp confederation peers 10
 neighbor 1.1.1.2 remote-as 10
 neighbor 2.2.2.2 remote-as 20

Настройка коммутатора в роли Route Reflector

Данный коммутатор будет выступать в роли "зеркала" и каждый коммутатор будет связан с ним только одним линком. При такой схеме мы получаем, что Route Reflector отправляет своим клиентам маршруты, а клиент не пересылает их дальше, т.к. является конечной точкой, ведь у него нет ни с кем более линков. RR-устройств может быть несколько.  Логика работы этого устройства будет следующей:

  • Если маршрут был получен от своего клиента, то маршрут будет отправлен всем.
  • Если RR получил маршрут не от клиента, то такой маршрут будет отправлен только своим клиентам.
  • Если RR получил маршрут от eBGP-соседа, то он пересылает этот маршрут всем.

Всех iBGP-соседей на RR коммутаторе нужно указать как route-reflector-client:

router bgp 10
 bgp router-id 1.1.1.1
 network 1.1.1.0/30
 redistribute connected
 neighbor 1.1.1.2 remote-as 10
 neighbor 1.1.1.2 route-reflector-client

Настройка BGP VPN

Часто для изоляции трафика используется VPN, а для их обслуживания создаются VRF . Для обмена маршрутной информацией между VRF разных граничных маршрутизаторов применяется протокол BGP, а сам BGP в свою очередь оперирует VPN-IPv4 маршрутами. Важно отметить, что VRF - локален для каждого маршрутизатора. Для определения VRF, в который требуется передать маршрут, используется уникальный идентификатор RT. Данный атрибут анонсируется в обновлениях BGP, как атрибут BGP extended community. А чтобы отличать принадлежность маршрута к определенному VPN, к префиксу подсети также добавляется идентификатор RD, который также передается в BGP extended community.

Схема сети:

Конфигурация устройств:

mpls enable
!
vlan 100
name TEST_VRF
!
ip vrf VRF-A
rd 100:10
route-target both 100:10
!
ip vrf VRF-B
rd 100:20
route-target both 100:20
!
interface Vlan100
mtu 2000
label-switching
ldp enable
ip address 10.10.10.1 255.255.255.252
!
interface Loopback100
ip address 1.1.1.1 255.255.255.255
!
interface Loopback101
ip vrf forwarding VRF-A
ip address 192.168.100.1 255.255.255.255
!
interface Loopback102
ip vrf forwarding VRF-B
ip address 192.168.120.1 255.255.255.255
!
router bgp 10
redistribute connected
redistribute static
neighbor 2.2.2.2 remote-as 10
neighbor 2.2.2.2 update-source 1.1.1.1
address-family vpnv4 unicast
neighbor 2.2.2.2 activate
exit-address-family
address-family ipv4 vrf VRF-A
redistribute connected
redistribute static
exit-address-family
address-family ipv4 vrf VRF-B
redistribute connected
redistribute static
exit-address-family

На другом коммутаторе R2 настройка идентична, изменится только используемая адресация. Проверим, что все работает:

show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       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, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default
C       1.1.1.1/32 is directly connected, Loopback100  tag:0
O E2    2.2.2.2/32 [110/20] via 10.10.10.2, Vlan100, 01:35:58  tag:0
C       10.10.10.0/30 is directly connected, Vlan100  tag:0

show ip route vrf VRF-A
C       192.168.100.1/32 is directly connected, Loopback101  tag:0
B       192.168.200.1/32 [200/0] via 2.2.2.2, 01:38:42  tag:0

show ip route vrf VRF-B
C       192.168.120.1/32 is directly connected, Loopback102  tag:0
B       192.168.220.1/32 [200/0] via 2.2.2.2, 01:38:47  tag:0 

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

  • No labels