PBR (policy based routing) - маршрутизация на основе политик позволяет маршрутизировать трафик на основании заданных политик, тогда как в обычной маршрутизации, только IP-адрес получателя определяет каким образом будет передан пакет.
PBR может применяться, как для сквозного трафика, так и для трафика, который генерируется маршрутизатором.
Примеры задач, которые PBR может решить:
1. Маршрутизировать трафик по любому признаку, который можно указать в ACL (IP отправителя и получателя, порты TCP/UDP).
2. Маршрутизировать VoIP трафик через один канал, а весь остальной, через другой.
3. Маршрутизировать трафик пользователей VLAN 10 через один канал, в пользователей VLAN 20 через другой.
4. Маршрутизировать трафик, который генерирует маршрутизатор, по определенному пути.
PBR перехватывает пакеты до стандартной маршрутизации и отправляет пакеты по настроенным правилам. Если для группы пакетов в PBR не указано как их маршрутизировать, то они будут отправлены по стандартным правилам маршрутизации.
Рассмотрим настройку PBR на примере следующей топологии:
Зададимся условием: трафик от источника 1.1.1.1 до адреса назначения 3.3.3.3 должен идти через 10.0.1.2. Остальной трафик должен идти через 192.168.1.2.
Базовая настройка выглядит следующим образом:
AR1
interface GigabitEthernet0/0/2
ip address 172.16.1.2 255.255.255.0
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
ospf 1
area 0
network 1.1.1.1 0.0.0.0
network 172.16.1.0 0.0.0.255
AR2
interface GigabitEthernet0/0/0
ip address 192.168.1.1 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.0.1.1 255.255.255.0
interface GigabitEthernet0/0/2
ip address 172.16.1.1 255.255.255.0
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
ospf 1
area 0
network 2.2.2.2 0.0.0.0
network 10.0.1.0 0.0.0.255
network 172.16.1.0 0.0.0.255
network 192.168.1.0 0.0.0.255
AR3
interface GigabitEthernet0/0/0
ip address 192.168.1.2 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.0.1.2 255.255.255.0
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
ospf 1
area 0
network 3.3.3.3 0.0.0.0
network 10.0.1.0 0.0.0.255
network 192.168.1.0 0.0.0.255
Для исключения балансировки нагрузки, увеличим стоимость OSPF на порту GE0/0/1 между маршрутизаторами AR2 и AR3:
interface GigabitEthernet 0/0/1
ospf cost 100
Далее на AR2 настроим правило, которое будет разрешать трафик от источника 1.1.1.1 до места назначения 3.3.3.3:
acl number 3000
rule 5 permit ip source 1.1.1.1 0 destination 3.3.3.3 0
Настраиваем правило – какой трафик будет маршрутизироваться согласно PBR и куда его перенаправлять:
traffic classifier c1
if-match acl 3000
traffic behavior b1
redirect ip-nexthop 10.0.1.2
statistics enable
Применяем созданное правило к политике и затем привязываем политику к интерфейсу GE0/0/2:
traffic policy p1
classifier c1 behavior b1
interface GigabitEthernet 0/0/2
traffic-policy p1 inbound
На этом настройкаPBR окончена. Теперь мы можем проверить его работу. На AR1 запустимтрассировку до3.3.3.3:
[AR1] tracert -a 1.1.1.1 3.3.3.3
traceroute to 3.3.3.3(3.3.3.3), max hops: 30 ,packet length: 40,press CTRL_C to break
1 172.16.1.1 40 ms 20 ms 10 ms
2 10.0.1.2 30 ms 30 ms 20 ms
Как видим, политика работает. Трафик идёт через адрес 10.0.1.2.
Теперь снова запустим трассировку, но не будем указывать с какого IP отправлять пакеты:
[AR1] tracert 3.3.3.3
traceroute to 3.3.3.3(3.3.3.3), max hops: 30 ,packet length: 40,press CTRL_C to break
1 172.16.1.1 20 ms 20 ms 20 ms
2 192.168.1.2 20 ms 40 ms 20 ms
Как видим, PBR работает корректно. Трафик, который не попадает под ACL правило, обрабатывается согласно таблице маршрутизации. Проверим статистику пакетов:
[AR1] ping -a 1.1.1.1 -c 50 3.3.3.3
[AR2] display traffic policy statistics interface GigabitEthernet 0/0/2 inbound
Interface: GigabitEthernet0/0/2
Traffic policy inbound: p1
Rule number: 1
Current status: OK!
Item Sum(Packets/Bytes) Rate(pps/bps)
-------------------------------------------------------------------------------
Matched 50/6,100 1/1,528
+--Passed 50/6,100 1/1,528
+--Dropped 0/0 0/0
+--Filter 0/0 0/0
+--CAR 0/0 0/0
+--Queue Matched 0/0 0/0
+--Enqueued 0/0 0/0
+--Discarded 0/0 0/0
+--Car 0/0 0/0
+--Green packets 0/0 0/0
+--Yellow packets 0/0 0/0
+--Red packets 0/0 0/0
[AR1] ping -c 50 3.3.3.3
[AR2] display traffic policy statistics interface GigabitEthernet 0/0/2 inbound
Interface: GigabitEthernet0/0/2
Traffic policy inbound: p1
Rule number: 1
Current status: OK!
Item Sum(Packets/Bytes) Rate(pps/bps)
-------------------------------------------------------------------------------
Matched 50/6,100 0/0
+--Passed 50/6,100 0/0
+--Dropped 0/0 0/0
+--Filter 0/0 0/0
+--CAR 0/0 0/0
+--Queue Matched 0/0 0/0
+--Enqueued 0/0 0/0
+--Discarded 0/0 0/0
+--Car 0/0 0/0
+--Green packets 0/0 0/0
+--Yellow packets 0/0 0/0
+--Red packets 0/0 0/0
Как видим, если задать адрес источника как 1.1.1.1, то пакеты попадают под ACL правило и политика применяется. Дляостального трафика политикане применяется.