Что такое Policy-Based Routing (PBR)?
PBR — это механизм, который позволяет переопределять стандартные правила
маршрутизации на основе заданных политик. В то время как стандартная
маршрутизация решает, куда отправить пакет, основываясь только на
IP-адресе назначения, PBR может принимать решение на основе стандартного ACL (спика доступа).
Типичные сценарии использования на коммутаторе:
- Сервисный шлюз:
Направить весь голосовой трафик (VoIP) через выделенный канал с низкой
задержкой, а весь остальной трафик — через основной интернет-канал. - Обход VPN: Направить трафик определенных серверов или подсетей напрямую в интернет, минуя VPN-туннель.
- Приоритизация: Отправлять трафик критически важных приложений через более надежный линк.
- Сегрегация трафика: Разделить трафик разных отделов (бухгалтерия, IT) через разные шлюзы.
Особенности и порядок работы Policy-Based Routing (PBR)
Команда ip policy route-map доступна только для конфигурации интерфейса VLAN. Укажите одну карту маршрутов (route map) в качестве политики маршрутизации на интерфейсе. Данная политика будет применяться к пакетам, поступающим на интерфейс.
Синтаксис: ip policy route-map MAP-NAME
где:
MAP-NAME — название карты маршрутов (route map), которая будет использоваться для политики маршрутизации.
Используйте команду match ip-address в карте маршрутов для определения критериев соответствия пакетов с определенными характеристиками. Если IP-список контроля доступа (ACL) используется с командой match ip-address, будут проверяться все критерии соответствия в этом списке. Пакет, который соответствует условию permit в ACL, будет обработан в соответствии с действиями, заданными в карте маршрутов. Пакет, который отклоняется (deny) списком доступа, маршрутизируется стандартно — на основе таблицы маршрутизации.
Следующий набор команд используется для определения действия, которое необходимо выполнить в рамках политики маршрутизации (PBR):
- set ip precedence (устанавливает значение приоритета пакета — биты DSCP/IP Precedence)
- set ip next-hop (задает конкретный адрес следующего хопа)
- set ip default next-hop (задает шлюз по умолчанию)
Если в указанной карте маршрутов используется команда no match ip-address, или если IP-ACL, настроенный для команды match ip-address карты маршрутов, не существует или существует, но не содержит ни одного правила, то вышеуказанные команды set выполняться не будут, и политика на интерфейсе не вступит в силу.
Этот пример показывает, как настроить политику маршрутизации для перенаправления пакетов, соответствующих IP-списку доступа с именем «pbr-acl», на next-hop с адресом 20.1.1.254:
Switch# configure terminal
Switch(config)# route-map pbr-map permit 1
Switch(config-route-map)# match ip address pbr-acl
Switch(config-route-map)# set ip next-hop 20.1.1.254
Switch(config-route-map)# exit
Switch(config)# interface vlan 100
Switch(config-if)# ip policy route-map pbr-map
Switch(config-if)#
Используйте команду show ip policy для отображения информации о политиках
маршрутизации, настроенных на интерфейсах.
Для создания route-map используется команда route-map MAP-NAME {permit | deny} SEQ-NUMBER
где:
- MAP-NAME — указывает название карты маршрутов (route map).
- permit — указывает, что маршруты, соответствующие правилу, разрешены.
- deny — указывает, что маршруты, соответствующие правилу, запрещены.
- SEQ-NUMBER — указывает порядковый номер записи в карте маршрутов. Диапазон значений: от 1 до 65535.
Карта маршрутов (route map) может содержать несколько записей, каждая из которых имеет тип permit (разрешить) или deny (запретить). Когда маршрут проверяется картой маршрутов, её записи анализируются последовательно
в соответствии с их порядковыми номерами. Если запись соответствует
критериям, выполняется связанное с ней действие, а последующие записи не проверяются.
Каждая запись карты маршрутов может содержать несколько условий (match) и действий (set). Чтобы запись считалась совпавшей, должны быть выполнены все её условия match. Если совпавшая запись имеет тип permit, выполняются все её действия set. Если совпавшая запись имеет тип deny, маршрут отбрасывается.
Этот пример показывает, как настроить политику маршрутизации (PBR) для перенаправления пакетов на следующий шлюз 120.1.2.2, когда исходный IP-адрес принадлежит сети 10.1.1.0/24. Пакеты принимаются на интерфейсе VLAN 100, и маршрут для их переадресации отсутствует в таблице маршрутизации.
Сначала создаем стандартный IP-список контроля доступа (ACL) с именем «Strict-Control», который разрешает префикс 10.1.1.0/24. Затем создаем карту маршрутов с именем «myPolicy», которая определяет правило соответствия, привязывая IP-адрес к ранее созданному ACL Strict-Control. Наконец, в режиме конфигурации интерфейса VLAN настроим политику маршрутизацию на использование карты маршрутов myPolicy.
Switch# configure terminal
Switch(config)# ip access-list Strict-Control
Switch(config-ip-acl)# permit 10.1.1.0 0.0.0.255 any
Switch(config-ip-acl)# exit
Switch(config)# route-map myPolicy permit 1
Switch(config-route-map)# match ip address Strict-Control
Switch(config-route-map)# set ip default next-hop 120.1.2.2
Switch(config-route-map)# exit
Switch(config)# interface vlan 100
Switch(config-if)# ip policy route-map myPolicy
Switch(config-if)#