Policy routing - это более гибкий механизм маршрутизации пакетов, чем
адресная маршрутизация (destination routing). Его главная особенность
состоит в том, что перед маршрутизацией все пакеты проходят через
маршрутную карту (route map), которая определяет, какие пакеты
маршрутизировать и какой роутер будет следующим. Вы можете включить
policy routing если хотите, чтобы некоторые пакеты были направлены по
пути, отличному от очевидно самого короткого пути (the obvious
shortest path), то есть пути взятого из таблицы маршрутизации.
Наиболее вероятные применения policy routing - предоставление равного
доступа; маршрутизация, зависимая от типа протокола; маршрутизация от
источника; маршрутизация основанная на диалоге, а не на классовой
маршрутизации; маршрутизация на выделенных линиях.
Чтобы включить policy routing вы должны создать маршрутную карту,
которая определяет какие именно пакеты она должна обрабатывать и какие
действия с ними необходимо выполнить.
Чтобы включить policy routing на интерфейсе, в режиме конфигурации
интерфейса командой ip policy route-map name-map где, route map - имя
маршрутной карты. Все пакеты, прибывающие на этот интерфейс, будут
обработаны этой маршрутной картой. Помните, что эта команда отключает
режим fast switching для всех пакетов, прибывающих на этот интерфейс.
Для создания маршрутной карты вы должны перейти в режим глобальной
конфигурации и воспользоваться следующей командой:
route-map name-map [permit | deny] [sequence-number]
map tag это имя, которое идентифицирует route map;
sequence number идентифицирует положение данного правила в route map
относительно других правил в том же самом route map.
Например, вы можете использовать следующие команды конфигурации
роутера для определения route map с именем MYMAP:
route-map MYMAP permit 10
! здесь будет набор правил, которые выполнятся первыми
route-map MYMAP permit 20
! а здесь - набор правил, которые выполнятся в том случае,
! если не выполнятся правила, указанные в разделе с sequence number = 10
Если выполнилось правило с номером N, то правила с большими номерами
не рассматриваются.
На следующем шаге вы определяете сами правила, в соответствии с
которыми пакеты будут или не будут обработаны маршрутной картой.
Например:
match lenght min max
накладаывает ограничения на длину IP-пакета;
match ip address {ACL-number | name} [...ACL-number | name]
маршрутной картой будут обработаны только пакеты, удовлетворяющие
перечисленным стандартным или расширенным спискам доступа
(access-list).
Эти правила указываются в режиме конфигурации route-map. Отсутствие
правил приводит к обработке всех пакетов. Команда no match ... удаляет
определенное правило.
Последний шаг при настройке policy routing'а определяет, куда
отправить пакеты, которые были отобранны на предыдущем шаге. Этот шаг
также делается в режиме конфигурации route-map одной или несколькими
указанными ниже командами:
set ip next-hop ip-address [... ip-address]
определяет следующий hop, куда будет направлен пакет пакет. Это должен
быть соседний роутер;
set interface type number [... type number]
определяет выходной интерфейс для пакета;
set ip default next-hop ip-address [... ip-address]
определяет следующий hop на который роутится пакет, если не имеется
никакого явного маршрута для этого адреса. Это должен быть соседний
роутер;
set default interface type number [... type number]
определяет выходной интерфейс для пакета, если не имеется никакого
явного маршрута для этого адреса
Команды set могут быть использованы совместно друг с другом. Они
оцениваются в порядке, указанном выше. Пригодный для использования
следующий hop подразумевает интерфейс маршрутизатора. Форма команды no
set ... удаляет определенную ранее команду set.
Пакеты, которые возникают внутри самого маршрутизатора не поддаются
нормальному (описанному выше) процессу policy routing'а. Для таких
пакетов необходимо включить локальный policy routing. Для этого в
режиме глобальной конфигурации определите route map, которая будет
использоваться в этом режиме: ip local policy
route-map name-map. После чего все пакеты, возникшие на роутере, будут
подчинятся правилам local policy routing.
Пример.
Первый пример показывает, как обеспечить два источника пакетов равным
доступом к двум различным провайдерам. Пакеты, прибывающие на Async
Interface 1 из источника с адресом 1.1.1.1, направляются на адрес
6.6.6.6, если маршрутизатор не имеет никакого явного маршрута для этих
пакетов. Пакеты, прибывающие из источника с адресом 2.2.2.2
направляются на адрес 7.7.7.7, если маршрутизатор не имеет никакого
явного маршрута для этих пакетов. Все другие пакеты, для которых
маршрутизатор не имеет никакого явного маршрута адресату,
отбрасываются.
!
access-list 1 permit host 1.1.1.1
access-list 2 permit host 2.2.2.2
!
interface async 1
ip policy route-map equal-access
!
route-map equal-access permit 10
match ip address 1
set ip default next-hop 6.6.6.6
!
route-map equal-access permit 20
match ip address 2
set ip default next-hop 7.7.7.7
!
route-map equal-access permit 30
set default interface null0
!
Во втором примере пакеты, с IP адресом назначения 174.95.16.18
направляются по адресу 174.21.3.20
!
interface serial 0
ip policy route-map wethersfield
!
route-map wethersfield
match ip address 174.95.16.18
set ip next-hop 174.21.3.20
!
В этом примере пакеты, длиной от 3 до 200 bytes включительно, будут
роутится на интерфейс FDDI 0:
!
interface serial 0
ip policy route-map interactive
!
route-map interactive
match length 3 200
set interface fddi 0
!
В следующем примере пакеты, имеющие адреса описанные в access list с
номерами 6 или 25, будут роутится на интерфейс Ethernet 0
!
interface serial 0
ip policy route-map chicago
!
route-map chicago
match ip address 6 25
set interface ethernet 0
!
Статистика
Router#show ip local policy
Покажет вам что у вас творится с вашим локальным policy routing'ом и
его конфигурацию
Router#show ip policy
Покажет вам какие route-map и на каких интефейсах у вас имеются
Router#show route-map
Покажет вам что у вас творится с вашим policy routing'ом, а, заодно, и
его конфигурацию
Отладка
Router#debug ip policy
Такой командой вы можете включить режим, который поможет вам
определить, что делает policy routing - попадают ли пакеты под
соответствующие правила и информацию о маршрутизации пакета
Предостережение. Внимательно отнеситесь к включению этого режима, так
как он может дать на выходе очень много информации, что неблагоприятно
отразится на работе вашего маршрутизатора. Используйте этот режим при
низком трафике через маршрутизатор, или укажите список доступа,
который будет ловить интересующие вас пакеты.