воскресенье, 3 августа 2014 г.

Policy Routing в маршрутизаторах Cisco

Полиси роутинг (policy routing) - это более гибкий механизм маршрутизации пакетов, чем адресная маршрутизация (destination routing). Его главная особенность состоит в том, что перед маршрутизацией все пакеты проходят через настроенную вами route map и уже это самое route map определяет, какие пакеты затем отправлять к каким маршрутизаторам и по каким путям. Вы можете включить policy routing если хотите, чтобы некоторые пакеты были направлены по пути, отличающемуся от, как его обзывают в документации CISCO, очевидно самого короткого пути (the obvious shortest path), ну, например, чтобы они шли по пути, отличному от default routing.
Чтобы включить policy routing вы должны определить, какая route map будет использоваться для policy routing и создать эту route map, в которой непосредственно определены критерии соответствия и действия, которые будут происходить в результате выполнения всех определенных критериев соответствия.
Чтобы включить policy routing на интерфейсе, в режиме конфигурации интерфейса командой ip policy route-map name-map  укажите, какую route map должен использовать маршрутизатор для выполнения поставленной задачи. И все пакеты прибывающие на этот интерфейс будут подчинятся правилам policy routing. Помните, что эта команда отключает режим fast switching для всех пакетов, прибывающих на этот интерфейс.
Затем вы должны в режиме глобальной конфигурации командой route-map name-map [permit | deny] [sequence-number] описать эту, используемую для полиси роутинга, route map.
Следующий шаг должен указать критерии, в соответствии с которыми маршрутизатор будет определять, подвергнуть ли пакеты полиси роутингу (policy routed). Например, match lenght min max  определяет критерий соответствия по Level 3 длине пакета; или match ip address {access-list-number | name} [...access-list-number | name]   определяет критерий соответствия по IP адресу (destination IP address), который входит в один или более стандартный или расширенный акцесс лист (access list). Эти критерии указываются в режиме route-map конфигурации. Отсутствие настроек соответствия указывает на все пакеты. Форма команды no match ... удаляет определенный критерий сответствия.
И последнее, при настройке policy routing, маршрутизатор должен определить, куда выводятся пакеты, которые подходят по критериям соответствия.   Этот шаг также делается в режиме route-map конфигурации одной или несколькими указанными ниже командами:
  1. set ip next-hop ip-address [... ip-address] определяет следующий hop, на который роутится пакет. Эта настройка в документации CISCO идет с предупреждением - it need not be adjacent router.
  2. set interface type number [... type number] определяет выходной интерфейс для пакета;
  3. set ip default next-hop ip-address [... ip-address] определяет следующий hop на который роутится пакет, если не имеется никакого явного маршрута для этого адреса;
  4. set default interface type number [... type number] определяет выходной интерфейс для пакета, если не имеется никакого явного маршрута для этого адреса
Команды set могут быть использованы совместно друг с другом. Они оцениваются в порядке, указанном выше. Пригодный для использования следующий hop подразумевает интерфейс маршрутизатора. Форма команды no set ...удаляет определенную ранее команду set.
Пакеты, которые генерируются самим маршрутизатором не потдаются нормальному (описанному выше) процессу полиси роутинга. Для таких пакетов необходимо включить локальный полиси роутинг (local policy routing). Для этого в режиме глобальной конфигурации определите route map которая будет использоваться в этом режиме: ip local policy route-map name-map. После чего все пакеты, возникшие на роутере, будут подчинятся правилам local policy routing.
P.S. Интересный пример использования ip local policy route-map : как известно, пакеты, исходящие с самого маршрутизатора, не попадают в фильтры, однако зарезать их тем не менее можно отловив с помощью ip local policy route-map и направив в какое-нибудь непотребное место, типа set int null0

Пример полиси роутинга, данный в документации CISCO

Первый пример показывает, как обеспечить два источника пакетов равным доступом к двум различным провайдерам. Пакеты, прибывающие на Async Interface 1 из источника с адресом 1.1.1.1, направляются   на адрес 6.6.6.6, если маршрутизатор не имеет никакого явного маршрута для этих пакетов. Пакеты, прибывающие из источника с адресом 2.2.2.2 направляются  на адрес 7.7.7.7, если маршрутизатор не имеет никакого явного маршрута для этих пакетов. Все другие пакеты, для которых маршрутизатор не имеет никакого явного маршрута адресату, отбрасываются.
access-list 1 permit ip 1.1.1.1
access-list 2 permit ip 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


Обзор команд, использующихся при настройке и обслуживании policy routing

ip policy route-map
Для включения policy routing и идентификации используемой  route map вы должны в режиме конфигурации интерфейса использовать команду
ip policy route-map map-tag
, где map-tag - наименование используемой route map. Такое же имя при последующей настройке должно использоваться в команде route-map
Для отключения полиси роутинга вы должны в режиме конфигурации интерфейса использовать команду no ip policy route-map map-tag
Каждая команда ip policy route-map должна иметь набор связанных с ней команд match и set.

route-map
Это команда служит двоякой цели:
во-первых, чтобы определять условия для перераспределения маршрутов (for redistributing routes) из одного routing protocol в другой (Вариант работы этой команды в режиме перераспределения маршрутов здесь рассматриваться не будет. Вы можете его изучить в документации CISCO);
во-вторых, для описания route map, используемой для полиси роутинга, в режиме глобальной конфигурации необходимо ввести
route-map map-tag [permit | deny] [sequence-number]
, где map-tag - наименование используемой route map (должно совпадать с именем, используемом в команде ip policy route-map );
permit - указывает, что при выполнении критериев соответствия для этой route map пакеты полисироутятся. Эта опция используется по умолчанию;
deny -  указывает, что при невыполнении критериев соответствия для этой route map пакеты не полисироутятся, т. е. возвращаются к нормальному алгоритму пересылки;
sequence-number - указывает номер route map в списке при использовании нескольких route map с одинаковыми именами. Для удаления какой-либо из этих route map из списка, используйте эту опцию в форме no. Если sequence-number в описании не используется, тогда sequence-number имеет значение по умолчанию 10. Значение sequence-number не может быть изменено в дальнейшем.
Для удаления route map, используйте в режиме глобальной конфигурации - no route-map map-tag [permit | deny] [sequence-number]
Каждая команда route-map должна иметь набор связанных с ней команд match и set.

show ip local policy 
Вам следует использовать эту команду (в EXEC режиме), чтобы посмотреть, что у вас творится с вашим локальным полисироутингом, а, заодно, и его конфигурацию
show ip policy 
Вам следует использовать эту команду (в EXEC режиме), чтобы посмотреть, какие route-map и на каких интефейсах у вас имеются
show route-map 
Вам следует использовать эту команду (в EXEC режиме), чтобы посмотреть, что у вас творится с вашим полисироутингом, а, заодно, и его конфигурацию

debug ip policy
Такой командой (в EXEC режиме) вы можете включить режим, который поможет вам определить, что делает полиси роутинг - попадают ли пакеты в критерии соответствия и информацию о маршрутизации пакета
Предостережение. Внимательно отнеситесь к включению этого режима, так как он может дать на выходе очень много информации, что неблагоприятно отразится на работе вашего маршрутизатора. Так что постарайтесь использовать этот режим при низком трафике через ваш маршрутизатор, а то и вовсе выключите этот режим, воспользовавшись (в EXEC режиме) командой no debug ip policy

Пример policy routing

            Линк к Провайдеру 1          Линк к Провайдеру 2 
                   AA.AA.AA.36           BB.BB.BB.145
                     |                                |
                     |                                |
       Serial 0 (AA.AA.AA.37/30)     Serial 2 (BB.BB.BB.146/30)
                   ROUTER 1                  ROUTER 2
           Eth0 (BB.BB.BB.12/29;        Eth0 (BB.BB.BB.10/29;
                 CC.CC.CC.01/27)              CC.CC.CC.10/29)
                              |                           |
                              |                           |
                                ---- HUB ---------------
                                      |
                                      |
                            Eth0 (BB.BB.BB.09/29;
                                  CC.CC.CC.02/27)
                                   ROUTER 3
                                      |
                                      |
                                внутренние сети
Алгоритм таков: у этого провайдера имеется несколько сеток класса С, причем одни из них должны были ходить в Интернет через Провайдера1 (допустим, что это сети CC.CC.CC.0, EE.EE.EE.0, HH.HH.HH.0 и LL.LL.LL.0) , а другие (допустим, что это сети BB.BB.BB.0, DD.DD.DD.0 и KK.KK.KK.0), через Провайдера2.
Все эти сети (назовем их внутренними сетями) собираются разными путями (или через другие внутренние маршрутизаторы, или подключены напрямую к портам) на маршрутизатор ROUTER3. ROUTER3 по-умолчанию все пакеты, исходящие наружу, роутит на ROUTER1. Который, в свою очередь, согласно настроеному на нем полиси роутингу, или отправляет пакеты к Провайдеру1, или направляет пакеты на ROUTER2, который роутит их к Провайдеру2.
Настройки ROUTER 1:
!
interface Ethernet0
ip address  BB.BB.BB.12  255.255.255.248  secondary
ip address  CC.CC.CC.1  255.255.255.224
ip policy route-map equal-access
!
interface Serial0
description Link to PROVIDER1
ip address  AA.AA.AA.37  255.255.255.252
!
ip route 0.0.0.0                0.0.0.0                  Ethernet0
ip route DD.DD.DD.0    255.255.255.0     CC.CC.CC.2
ip route BB.BB.BB.0      255.255.255.0      CC.CC.CC.2
ip route EE.EE.EE.0       255.255.255.0       CC.CC.CC.2
ip route HH.HH.HH.0    255.255.255.224  CC.CC.CC.2
ip route CC.CC.CC.32  255.255.255.224  CC.CC.CC.2
ip route CC.CC.CC.64  255.255.255.240  CC.CC.CC.2
...
ip route LL.LL.LL.0       255.255.255.0    CC.CC.CC.2
ip route KK.KK.KK.0  255.255.255.0   CC.CC.CC.2
access-list 1 permit  CC.CC.CC.0  0.0.0.255
access-list 1 permit  EE.EE.EE.0     0.0.0.255
access-list 1 permit  HH.HH.HH.0  0 0.0.0.255
access-list 1 permit  LL.LL.LL.0     0.0.0.255
route-map equal-access permit 10
match ip address 1
set ip default next-hop  AA.AA.AA.37
!
Настройки ROUTER 2
!
interface Ethernet0
ip address  CC.CC.CC.10  255.255.255.248  secondary
ip address  BB.BB.BB.10   255.255.255.248
!
interface Serial2
description Link to PROVIDER2
ip address  BB.BB.BB.146  255.255.255.252
!
ip route 0.0.0.0                0.0.0.0                 BB.BB.BB.12
ip route DD.DD.DD.0     255.255.255.0      BB.BB.BB.9
ip route BB.BB.BB.0      255.255.255.128  BB.BB.BB.9
ip route BB.BB.BB.128  255.255.255.240  BB.BB.BB.9
ip route BB.BB.BB.148  255.255.255.252  BB.BB.BB.9
...
ip route CC.CC.CC.0    255.255.255.0  BB.BB.BB.12
ip route KK.KK.KK.0   255.255.255.0  BB.BB.BB.9
!
Настройки ROUTER 3
!
Default routing на BB.BB.BB.12 , остальное - не важно
!
Источник: blogsvazista.ru/policy-routing/

Комментариев нет:

Отправить комментарий