5.7. Настройка BGP
Назначение
Border Gateway Protocol (BGP) - это протокол маршрутизации между автономными системами - AS (Autonomous System).
Описание
Реализация на коммутаторе протокола BGP-4 представляет собой набор механизмов для поддержки бесклассовой междоменной маршрутизации (CIDR), соответствующих RFC 1518, RFC 1519. Данные механизмы включают в себя поддержку анонсирования набора пунктов назначения в виде IP-префикса и устраняют концепцию сетевого “класса” в BGP. BGP-4 также содержит механизмы, позволяющие агрегировать маршруты, включая агрегирование путей AS.
Для получения более подробной информации о протоколе BGP, см. документацию RFC 1771, RFC 4271.
Настройка
Настройка eBGP
Ниже приведена настройка коммутаторов в соответствии с представленной сетевой конфигурацией.
В случае отсутствия конкретных указаний, настройка выполняется на обоих коммутаторах.
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Настройка портов
На коммутаторе “Switch1”:
Switch1(config)# interface eth-0-13
Switch1(config-if)# no shutdown
Switch1(config-if)# no switchport
Switch1(config-if)# ip address 1.1.1.1/24
Switch1(config-if)# exit
Switch1(config)# interface eth-0-1
Switch1(config-if)# no shutdown
Switch1(config-if)# no switchport
Switch1(config-if)# ip address 2.2.2.1/24
Switch1(config-if)# exit
На коммутаторе “Switch2”:
Switch2(config)# interface eth-0-13
Switch2(config-if)# no shutdown
Switch2(config-if)# no switchport
Switch2(config-if)# ip address 1.1.1.2/24
Switch2(config-if)# exit
Шаг 3: Настройка статического маршрута
На коммутаторе “Switch1”:
Switch1(config)# ip route 3.3.3.0/24 2.2.2.2
Шаг 4: Настройка маршрутизации
Установка router-ID
, соседних маршрутизаторов, ассоциация сетей, редистрибуция:
На коммутаторе “Switch1”:
Switch1(config)# router bgp 100
Switch1(config-router)# bgp router-id 10.10.10.10
Switch1(config-router)# neighbor 1.1.1.2 remote-as 200
Switch1(config-router)# neighbor 1.1.1.2 ebgp-multihop
Switch1(config-router)# network 4.0.0.0/8
Switch1(config-router)# redistribute static
Switch1(config-router)# redistribute connected
Switch1(config-router)# exit
На коммутаторе “Switch2”:
Switch2(config)# router bgp 200
Switch2(config-router)# bgp router-id 11.11.11.11
Switch2(config-router)# neighbor 1.1.1.1 remote-as 100
Switch2(config-router)# neighbor 1.1.1.1 ebgp-multihop
Switch2(config-router)# redistribute connected
Switch2(config-router)# exit
Шаг 5: Выход из режима “Global config”
Switch(config)# end
Шаг 6: Проверка
На коммутаторе “Switch1”:
Switch1# 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
Dc - DHCP Client
[*] - [AD/Metric]
* - candidate default
C 1.1.1.0/24 is directly connected, eth-0-1
C 1.1.1.1/32 is in local loopback, eth-0-1
C 2.2.2.0/24 is directly connected, eth-0-48
C 2.2.2.1/32 is in local loopback, eth-0-48
C 10.10.10.10/32 is directly connected, loopback0
S 11.11.11.11/32 [1/0] via 1.1.1.2, eth-0-1
На коммутаторе “Switch2”:
Switch2# 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
Dc - DHCP Client
[*] - [AD/Metric]
* - candidate default
C 1.1.1.0/24 is directly connected, eth-0-1
C 1.1.1.2/32 is in local loopback, eth-0-1
B 2.2.2.0/24 [200/0] via 10.10.10.10 (recursive via 1.1.1.1, eth-0-1), 00
:01:50
S 10.10.10.10/32 [1/0] via 1.1.1.1, eth-0-1
C 11.11.11.11/32 is directly connected, loopback0
На коммутаторе “Switch2”:
Switch2# show ip route bgp
B 2.2.2.0/24 [200/0] via 10.10.10.10 (recursive via 1.1.1.1, eth-0-1), 00:01:54
Настройка iBGP
Ниже показана настройка iBGP в соответствии с представленной конфигурацией сети.
В случае отсутствия конкретных указаний, настройка выполняется на обоих коммутаторах.
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Настройка портов
На коммутаторе “Switch1”:
Switch1(config)# interface eth-0-1
Switch1(config-if)# no shutdown
Switch1(config-if)# no switchport
Switch1(config-if)# ip address 2.2.2.1/24
Switch1(config-if)# exit
Switch1(config)# interface eth-0-13
Switch1(config-if)# no shutdown
Switch1(config-if)# no switchport
Switch1(config-if)# ip address 1.1.1.1/24
Switch1(config-if)# exit
Switch1(config)#interface loopback 0
Switch1(config-if)# ip address 10.10.10.10/32
Switch1(config-if)# exit
На коммутаторе “Switch2”:
Switch2(config)# interface eth-0-13
Switch2(config-if)# no shutdown
Switch(config-if)# no switchport
Switch2(config-if)# ip address 1.1.1.2/24
Switch2(config-if)# exit
Switch2(config)# interface loopback 0
Switch2(config-if)# ip address 11.11.11.11/32
Switch2(config-if)# exit
Шаг 3: Настройка статического маршрута
На коммутаторе “Switch1”:
Switch1(config)# ip route 11.11.11.11/32 1.1.1.2
На коммутаторе “Switch2”:
Switch2(config)# ip route 10.10.10.10/32 1.1.1.1
Шаг 4: Настройка маршрутизации
Установка router-ID
соседних маршрутизаторов, ассоциация сетей, редистрибуция:
На коммутаторе “Switch1”:
Switch1(config)# router bgp 100
Switch1(config-router)# bgp router-id 10.10.10.10
Switch1(config-router)# neighbor 11.11.11.11 remote-as 100
Switch1(config-router)# neighbor 11.11.11.11 update-source loopback 0
Switch1(config-router)# network 4.0.0.0/8
Switch1(config-router)# redistribute static
Switch1(config-router)# redistribute connected
Switch1(config-router)# exit
На коммутаторе “Switch2”:
Switch2(config)# router bgp 100
Switch2(config-router)# bgp router-id 11.11.11.11
Switch2(config-router)# neighbor 10.10.10.10 remote-as 100
Switch2(config-router)# neighbor 10.10.10.10 update-source loopback 0
Switch2(config-router)# redistribute connected
Switch2(config-router)# exit
Шаг 5: Выход из режима “Global config”
Switch(config)# end
Шаг 6: Проверка
На коммутаторе “Switch1”:
Switch1# 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
Dc - DHCP Client
[*] - [AD/Metric]
* - candidate default
C 1.1.1.0/24 is directly connected, eth-0-1
C 1.1.1.1/32 is in local loopback, eth-0-1
C 2.2.2.0/24 is directly connected, eth-0-48
C 2.2.2.1/32 is in local loopback, eth-0-48
S 3.3.3.0/24 [1/0] via 2.2.2.2, eth-0-48
На коммутаторе “Switch2”:
Switch2# 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
Dc - DHCP Client
[*] - [AD/Metric]
* - candidate default
C 1.1.1.0/24 is directly connected, eth-0-1
C 1.1.1.2/32 is in local loopback, eth-0-1
B 2.2.2.0/24 [20/0] via 1.1.1.1, eth-0-1, 00:00:05
B 3.3.3.0/24 [20/0] via 1.1.1.1, eth-0-1, 00:00:05
На коммутаторе “Switch2”:
Switch# show ip route bgp
B 2.2.2.0/24 [20/0] via 1.1.1.1, eth-0-13, 00:01:56
B 3.3.3.0/24 [20/0] via 1.1.1.1, eth-0-13, 00:01:56
Настройка BGP-аутентификации
В коммутаторе реализована поддержка аутентификации BGP-сессий.
Для аутентификации на коммутаторе должен быть настроен пароль. Пароли на соседних коммутаторах, обменивающихся сообщениями BGP, должны совпадать. Коммутатор рассчитывает хэш MD5 на основе пароля и сообщения BGP и добавляет его к пакету. Соседний коммутатор приняв пакет, рассчитывает контрольную сумму и если хэш отправителя и получателя совпадают, сообщение BGP считается доверенным.
Команды аутентификации BGP см. в Справочнике по командам.
Ниже показана настройка аутентификации BGP в соответствии с представленной сетевой конфигурацией.
При отсутствии особых указаний, настройка выполняется на обоих коммутаторах.
Шаг 1: Настройка BGP
Настройка коммутаторов проводится в соответствии с “Настройка eBGP” или “Настройка iBGP”.
Шаг 2: Настройка аутентификации
На коммутаторе “Switch1”:
Switch1# configure terminal
Switch1(config)# router bgp 100
Switch1(config-router)# neighbor 1.1.1.2 password test123
На коммутаторе “Switch2”:
Switch2# configure terminal
Switch2(config)# router bgp 200
Switch2(config-router)# neighbor 1.1.1.1 password test123
Шаг 3: Выход из режима “Global config”
Switch(config)# end
Шаг 4: Проверка
Switch2# sh ip bgp neighbors
BGP neighbor is 1.1.1.1, remote AS 100, local AS 200, external link
BGP version 4, remote router ID 10.10.10.10
BGP state = Established, up for 00:00:51
Last read 00:00:08, hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
Route refresh: advertised and received (old and new)
4-Octet ASN Capability: advertised and received
Address family IPv4 Unicast: advertised and received
Received 18 messages, 0 notifications, 0 in queue
Sent 22 messages, 1 notifications, 0 in queue
Route refresh request: received 0, sent 0
Minimum time between advertisement runs is 30 seconds
For address family: IPv4 Unicast
BGP table version 17, neighbor version 17
Index 1, Offset 0, Mask 0x2
3 accepted prefixes
1 announced prefixes
Connections established 2; dropped 1
External BGP neighbor may be up to 255 hops away.
Local host: 1.1.1.2, Local port: 179
Foreign host: 1.1.1.1, Foreign port: 59256
Nexthop: 1.1.1.2
Nexthop global: ::
Nexthop local: ::
BGP connection: non shared network
Last Reset: 00:04:07, due to BGP Notification sent
Notification Error Message: (Hold Timer Expired/Unspecified Error Subcode)