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

10.6 Настройка Policy-Based Routing (PBR)

10.6.1 Введение в функционал

Policy-Based Routing (PBR) предоставляет гибкость в реализации маршрутизации и перенаправления пакетов в соответствии с заданными политиками, выходящими за рамки традиционных протоколов маршрутизации. Используя PBR, пользователи могут настроить маршрутизацию пакетов по различным путям, соответствующим их требованиям.

10.6.2 Конфигурация

Настройка PBR

Рисунок 10-17: PBR

Рисунок 10-17 PBR

На приведенной выше схеме - после включения PBR на интерфейсе eth-0-1 Switch1 пакеты от 172.16.6.1 будут перенаправляться на 172.16.4.2, а остальные пакеты будут маршрутизироваться по обычным маршрутам.

Настройка на Switch1:

Шаг 1: Войдите в режим конфигурации

Switch# configure terminal

Шаг 2: Создайте IP access list для соответствия исходным IP-адресам

Switch(config)# ip access-list acl1
Switch(config-ip-acl)# 10 permit any 172.16.6.0 0.0.0.255 any
Switch(config-ip-acl)# exit

Шаг 3: Создайте Route-map для сопоставления IP access list и назначения следующего перехода

Switch(config)# route-map rmap permit 10
Switch(config-route-map)# match ip address acl1
Switch(config-route-map)# set ip next-hop 172.16.4.2
Switch(config-route-map)# exit

Шаг 4: Настройте интерфейс, задайте IP-адрес и примените Route-map

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 172.16.5.2/24
Switch(config-if)# no shutdown
Switch(config-if)# ip policy route-map rmap
Switch(config-if)# exit

Шаг 5: Создайте статический маршрут с IP следующего перехода 172.16.4.3 (опционально)

Для перенаправления пакетов, которые не соответствуют условиям PBR, можно использовать статический маршрут.

Также эту задачу могут выполнять динамические протоколы, такие как RIP или OSPF.

Switch(config)# ip route 0.0.0.0/0 172.16.4.3

Шаг 6: Выйдите из режима конфигурации

Switch(config)# end

Шаг 7: Проверка

Switch# show ip policy route-map
Route-map interface
rmap eth-0-1

Настройка PBR с привязкой к BFD

Рисунок 10-18: PBR

Рисунок 10-18 PBR

На приведенной выше схеме: Switch2 перенаправляет пакеты на eth-0-13 в соответствии с маршрутами PBR. Если интерфейс eth-0-13 на Switch4 отключается, сессия BFD переходит в состояние down, трек 1 также будет down, и следующий переход 4.1.1.2 становится недействительным. Пакеты будут перенаправляться на eth-0-14.

Шаг 1: Настройка на Switch1

Switch1# configure terminal
Switch1(config)# interface eth-0-1
Switch1(config-if)# no shutdown
Switch1(config-if)# no switchport
Switch1(config-if)# ip address 1.1.1.1/24
Switch1(config-if)# interface eth-0-9
Switch1(config-if)# no shutdown
Switch1(config-if)# no switchport
Switch1(config-if)# ip address 2.1.1.1/24
Switch1(config-if)# quit
Switch1(config)# ip route 5.1.1.0/24 2.1.1.2
Switch1(config)# ip route 6.1.1.0/24 2.1.1.2

Шаг 2: Настройка на Switch2

Switch2# configure terminal
Switch2(config)# ip access-list acl1
Switch2(config-ip-acl)# 10 permit any host 2.1.1.1 any
Switch2(config-ip-acl)# quit
Switch2(config)# route-map rmap permit 10
Switch2(config-route-map)# match ip address acl1
Switch2(config-route-map)# set ip next-hop 4.1.1.2 track 1
Switch2(config-route-map)# quit
Switch2(config)# interface eth-0-9
Switch2(config-if)# no shutdown
Switch2(config-if)# no switchport
Switch2(config-if)# ip address 2.1.1.2/24
Switch2(config-if)# ip policy route-map rmap
Switch2(config-if)# interface eth-0-13
Switch2(config-if)# no shutdown
Switch2(config-if)# no switchport
Switch2(config-if)# ip address 4.1.1.1/24
Switch2(config-if)# interface eth-0-14
Switch2(config-if)# no shutdown
Switch2(config-if)# no switchport
Switch2(config-if)# ip address 5.1.1.1/24
Switch2(config-if)# quit
Switch2(config)# track 1 bfd source interface eth-0-13 destination 4.1.1.2
Switch2(config-track)# quit
Switch2(config)# ip route 1.1.1.0/24 2.1.1.1
Switch2(config)# ip route 6.1.1.0/24 5.1.1.2

Шаг 3: Настройка на Switch4

Switch4# configure terminal
Switch4(config)# interface eth-0-1
Switch4(config-if)# no shutdown
Switch4(config-if)# no switchport
Switch4(config-if)# ip address 6.1.1.1/24
Switch4(config-if)# interface eth-0-13
Switch4(config-if)# no shutdown
Switch4(config-if)# no switchport
Switch4(config-if)# ip address 4.1.1.2/24
Switch4(config-if)# interface eth-0-14
Switch4(config-if)# no shutdown
Switch4(config-if)# no switchport
Switch4(config-if)# ip address 5.1.1.2/24
Switch4(config-if)# quit
Switch4(config)# track 1 bfd source interface eth-0-13 destination 4.1.1.1
Switch4(config-track)# quit
Switch4(config)# ip route 1.1.1.0/24 5.1.1.1
Switch4(config)# ip route 2.1.1.0/24 5.1.1.1

Шаг 4: Команда ping 6.1.1.1 на Switch2 приведет к перенаправлению пакетов на интерфейс eth-0-13

Switch1# ping 6.1.1.1
PING 6.1.1.1 (6.1.1.1) 56(84) bytes of data.
64 bytes from 6.1.1.1: icmp_seq=1 ttl=63 time=417 ms
64 bytes from 6.1.1.1: icmp_seq=2 ttl=63 time=428 ms
64 bytes from 6.1.1.1: icmp_seq=3 ttl=63 time=441 ms
64 bytes from 6.1.1.1: icmp_seq=4 ttl=63 time=469 ms
64 bytes from 6.1.1.1: icmp_seq=5 ttl=63 time=461 ms

--- 6.1.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 6810ms
rtt min/avg/max/mdev = 417.834/443.810/469.720/19.470 ms

Шаг 5: Проверка после отключения интерфейса eth-0-13 на Switch4

Switch4# configure terminal
Switch4(config)# interface eth-0-13
Switch4(config-if)# shutdown

Шаг 6: Проверка

Switch2# show track
Track 1
Type : BFD state
Source interface : eth-0-13
Destination IP : 4.1.1.2
BFD Local discr : 8192
rmap : pref 10 track 1
State : down

Switch2# show bfd session
Abbreviation:
LD: Local Discriminator. RD: Remote Discriminator
S: Single hop session. M: Multi hop session.
SD: Static Discriminator. DD: Dynamic Discriminator
SBFD: Seamless BFD
A: Admin down. D:Down. I:Init. U:Up.
============================================================================
LD RD TYPE ST UP-Time Remote-Addr Sbfd-Type VRF

8192 0 S-DD D 00:00:00 4.1.1.2 None default

Number of Sessions: 1
Switch2 will forward packet to eth-0-14
Switch# ping 6.1.1.1
PING 6.1.1.1 (6.1.1.1) 56(84) bytes of data.
64 bytes from 6.1.1.1: icmp_seq=1 ttl=63 time=414 ms
64 bytes from 6.1.1.1: icmp_seq=2 ttl=63 time=432 ms
64 bytes from 6.1.1.1: icmp_seq=3 ttl=63 time=424 ms
64 bytes from 6.1.1.1: icmp_seq=4 ttl=63 time=525 ms
64 bytes from 6.1.1.1: icmp_seq=5 ttl=63 time=437 ms

--- 6.1.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 6563ms
rtt min/avg/max/mdev = 414.720/446.816/525.276/39.949 ms