BGP Graceful Restart
Во время перезапуска BGP все BGP-пиры обнаруживают, что сессия была разорвана и восстановлена. PRSP аннулирует соответствующую часть кэша IP-маршрутизации, выполняет пересчет маршрутов BGP и генерирует обновления маршрутов BGP. Таблицы маршрутизации становятся поврежденными и нестабильными.
Graceful Restart помогает минимизировать эти негативные эффекты на маршрутизацию, вызванные перезапуском BGP, позволяя перезапускающемуся BGP-маршрутизатору временно сохранять информацию о маршрутах и продолжать пересылку пакетов во время перезапуска BGP. Таким образом, даже во время восстановления таблиц маршрутизации и форвардинга маршрутизатор продолжает работать через TCP-соединение.
Graceful Restart позволяет перезапускающемуся маршрутизатору и его соседям продолжать пересылку пакетов без нарушения производительности сети. Поскольку соседние маршрутизаторы помогают в процессе перезапуска, перезапускающийся маршрутизатор может быстро возобновить полную работу.
Функциональность Graceful Restart распространяется также на случаи, когда изменение конфигурации вынуждает сбросить пиринговую сессию.
Graceful Reset — это усовершенствование Graceful Restart, которое помогает обеспечить плавный перезапуск, когда изменение конфигурации вынуждает сбросить пиринговую сессию BGP.
Кроме того, Graceful Restart доступен для BGP с MPLS, когда BGP используется для распространения мет ок MPLS-VPN. Без функциональности Graceful Restart, когда BGP распространяет метки MPLS-VPN, отзыв маршрута BGP сопровождается отзывом соответствующей метки. Это вызывает "флаппинг" маршрутов, пересчет маршрутов BGP, генерацию обновлений маршрутов BGP и ненужные нарушения в таблицах форвардинга. Также, когда BGP выходит из строя, маршрутизаторы с коммутацией меток (LSR) очищают привязки меток FEC (для VPN-маршрутов), полученные от перезапускающегося LSR. В результате пересылка MPLS нарушается во время перезапуска.
Функциональности Graceful Restart и Graceful Reset предоставляют способ сохранить состояния форвардинга MPLS в NSM. Эти функции также синхронизируются с таблицей VRF, когда BGP выходит из строя на уровне плоскости управления. Эта функция поддерживается для адресного семейства VPNv4.
Топология
Рисунок 8: Топология устройства для BGP в VR/VRF
SW1
#configure terminal | Перейти в режим конфигурации |
(config)#interface lo | Перейти в режим конфигурации интерфейса для loopback |
(config-if)#ip address 1.2.3.4/32 secondary | Настроить IP-адрес на loopback |
(config-if)#exit | Выйти из режима конфигурации интерфейса |
(config)#interface eth2 | Перейти в режим конфигурации интерфейса для eth2 |
(config-if)#ip address 10.10.10.1/24 | Настроить IP-адрес на eth2 |
(config-if)#exit | Выйти из режима конфигурации интерфейса для eth2 |
(config)# router bgp 100 | Перейти в режим конфигурации BGP |
(config-router)# bgp router-id 1.2.3.4 | Настроить BGP router-id, совпадающий с IP-адресом loopback |
(config-router)# bgp graceful-restart | Настроить Graceful Restart для BGP |
(config-router)#redistribute connected | Распространить подключенные маршруты в BGP |
(config-router)# neighbor 10.10.10.2 remote-as 400 | Настроить соседа для AS-400 |
(config-router)# neighbor 10.10.10.2 capability graceful-restart | Настроить возможность GR внутри BGP |
(config-router)#end | Выйти из режима конфигурации BGP |
SW2
#configure terminal | Перейт и в режим конфигурации |
(config)#interface lo | Перейти в режим конфигурации интерфейса для loopback |
(config-if)#ip address 2.3.4.5/32 secondary | Настроить IP-адрес на loopback |
(config-if)#exit | Выйти из режима конфигурации интерфейса |
(config)#interface eth1 | Перейти в режим конфигурации интерфейса для eth1 |
(config-if)#ip address 10.10.10.2/24 | Настроить IP-адрес на eth1 |
(config-if)#exit | Выйти из режима конфигурации интерфейса для eth1 |
(config)#interface eth2 | Перейти в режим конфигурации интерфейса для eth2 |
(config-if)#ip address 20.20.20.1/24 | Настроить IP-адрес на eth2 |
(config-if)#exit | Выйти из режима конфигурации интерфейса для eth2 |
(config)#router bgp 400 | Перейти в режим конфигурации BGP |
(config-router)# bgp router-id 2.3.4.5 | Настроить BGP router-id, совпадающий с IP-адресом loopback |
(config-router)# bgp graceful-restart | Настроить Graceful Restart для BGP |
(config-router)#redistribute connected | Распространить подключенные маршруты в BGP |
(config-router)# neighbor 10.10.10.1 remote-as 100 | Настроить соседа для AS-100 |
(config-router)# neighbor 10.10.10.1 capability graceful-restart | Настроить возможность GR внутри BGP |
(config-router)# neighbor 20.20.20.2 remote-as 300 | Настроить соседа для AS-300 |
(config-router)# neighbor 20.20.20.2 capability graceful-restart | Настроить возможность GR внутри BGP |
(config-router)#end | Выйти из режима конфигурации BGP |
SW3
#configure terminal | Перейти в режим конфигурации |
(config)#interface lo | Перейти в режим конфигурации интерфейса для loopback |
(config-if)#ip address 3.4.5.6/32 secondary | Настроить IP-адрес на loopback |
(config-if)#exit | Выйти из режима конфигурации интерфейса |
(config)#interface eth1 | Перейти в режим конфигурации интерфейса для eth2 |
(config-if)#ip address 20.20.20.2/24 | Настроить IP-адрес на eth2 |
(config-if)#exit | Выйти из режима конфигурации интерфейса для eth2 |
(config)# router bgp 300 | Перейти в режим конфигурации BGP |
(config-router)# bgp router-id 3.4.5.6 | Настроить BGP router-id, совпадающий с IP-адресом loopback |
(config-router)# bgp graceful-restart | Настроить Graceful Restart для BGP |
(config-router)#redistribute connected | Распространить подключенные маршруты в BGP |
(config-router)# neighbor 20.20.20.1 remote-as 400 | Настроить соседа для AS-400 |
(config-router)# neighbor 20.20.20.1 capability graceful-restart | Настроить возможность GR внутри BGP |
(config-router)#end | Выйти из режима конфигурации BGP |
Проверка
SW1
#show ip route database
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, E - EVPN,
v - vrf leaked
> - selected route, * - FIB route, p - stale info
IP Route Table for VRF "default"
C *> 1.2.3.4/32 is directly connected, lo, 00:10:23
B *> 2.3.4.5/32 [20/0] via 10.10.10.2, xe52/1, 00:03:56
B*> 3.4.5.6/32 [20/0] via 10.10.10.2, xe52/1, 00:00:56
C*> 10.10.10.0/24 is directly connected, xe52/1, 00:09:37
B*> 20.20.20.0/24 [20/0] via 10.10.10.2, xe52/1, 00:03:56
C*> 127.0.0.0/8 is directly connected, lo, 00:28:58
Gateway of last resort is not set
SW2
#sh ip route database
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, E - EVPN,
v - vrf leaked
> - selected route, * - FIB route, p - stale info
IP Route Table for VRF "default"
B*> 1.2.3.4/32 [20/0] via 10.10.10.1, xe49/1, 00:03:52
C*> 2.3.4.5/32 is directly connected, lo, 00:07:36
B*> 3.4.5.6/32 [20/0] via 20.20.20.2, xe23, 00:00:57
C*> 10.10.10.0/24 is directly connected, xe49/1, 00:07:12
C *> 20.20.20.0/24 is directly connected, xe23, 00:06:31
C *> 127.0.0.0/8 is directly connected, lo, 00:25:32
Gateway of last resort is not set
SW3
#sh ip route database
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
> - selected route, * - FIB route, p - stale info
IP Route Table for VRF "default"
B *> 1.2.3.4/32 [20/0] via 20.20.20.1, ge14, 00:01:15
B*> 2.3.4.5/32 [20/0] via 20.20.20.1, ge14, 00:01:15
C*> 3.4.5.6/32 is directly connected, lo
B*> 10.10.10.0/24 [20/0] via 20.20.20.1, ge14, 00:01:15
C*> 20.20.20.0/24 is directly connected, ge14
C *> 127.0.0.0/8 is directly connected, lo
Gateway of last resort is not set
Проверка после BGP Graceful Restart
SW2
#write
Building configuration...
[OK]
#restart bgp graceful
2003 Sep 19 07:20:00.947 : PRSP : BGP : CRITI : [BGP_OPR_NEIGH_STATE_DOWN_2]: Neighbour [10.10.10.1] Session down as GR configured/unconfigured
2003 Sep 19 07:20:00.947 : PRSP : BGP : CRITI : [BGP_OPR_NEIGH_STATE_DOWN_2]: Neighbour [10.10.10.1] Session down due to config deletion
2003 Sep 19 07:20:00.947 : PRSP : BGP : CRITI : [BGP_OPR_NEIGH_STATE_DOWN_2]: Neighbour [20.20.20.2] Session down as GR configured/unconfigured
2003 Sep 19 07:20:00.947 : PRSP : BGP : CRITI : [BGP_OPR_NEIGH_STATE_DOWN_2]: Neighbour
[20.20.20.2] Session down due to config deletion
#show ip route database
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, E - EVPN, v - vrf leaked
> - selected route, * - FIB route, p - stale info
IP Route Table for VRF "default"
B*>p 1.2.3.4/32 [20/0] via 10.10.10.1, xe49/1, 00:19:31
C*> 2.3.4.5/32 is directly connected, lo, 00:50:45
B*>p 3.4.5.6/32 [20/0] via 20.20.20.2, xe23, 00:19:32
C*> 10.10.10.0/24 is directly connected, xe49/1, 00:50:21
C *> 20.20.20.0/24 is directly connected, xe23, 00:49:40
C *> 127.0.0.0/8 is directly connected, lo, 01:08:41
Gateway of last resort is not set
#show rib forwarding-timer
Protocol-Name GR-State Time Remaining (sec) Disconnected-time
BGP ACTIVE 57 2001/06/07 19:50:38
SW1
#show ip bgp
BGP table version is 8, local router ID is 1.2.3.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
l - labeled, S Stale
Origin codes: i - IGP, e - EGP,? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 1.2.3.4/32 0.0.0.0 0 100 32768 ?
S> 2.3.4.5/32 10.10.10.2 0 100 0 400 ?
S> 3.4.5.6/32 10.10.10.2 0 100 0 400 300 ?
*> 10.10.10.0/24 0.0.0.0 0 100 32768 ?
S 10.10.10.2 0 100 0 400 ?
S> 20.20.20.0/24 10.10.10.2 0 100 0 400 ?
Total number of prefixes 5
SW3
#sh ip bgp
BGP table version is 14, local router ID is 3.4.5.6
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
l - labeled, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
S> 1.2.3.4/32 20.20.20.1 0 100 0 400 100 ?
S> 2.3.4.5/32 20.20.20.1 0 100 0 400 ?
*> 3.4.5.6/32 0.0.0.0 0 100 32768 ?
S> 10.10.10.0/24 20.20.20.1 0 100 0 400 ?
*> 20.20.20.0/24 0.0.0.0 0 100 32768 ?
S 20.20.20.1 0 100 0 400 ?
Total number of prefixes 5