5.6. Настройка PBR (Policy-Based Routing)
Назначение
PBR (маршрутизация на основе политик) предназначена для пересылки и маршрутизации пакетов в соответствии с заданными политиками.
Описание
PBR не входит в спецификации традиционных протоколов маршрутизации.
Используя маршрутизацию на основе политик, можно избирательно направлять трафик по определенным маршрутам.
Настройка
Настройка PBR
Ниже показана настройка в соответствии с представленной сетевой конфигурацией.
После включения PBR на интерфейсе “eth-0-1” коммутатора “Switch1”, пакеты с узла 172.16.6.1
должны пересылаться на узел 172.16.4.2
, а остальные пакеты должны пересылаться в соответствии с исходными маршрутами.
Ниже приведена настройка коммутатора “Switch1”.
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Создание листа ACL с 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: Создание и настройка политики маршрутизации
Создание политики маршрутизации, настройка совпадения с ACL, установка адреса nexthop:
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: Настройка порта
Вход в режим конфигурации порта, настройка порта и применение политики маршрутизации
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: Создание статического маршрута с адресом nexthop 172.16.4.3
(необязательно)
Подсказка
Для пересылки пакетов, не попавших в PBR, можно использовать статический маршрут или протоколы динамической маршрутизации такие как RIP или OSPF.
Switch(config)# ip route 0.0.0.0/0 172.16.4.3
Шаг 6: Выход из режима “Global config”
Switch(config)# end
Шаг 6: Проверка
Switch# show ip policy route-map
Route-map interface
rmap eth-0-1
Настройка связи PBR и BFD
Показана настройка коммутаторов “Switch1” - “Switch3” в соответствии с представленной конфигурацией сети.
Коммутатор “Switch2” будет пересылать пакеты на “eth-0-13” в соответствии с маршрутами PBR. После того, как порт “eth-0-13” коммутатора “Switch3” отключится, статусы сессий BFD будут отключены, затем отключится маршрут “track 1”, и PBR nexthop (4.1.1.2
) станет недействительным. Трафик будет пересылаться на “eth-0-14”.
Шаг 1: Настройка коммутатора “Switch1”
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: Настройка коммутатора “Switch3”
Switch3# configure terminal
Switch3(config)# interface eth-0-1
Switch3(config-if)# no shutdown
Switch3(config-if)# no switchport
Switch3(config-if)# ip address 6.1.1.1/24
Switch3(config-if)# interface eth-0-13
Switch3(config-if)# no shutdown
Switch3(config-if)# no switchport
Switch3(config-if)# ip address 4.1.1.2/24
Switch3(config-if)# interface eth-0-14
Switch3(config-if)# no shutdown
Switch3(config-if)# no switchport
Switch3(config-if)# ip address 5.1.1.2/24
Switch3(config-if)# quit
Switch3(config)# track 1 bfd source interface eth-0-13 destination 4.1.1.1
Switch3(config-track)# quit
Switch3(config)# ip route 1.1.1.0/24 5.1.1.1
Switch3(config)# ip route 2.1.1.0/24 5.1.1.1
Шаг 4: Отправка ping-запросов на IP-адрес 6.1.1.1
На сбросить статистику пакетов на портах коммутатора “Switch2”:
Switch2# clear counters
Отправка ping-запросов на адрес 6.1.1.1
c коммутатора “Switch1”:
Switch1# ping -a 2.1.1.1 6.1.1.1
PING 6.1.1.1 (6.1.1.1) from 2.1.1.1 : 56(84) bytes of data.
64 bytes from 6.1.1.1: icmp_seq=1 ttl=63 time=1.56 ms
64 bytes from 6.1.1.1: icmp_seq=2 ttl=63 time=1.39 ms
64 bytes from 6.1.1.1: icmp_seq=3 ttl=63 time=1.38 ms
64 bytes from 6.1.1.1: icmp_seq=4 ttl=63 time=1.51 ms
64 bytes from 6.1.1.1: icmp_seq=5 ttl=63 time=1.34 ms
--- 6.1.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 1.343/1.440/1.563/0.096 ms
Коммутатор “Switch2” перешлет пакеты (ICMP запросы) через порт “eth-0-13”, но ответы получит на порт “eth-0-14”, что соответствует настроенному PBR (он настроен на “Switch2” и влияет только на пакеты, идущие от “Switch1” до “Switch3”):
Switch2# show interface eth-0-14
Interface eth-0-14
Interface current state: UP
Hardware is Ethernet, address is 0058.3f1c.fe85 (bia 0058.3f1c.fe85)
Bandwidth 1000000 kbits
Index 5 , Metric 1 , Encapsulation ARPA
Speed - 1000Mb/s , Duplex - Full , Media type is 1000BASE_T
Last up time(UTC): 2024-10-30 07:16:19
Last down time(UTC): 2024-10-30 07:15:42
Current system time(UTC): 2024-10-30 07:48:49
Link type is autonegotiation
FEC config: DEFAULT
FEC status: OFF
Admin input flow-control is off, output flow-control is off
Oper input flow-control is off, output flow-control is off
The Maximum Frame Size is 9600 bytes
The maximum transmit unit (MTU) is 1500 bytes
VRF binding: not bound
VRRP master of : VRRP is not configured on this interface
ARP timeout 01:00:00, ARP retry interval 1s
ARP Proxy is disabled, Local ARP Proxy is disabled
Internet primary address:
5.1.1.1/24 broadcast 5.1.1.255
5 minute input rate 13 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
5 packets input, 610 bytes
Received 5 unicast, 0 broadcast, 0 multicast
0 runts, 0 giants, 0 input errors, 0 CRC
0 frame, 0 overrun, 0 pause input
0 packets output, 0 bytes
Transmitted 0 unicast, 0 broadcast, 0 multicast
0 underruns, 0 output errors, 0 pause output
0 output discard
Шаг 5: Отключение порта “eth-0-13” коммутатора “Switch3”
Switch3# configure terminal
Switch3(config)# interface eth-0-13
Switch3(config-if)# shutdown
Шаг 6: Проверка
Switch3# 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
Switch3# 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 A 00:00:00 4.1.1.2 None default
Number of Sessions: 1
Сброс статистики пакетов на портах коммутатора “Switch2”:
Switch2# clear counters
Отправка ping-запросов на адрес 6.1.1.1
c коммутатора “Switch1”:
Switch1# ping -a 2.1.1.1 6.1.1.1
PING 6.1.1.1 (6.1.1.1) from 2.1.1.1 : 56(84) bytes of data.
64 bytes from 6.1.1.1: icmp_seq=1 ttl=63 time=1.56 ms
64 bytes from 6.1.1.1: icmp_seq=2 ttl=63 time=1.39 ms
64 bytes from 6.1.1.1: icmp_seq=3 ttl=63 time=1.38 ms
64 bytes from 6.1.1.1: icmp_seq=4 ttl=63 time=1.51 ms
64 bytes from 6.1.1.1: icmp_seq=5 ttl=63 time=1.34 ms
--- 6.1.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 1.343/1.440/1.563/0.096 ms
Коммутатор “Switch2” перешлет пакеты (ICMP запросы) через порт “eth-0-14”, и ответы получит также на порт “eth-0-14”, т.к. порт “eth-0-13” отключен и BFD-сессия оборвалась:
Switch2# show interface eth-0-14
Interface eth-0-14
Interface current state: UP
Hardware is Ethernet, address is 0058.3f1c.e099 (bia 0058.3f1c.e099)
Description: DUT1
Bandwidth 1000000 kbits
Index 5 , Metric 1 , Encapsulation ARPA
Speed - 1000Mb/s , Duplex - Full , Media type is 1000BASE_T
Last up time(UTC): 2024-10-30 07:17:23
Last down time(UTC): 2024-10-30 07:16:47
Current system time(UTC): 2024-10-30 08:07:29
Link type is autonegotiation
FEC config: DEFAULT
FEC status: OFF
Admin input flow-control is off, output flow-control is off
Oper input flow-control is off, output flow-control is off
The maximum frame size is 9600 bytes
The maximum transmit unit (MTU) is 1500 bytes
VRF binding: not bound
VRRP master of : VRRP is not configured on this interface
ARP timeout 01:00:00, ARP retry interval 1s
ARP Proxy is disabled, Local ARP Proxy is disabled
Internet primary address:
5.1.1.2/24 broadcast 5.1.1.255
5 minute input rate 13 bits/sec, 0 packets/sec
5 minute output rate 13 bits/sec, 0 packets/sec
5 packets input, 610 bytes
Received 5 unicast, 0 broadcast, 0 multicast
0 runts, 0 giants, 0 input errors, 0 CRC
0 frame, 0 overrun, 0 pause input
5 packets output, 610 bytes
Transmitted 5 unicast, 0 broadcast, 0 multicast
0 underruns, 0 output errors, 0 pause output
0 output discard