Loop-Free Alternate (LFA) - это механизм, который заранее просчитывает резервный маршрут и выставляет данный маршрут в таблице маршрутизации.
Таким образом, в случае сбоя основного пути, маршрутизатор быстро переключится на резервный путь.
LFA можно настроить на следующих IGP протоколах: ISIS и OSPF. Используемый тип сети: Point-to-Point.
Рассмотрим пример настройки LFA.
В качестве примера будем использовать схему, изображенную на рисунке 1. Протокол динамической маршрутизации ISIS.
Рисунок 1 — Схема включения
Приведу пример настройки LFA на маршрутизаторе R2, аналогичные настройки выполняются на остальных маршрутизаторах.
Маршрутизатор R2:
router isis 1 address-family ipv4 unicast lfa include-all <============== Включение LFA на всех интерфейсах. exit advertise-passive-only <========= Для уменьшения записей в таблице маршрутизации, анонсируем только пассивные интерфейсы. interface bundle-ether 1 address-family ipv4 unicast bfd fast-detect exit level level-2 lsp-interval 5 retransmit-interval 1 exit point-to-point exit interface loopback 1 address-family ipv4 unicast exit passive exit interface tengigabitethernet 0/0/7 address-family ipv4 unicast bfd fast-detect exit level level-2 lsp-interval 5 retransmit-interval 1 exit point-to-point exit interface tengigabitethernet 0/0/9 address-family ipv4 unicast bfd fast-detect exit level level-2 lsp-interval 5 retransmit-interval 1 exit point-to-point exit host-name R2 is-level level-2 level level-2 lsp min-refresh-interval 200 metric-style wide exit microloop-avoidance rib-update-delay 140 net 49.0001.0100.0000.1013.00 spf interval maximum-wait 80 exit
После настройки всех маршрутизаторов, таблица маршрутизации на R2 выглядит следующим образом:
0/ME5100:R2# show route Thu Apr 20 16:48:10 2023 Codes: C - connected, S - static, O - OSPF, B - BGP, L - local IA - OSPF inter area, EA - OSPF intra 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, LE1 - IS-IS level1 external, LE2 - IS-IS level2 external BI - BGP internal, BE - BGP external, BV - BGP vpn, BL - BGP labeled, R - RIP C 10.0.0.20/31 is directly connected, 02d04h49m, te0/0/7 L 10.0.0.21/32 is directly connected, 02d04h49m, te0/0/7 C 10.0.0.24/31 is directly connected, 02d04h49m, te0/0/9 L 10.0.0.25/32 is directly connected, 02d04h49m, te0/0/9 i L2 10.0.0.28/31 via 10.0.0.20 (backup local-lfa, address: 10.0.0.24) [116/4010], 02d04h47m, te0/0/7 < === Защищенный маршрут. 10.0.0.28/31 via 10.0.0.24 [0/4020], 02h15m16s, te0/0/9 C 10.0.0.30/31 is directly connected, 02d04h49m, bu1 L 10.0.0.31/32 is directly connected, 02d04h49m, bu1 10.0.1.1/32 via 10.0.0.20 [0/20], 02h15m16s, te0/0/7 i L2 10.0.1.1/32 via 10.0.0.24 (backup local-lfa, address: 10.0.0.20) [116/10], 02d04h49m, te0/0/9 < === Защищенный маршрут. i L2 10.0.1.2/32 via 10.0.0.20 (backup local-lfa, address: 10.0.0.24) [116/10], 02d04h49m, te0/0/7 < === Защищенный маршрут. 10.0.1.2/32 via 10.0.0.24 [0/20], 02h15m16s, te0/0/9 10.0.1.12/32 via 10.0.0.24 [0/20], 02h15m16s, te0/0/9 i L2 10.0.1.12/32 via 10.0.0.30 (backup local-lfa, address: 10.0.0.24) [116/10], 02d04h49m, bu1 < === Защищенный маршрут. L 10.0.1.13/32 is directly connected, 02d04h49m, lo1 i L2 10.0.1.14/32 via 10.0.0.20 (backup local-lfa, address: 10.0.0.24) [116/2020], 02d04h47m, te0/0/7 < === Защищенный маршрут. 10.0.1.14/32 via 10.0.0.24 [0/2030], 02h15m16s, te0/0/9 Total entries: 17
При просмотре маршрута, например до 10.0.1.2/32, можно увидеть информацию о наличии защиты:
0/ME5100:R2# show route 10.0.1.2 Thu Apr 20 17:03:31 2023 Routing entry for 10.0.1.2/32 Last update: 02d05h04m Routing Descriptor Blocks 10.0.0.20, via te0/0/7 Known via isis, distance 116, metric 10 type isis-level2-internal, protection local-lfa, route-type remote LFA nexthop 10.0.0.24, te0/0/9 <================= Резервный маршрут. Entries: 1 0/ME5100:R2#
Также можно посмотреть информацию, связанную с ISIS LFA FRR, например до 10.0.1.2/32:
0/ME5100:R2# show isis fast-reroute ipv4 10.0.1.2/32 Thu Apr 20 17:05:13 2023 IS-IS Router 1 The destination Internet address prefix: 10.0.1.2/32 Reason: best-candidate, providing-protection is true, primary-excluded is false, candidate-excluded is false, loop-free is true, overloaded is false, primary is false, remote-lfa is false, node-protecting is false The router ID of the next hop router on this path: 0100.0000.1001, metric 20 Primary next hop: router address: 10.0.0.20 local network interface: Tengigabitethernet0/0/7 Candidate: LFA router address: 10.0.0.24 local network interface: Tengigabitethernet0/0/9 Attached: router ID: local network interface: The destination Internet address prefix: 10.0.1.2/32 Reason: tie-router-id, providing-protection is false, primary-excluded is false, candidate-excluded is false, loop-free is true, overloaded is false, primary is false, remote-lfa is false, node-protecting is false The router ID of the next hop router on this path: 0100.0000.1012, metric 20 Primary next hop: router address: 10.0.0.20 local network interface: Tengigabitethernet0/0/7 Candidate: LFA router address: 10.0.0.30 local network interface: Bundle-ether1 Attached: router ID: local network interface:
В выводе данной команды мы можем увидеть, что LFA также заранее просчитал резерв через линк Bundle-ether1. В связи с этим, если возникнут проблемы с линком Ten0/0/9 или Ten0/0/7, то у нас есть ещё один резервный линк.
Рассмотрим фильтрацию маршрутов, для которых не требуется организация резервного пути.
Используя приведенную конфигурацию выше, запретим построения резервного маршрута до 10.0.1.2/32.
Настраиваем фильтр:
router isis 1 address-family ipv4 unicast lfa filter TEST address-prefix 10.0.1.2/32 disable exit lfa include-all
В результате до данного маршрута резервный путь не строится:
0/ME5100:MPLS_RT11_R13# show route Thu Apr 20 14:24:52 2023 Codes: C - connected, S - static, O - OSPF, B - BGP, L - local IA - OSPF inter area, EA - OSPF intra 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, LE1 - IS-IS level1 external, LE2 - IS-IS level2 external BI - BGP internal, BE - BGP external, BV - BGP vpn, BL - BGP labeled, R - RIP C 10.0.0.20/31 is directly connected, 02d02h26m, te0/0/7 L 10.0.0.21/32 is directly connected, 02d02h26m, te0/0/7 C 10.0.0.24/31 is directly connected, 02d02h26m, te0/0/9 L 10.0.0.25/32 is directly connected, 02d02h26m, te0/0/9 i L2 10.0.0.28/31 via 10.0.0.20 (backup local-lfa, address: 10.0.0.24) [116/4010], 02d02h23m, te0/0/7 10.0.0.28/31 via 10.0.0.24 [0/4020], 00h00m21s, te0/0/9 C 10.0.0.30/31 is directly connected, 02d02h26m, bu1 L 10.0.0.31/32 is directly connected, 02d02h26m, bu1 10.0.1.1/32 via 10.0.0.20 [0/20], 00h00m21s, te0/0/7 i L2 10.0.1.1/32 via 10.0.0.24 (backup local-lfa, address: 10.0.0.20) [116/10], 02d02h25m, te0/0/9 i L2 10.0.1.2/32 via 10.0.0.20 [116/10], 02d02h25m, te0/0/7 10.0.1.12/32 via 10.0.0.24 [0/20], 00h00m21s, te0/0/9 i L2 10.0.1.12/32 via 10.0.0.30 (backup local-lfa, address: 10.0.0.24) [116/10], 02d02h25m, bu1 L 10.0.1.13/32 is directly connected, 02d02h26m, lo1 i L2 10.0.1.14/32 via 10.0.0.20 (backup local-lfa, address: 10.0.0.24) [116/2020], 02d02h23m, te0/0/7 10.0.1.14/32 via 10.0.0.24 [0/2030], 00h00m21s, te0/0/9
Отметим, что также можно включить LFA на отдельных интерфейсах:
router isis 1 address-family ipv4 unicast lfa <============== Активация механизма LFA exit interface tengigabitethernet 0/0/7 address-family ipv4 unicast exit point-to-point lfa <============== exit interface tengigabitethernet 0/0/9 address-family ipv4 unicast exit point-to-point exit host-name R2 is-level level-2 level level-2 metric-style wide exit net 49.0001.0100.0000.1013.00 exit
Приведем пример включения LFA в протоколе OSPF:
router ospfv2 test lfa include-all <============== Включение LFA на всех интерфейсах. exit
Включение LFA на отдельных интерфейсах:
router ospfv2 1 area 0.0.0.0 interface loopback 1 passive exit interface tengigabitethernet 0/0/1 bfd fast-detect network point-to-point lfa <============== exit interface tengigabitethernet 0/0/2 bfd fast-detect network point-to-point exit lfa <============== Активация механизма LFA router-id 10.0.0.15 exit
Ранее был приведен пример настройки LFA в ISIS, где также были указаны таймеры.
Данные таймеры являются рекомендуемыми, что также позволяют достичь быстрой сходимости сети.
Пояснения к таймерам:
router isis X interface tengigabitethernet Y level Z lsp-interval 5 <============== Задает задержку между успешными передачами ISIS Link-state Packets (LSP) (ms) retransmit-interval 1 <============== Интервал пересылок Link-state Packet (LSP) (sec) exit exit level Z lsp min-refresh-interval 200 <============== Интервал обновления Link-state Packet (LSP) (ms) exit microloop-avoidance rib-update-delay 140 <============== Задержка обновления таблицы маршрутизации при перестроении топологии для избежания образования петель (ms) spf interval maximum-wait 80 <============== Таймер между двумя последовательными пересчетами алгоритма Shortest Path First (SPF) (ms) exit
Данные таймеры необходимо одинаково настраивать на всех устройствах сети, чтобы избежать появления микропетель.