Конфигурация Route-map Continue
Этот раздел содержит конфигурацию Route-map continue с использованием BGP.
Обзор
Операторы continue позволяют настроить и организовать более модульные определения политик, чтобы уменьшить количество повторяющихся конфигураций политик в рамках одного route-map.
Оператор continue в route-map предоставляет возможность выполнять дополнительные записи в route-map после успешного выполнения записи с совпадением и установкой параметров. Команда continue позволяет оценивать несколько записей в рамках одного route-map. Командам continue можно назначать необязательные порядковые номера, которые указывают порядок, в котором должны оцениваться оператор ы.
Использование Continue с операторами Match
Когда оператор match
присутствует в route-map с оператором continue, то оператор continue
выполняется только при успешном совпадении. Если оператор match
отсутствует в route-map, но присутствует оператор continue
, то оператор continue
будет оценен и перейдет к указанной записи route-map. При успешном совпадении и наличии оператора continue
, route-map выполняет операторы set
, а затем переходит к указанной записи route-map. Если в следующем route-map отсутствует оператор continue
, то route-map будет работать в обычном режиме. Если в следующем route-map присутствует оператор continue
, но совпадение не успешно, route-map не продолжит выполнение и перейдет к следующему порядковому номеру, если он существует.
Использование Continue с действиями Set
Операторы set
выполняются после завершения оценки route-map. Операторы set
оцениваются и выполняются в порядке их конфигурации. Операторы set
выполняются только после успешного совпадения. Оператор continue
переходит к указанной записи route-map только после выполнения настроенных действий set
. Если действие set
настроено в первом route-map, а затем то же действие set
повторяется с другим значением в последующей записи route-map, то последнее действие set
переопределит предыдущие действия set
, настроенные с той же командой.
Топология
Рисунок 12-16: Route-map continue
Настройка Route-map continue на SW1
В приведенном ниже примере мы применим route-map continue
на SW1 в рамках BGP 100, с редистрибьюцией подключенных маршрутов от SW2 на SW1. Здесь 10.1.0.0/16 является супермножеством, а 10.1.1.0/24, 10.1.2.0/24, 10.1.3.0/24, 10.1.4.0/24 и 10.1.5.0/24 являются подмножествами и будут фильтровать PF1, который является супермножеством и задает несколько префиксов.
SW1
SW1#configure terminal | Перейти в режим конфигурации. |
SW1(config)#interface xe51 | Перейти в режим интерфейса. |
SW1(config-if)#ip address 20.1.1.1/24 | Настроить IP-адрес интерфейса. |
SW1(config-if)#exit | Выйти из режима интерфейса. |
SW1(config)#ip prefix-list PF1 seq 5 permit 10.1.0.0/16 le 32 | Настроить супермножество префиксов PF1. |
SW1(config)#ip prefix-list P1 seq 5 permit 10.1.1.0/24 le 32 | Настроить подмножество префиксов P1. |
SW1(config)#ip prefix-list P2 seq 5 permit 10.1.2.0/24 le 32 | Настроить подмножество префиксов P2. |
SW1(config)#ip prefix-list P3 seq 5 permit 10.1.3.0/24 le 32 | Настроить подмножество префиксов P3. |
SW1(config)#router bgp 100 | Настроить процесс BGP 100. |
SW1(config-router)#bgp router-id 1.1.1.1 | Настроить идентификатор маршрутизатора BGP. |
SW1(config-router)#neighbor 20.1.1.2 remoteas 100 | Настроить BGP remote-as 100 с IP соседа. |
SW1(config-router)#neighbor 20.1.1.2 routemap myid1 in | Настроить route-map myid1 как входящую политику для соседа. |
SW1(config-routed)#exit | Выйти из режима маршрутизатора BGP. |
SW1(config)#route-map myid1 permit 1 | Настроить route-map myid1 с порядковым номером 1. |
SW1(config-route-map)match ip address prefixlist PF1 | Настроить совпадение для префикса PF1. |
SW1(config-route-map)continue | Настроить команду continue без порядкового номера. |
SW1(config-route-map)set metric 10 | Установить метрику 10. |
SW1(config-route-map)set weight 3465789 | Установить вес 3465789. |
SW1(config-route-map)route-map myid1 permit 2 | Настроить route-map myid1 с порядковым номером 2. |
SW1(config-route-map)match ip address prefixlist P1 | Настроить совпадение для префикс-листа P1. |
SW1(config-route-map)continue 3 | Настроить continue с порядковым номером 3. |
SW1(config-route-map)set metric 20 | Установить метрику 20. |
SW1(config-route-map)set origin igp | Установить origin как протокол IGP. |
SW1(config-route-map)route-map myid1 permit 3 | Настроить route-map myid1 с порядковым номером 3. |
SW1(config-route-map)match ip address prefixlist P2 | Настроить совпадение для префикс-листа P2. |
SW1(config-route-map)continue 4 | Настроить continue с порядковым номером 4. |
SW1(config-route-map)set metric 30 | Установить метрику 30. |
SW1(config-route-map)set as-path prepend 600 | Установить as-path prepend как 600. |
SW1(config-route-map)route-map myid1 permit 4 | Настроить route-map myid1 с порядковым номером 4. |
SW1(config-route-map)match ip address prefixlist P3 | Настроить совпадение для префикс-листа P3. |
SW1(config-route-map)set local-preference 400 | Установить локальный приоритет 400. |
SW1(config-route-map)set weight 400 | Установить вес 400. |
SW1(config-route-map)end | Завершить настройку route-map. |
SW2
SW2#configure terminal | Перейти в режим конфигурации. |
SW2(config)#interface xe32/1 | Перейти в режим интерфейса. |
SW2(config-if)#ip address 10.1.1.1/24 | Настроить IP-адрес интерфейса, который активен. |
SW2(config-if)#interface xe32/2 | Перейти в режим ин терфейса. |
SW2(config-if)#ip address 10.1.2.1/24 | Настроить IP-адрес интерфейса, который активен. |
SW2(config-if)#interface xe32/4 | Перейти в режим интерфейса. |
SW2(config-if)#ip address 10.1.3.1/24 | Настроить IP-адрес интерфейса, который активен. |
SW2(config-if)#interface xe17/1 | Перейти в режим интерфейса. |
SW2(config-if)#ip address 10.1.4.1/24 | Настроить IP-адрес интерфейса, который активен. |
SW2(config-if)#interface xe21/1 | Перейти в режим интерфейса. |
SW2(config-if)#ip address 10.1.5.1/24 | Настроить IP-адрес интерфейса, который активен. |
SW2(config-if)#interface xe32/3 | Перейти в режим интерфейса. |
SW2(config-if)#ip address 20.1.1.2/24 | Настроить IP-адрес на подключенном интерфейсе. |
SW2(config-if)#exit | Выйти из режима интерфейса. |
SW2(config)#router bgp 100 | Настроить процесс BGP 100. |
SW2(config-router)#bgp router-id 2.2.2.2 | Настроить идентификатор маршрутизатора BGP. |
SW2(config-router)#neighbor 20.1.1.1 remoteas 100 | Настроить BGP remote-as 100 с IP соседа. |
SW2(config-router)#redistribute connected | Перераспределить подключенные маршруты, которые здесь являются 10 сетями. |
Проверка
SW1
SW1#show ip bgp summary
BGP router identifier 1.1.1.1, local AS number 100
BGP table version is 5
2 BGP AS-PATH entries
0 BGP community entries
Neighbor V AS MsgRcv MsgSen TblVer InQ OutQ Up/ Down State/PfxRcd
20.1.1.2 4 100 145 177 5 0 0 00:40:05 5
Total number of neighbors 1
Total number of Established sessions 1
Note: Проверьте, что здесь изучено 5 префиксов.
SW1#
SW1#show ip bgp
BGP table version is 5, local router ID is 1.1.1.1
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
*>i 10.1.1.0/24 20.1.1.2 20 100 3465789 i
*>i 10.1.2.0/24 20.1.1.2 30 100 3465789 600 ?
*>i 10.1.3.0/24 20.1.1.2 10 400 400 ?
*>i 10.1.4.0/24 20.1.1.2 10 100 3465789 ?
*>i 10.1.5.0/24 20.1.1.2 10 100 3465789 ?
Total number of prefixes 5 SW1#
Note: В приведенном выше примере префиксы 10.1.4.0/24 и 10.1.5.0/24 будут совпадать только с PF1, который является супермножеством, и метрика установлена как 10, в то время как префиксы 10.1.1.0/24, 10.1.2.0/24 и 10.1.3.0/24 будут совпадать в префикс-листах P1, P2 и P3 и выполнять соответствующие операторы set.
SW1#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, E - EVPN,
v - vrf leaked * - candidate default
IP Route Table for VRF "default"
B 10.1.1.0/24 [200/20] via 20.1.1.2, xe51, 00:45:05
B 10.1.2.0/24 [200/30] via 20.1.1.2, xe51, 00:45:05
B 10.1.3.0/24 [200/10] via 20.1.1.2, xe51, 00:45:05
B 10.1.4.0/24 [200/10] via 20.1.1.2, xe51, 00:25:05
B10.1.5.0/24 [200/10] via 20.1.1.2, xe51, 00:24:35
C20.1.1.0/24 is directly connected, xe51, 01:00:40
C 127.0.0.0/8 is directly connected, lo, 02:26:41
Gateway of last resort is not set SW1#
SW1#show ip bgp route-map myid1
BGP table version is 5, local router ID is 1.1.1.1
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
*>i 10.1.1.0/24 20.1.1.2 20 100 3465789 i
*>i 10.1.2.0/24 20.1.1.2 30 100 3465789 600 ?
*>i 10.1.3.0/24 20.1.1.2 10 400 400 ?
*>i 10.1.4.0/24 20.1.1.2 10 100 3465789 ?
*>i 10.1.5.0/24 20.1.1.2 10 100 3465789 ?
Total number of prefixes 5
SW1#
SW1#
SW2
SW2#show ip bgp summary
BGP router identifier 2.2.2.2, local AS number 100
BGP table version is 3
1 BGP AS-PATH entries
0 BGP community entries
Neighbor V AS MsgRcv MsgSen TblVer InQ OutQ Up/ Down State/PfxRcd
20.1.1.1 4 100 133 133 3 0 0 00:39:57 0
Total number of neighbors 1
Total number of Established sessions 1
SW2#
SW2#
SW2#show ip bgp
BGP table version is 3, local router ID is 2.2.2.2
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
*> 10.1.1.0/24 0.0.0.0 0 100 32768 ?
*> 10.1.2.0/24 0.0.0.0 0 100 32768 ?
*> 10.1.3.0/24 0.0.0.0 0 100 32768 ?
*> 10.1.4.0/24 0.0.0.0 0 100 32768 ?
*> 10.1.5.0/24 0.0.0.0 0 100 32768 ?
*> 20.1.1.0/24 0.0.0.0 0 100 32768 ?
Total number of prefixes 6
SW2#
SW2#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, E - EVPN,
v - vrf leaked
* - candidate default
IP Route Table for VRF "default"
C 10.1.1.0/24 is directly connected, xe32/1, 01:02:22
C 10.1.2.0/24 is directly connected, xe32/2, 01:01:46
C 10.1.3.0/24 is directly connected, xe32/4, 01:02:21
C 10.1.4.0/24 is directly connected, xe17/1, 00:26:52
C 10.1.5.0/24 is directly connected, xe21/1, 00:26:32
C 20.1.1.0/24 is directly connected, xe32/3, 01:02:22
C 127.0.0.0/8 is directly connected, lo, 01:34:40
Gateway of last resort is not set SW2#
Команды Show для Route-map
SW1#show running-config route-map
!
route-map myid1
permit 1
match ip address prefix-list PF1
continue
set metric 10
set weight 3465789
!
route-map myid1`permit
match ip address prefix-list P1
continue 3
set metric 20
set origin igp
!
route-map myid1 permit 3
match ip address prefix-list P2
continue 4
set metric 30
set as-path prepend 600
!
route-map myid1`permit
match ip address prefix-list P3
set local-preference 400
set weight 400
!
SW1#
SW1#show route-map
route-map myid1 , permit, sequence 1
Match clauses:
ip address prefix-list: PF1
Continue clause: next sequence
Set clauses:
metric 10
weight 3465789
route-map myid1 , permit, sequence 2
Match clauses:
ip address prefix-list: P1
Continue clause: sequence 3:
Set clauses:
metric 20
origin igp route-map
myid1 , permit, sequence 3
Match clauses:
ip address prefix-list: P2
Continue clause: sequence 4:
Set clauses:
metric 30
as-path prepend 600 route-map myid1 , permit, sequence 4
Match clauses:
ip address prefix-list: P3
Set clauses:
local-preference 400
weight 400
SW1#