Route map — карта маршрутизации или настройка Policy-based routing (PBR). PBR представляет собой очень гибкий инструмент для настройки маршрутизации. PBR в Cisco может применяться для настройки маршрута относительно IP адреса источника трафика. Так, например, актуально использовать PBR в том случае, когда необходимо разграничить трафик идущий из различных сетей или попросту от разных хостов и направить его на выбранный вами шлюз или IP адрес в сети.
Прежде чем приступить к настройке PBR, необходимо создать список доступа (для универсальности, можно создать сразу расширенный список доступа). В списке доступа мы укажем сети (допустим пользовательскую и гостевую) из которой весь дефолтный трафик будет завернут например на ISA сервер.
Пример:
ip access-list extended ISA 10 permit ip 172.16.10.0 0.0.0.255 any 20 permit ip 172.16.20.0 0.0.0.255 any
Затем необходимо создать правило маршрутизации или карту маршрутизации (Route-map), где нужно указать то, что мы хотим, чтобы маршрутизатор (в нашем случае под маршрутизатором выступает Layer 3 коммутатор, или коммутатор третьего уровня) обратил внимание на сеть, указанную в списке доступа, командой match , а командой set — то, что мы хотим сделать с данными подпадающими под правило match. В этой статье мы ограничимся командами match ip address и set ip next hop. Более детальный список функций match и set можно найти на сайте cisco.com.
Пример:
route-map ISA permit 10 match ip address ISA set ip next-hop 172.16.30.150
В приведенном примере весь трафик из сетей, попадающих в диапазон списка доступа ISA, будет направлен *здесь ВНИМАНИЕ!* не просто на адрес 172.16.30.150, а буквально на следующий прыжок или хоп 172.16.30.150. Т.е. если сеть с адресом 172.16.30.150 не подключена напрямую к маршрутизатору, правило route-map не сработает! Адрес 172.16.30.150 должен быть доступен в одном хопе от маршрутизатора.
Теперь можно применить правило на входящем интерфейсе VLAN.
int vlan 10 ip policy route-map ISA int vlan 20
ip policy route-map ISA
Просмотреть политику PBR можно командой show route-map.
Теперь весь трафик по умолчанию c указанных сетей пойдет на адрес 172.16.30.150. Трафик из других сетей не будет обрабатываться картой маршрутизации и будет обработан согласно маршрутизации по умолчанию.
Теперь попробуйте ответить на вопрос, что будет если хост в сети 172.16.10.0/24 захочет обратиться к хосту в сети 172.16.40.0/24? Правильно ли вы ответили я не знаю, но этот хост не сможет обратиться к кому-либо в сети 172.16.40.0. Все потому, что согласно нашей политике маршрутизации все данные от этого хоста будут направлены на сервер с адресом 172.16.30.150, который может не знать о существовании сети 172.16.40.0/24.
Чтобы решить эту проблему нужно добавить одну строку в списке доступа, которая запретит отправлять трафик, предназначенный локальному пользователю, на адрес ISA сервера. Вместо этого этот трафик будет отправлен туда, куда предназначен согласно маршрутизации по умолчанию.
Пример:
ip access-list extended ISA 10 deny ip any 172.16.0.0 0.0.255.255 20 permit ip 172.16.10.0 0.0.0.255 any 30 permit ip 172.16.20.0 0.0.0.255 any
Резюмируя конфигурацию, мы добились того, что данные, происходящие из сетей 172.16.10.0/24 и 172.16.20.0/24, по умолчанию уходят на ISA сервер с адресом 172.16.30.150, а все данные предназначенные для других локальных сетей и хостов, не обрабатываются PBR, а маршрутизируются между внутренними сетями как заданно по умолчанию.
ip access-list extended ISA 10 deny ip any 172.16.0.0 0.0.255.255 20 permit ip 172.16.10.0 0.0.0.255 any 30 permit ip 172.16.20.0 0.0.0.255 any route-map ISA permit 10 match ip address ISA set ip next-hop 172.16.30.150 int vlan 10 ip policy route-map ISA int vlan 20 ip policy route-map ISA