Перейти к основному содержимому

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.

Топология

Image

Рисунок 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