Введение
Предварительные условия
Требования
Используемые компоненты
Условные обозначения
Настройка
Схема сети
Практический пример № 1: маршрутизация на основе политики посредством команды set ip default next-hop с протоколом динамической маршрутизации
Проверка практического примера № 1
Практический пример № 2: маршрутизация на основе политики посредством команды set ip next-hop с протоколом динамической маршрутизации
Проверка практического примера № 2
Практический пример № 3: маршрутизация на основе политики посредством команды the set ip default next-hop с маршрутом по умолчанию
Проверка практического примера № 3
Поиск и устранение неполадок
Дополнительные сведения
В этом документе представлен пример конфигурации для маршрутизации на основе политик (PBR) с использованием команд set ip default next-hop и set ip next-hop.
Команда set ip default next-hop проверяет, существует ли IP-адрес назначения в таблице маршрутизации, и действует следующим образом:
если IP-адрес назначения существует, команда не применяет политики для маршрутизации пакета, а пересылает его на основе таблицы маршрутизации;
если IP-адрес назначения не существует, команда выполняет маршрутизацию пакета на основе политики, отправляя его в указанный следующий узел.
Команда set ip next-hop проверяет существование указанного следующего перехода:
если следующий переход находится в таблице маршрутизации, политика команд направляет к нему пакет;
если следующий переход не существует в таблице маршрутизации, команда использует обычную таблицу маршрутизации для переадресации пакета.
Для этого документа нет особых требований.
Этот документ не относится к конкретным версиям программного обеспечения и оборудования, однако используемое программное обеспечение должно поддерживать базируемую маршрутизацию на основе политик. Чтобы определить оборудование и ПО, поддерживаемое в этой конфигурации. используйте навигатор функций.
Подробные сведения об условных обозначениях см. в документе Условное обозначение технических терминов Cisco.
В этом разделе содержатся сведения о настройке функций, описанных в этом документе.
Примечание. Для поиска дополнительных сведений о командах, описываемых в данном документе, используйте средство поиска команд (только для зарегистрированных пользователей).
В настоящем документе используется следующая схема сети:
В этом разделе используются следующие конфигурации:
R1 |
---|
R1# show running-config Building configuration... . ! interface Ethernet0/0 ip address 100.100.100.1 255.255.255.0 ip policy route-map blah ! interface Serial1/0 ip address 10.10.10.1 255.255.255.0 ! interface Serial2/0 ip address 20.20.20.1 255.255.255.0 ! router ospf 1 !--- OSPF is not configured on Serial1/0. log-adjacency-changes network 20.20.20.0 0.0.0.255 area 0 network 100.100.100.0 0.0.0.255 area 0 ! ip classless no ip http server ! access-list 100 permit ip host 100.100.100.3 host 200.200.200.4 ! route-map blah permit 10 match ip address 100 set ip default next-hop 10.10.10.2 . . ! end |
R2 |
---|
R2# show running-config Building configuration... . ! ! interface Ethernet0/0 ip address 200.200.200.2 255.255.255.0 ip policy route-map blah ! interface Serial1/0 ip address 10.10.10.2 255.255.255.0 fair-queue ! interface Serial2/0 ip address 20.20.20.2 255.255.255.0 ! router ospf 1 !--- OSPF is not configured on Serial1/0. log-adjacency-changes network 20.20.20.0 0.0.0.255 area 0 network 200.200.200.0 0.0.0.255 area 0 ! ip classless no ip http server ! access-list 100 permit ip host 200.200.200.4 host 100.100.100.3 ! route-map blah permit 10 match ip address 100 set ip default next-hop 10.10.10.1 ! end |
Когда маршрут к адресату существует в таблице маршрутизации, используется обычная пересылка; маршрутизация пакета на основе политики не применяется.
R1# show ip route 200.200.200.4 Routing entry for 200.200.200.0/24 Known via "ospf 1", distance 110, metric 74, type intra area Last update from 20.20.20.2 on Serial2/0, 00:11:48 ago Routing Descriptor Blocks: * 20.20.20.2, from 30.30.30.3, 00:11:48 ago, via Serial2/0 Route metric is 74, traffic share count is 1 R1# debug ip policy Policy routing debugging is on *Dec 4 12:50:57.363: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 4 12:50:57.363: IP: route map blah, item 10, permit *Dec 4 12:50:57.363: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial2/0), len 100, policy rejected -- normal forwarding *Dec 4 12:50:57.431: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 4 12:50:57.431: IP: route map blah, item 10, permit *Dec 4 12:50:57.431: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial2/0), len 100, policy rejected -- normal forwarding *Dec 4 12:50:57.491: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 4 12:50:57.491: IP: route map blah, item 10, permit *Dec 4 12:50:57.491: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial2/0), len 100, policy rejected -- normal forwarding R2# show ip route 100.100.100.3 Routing entry for 100.100.100.0/24 Known via "ospf 1", distance 110, metric 74, type intra area Last update from 20.20.20.1 on Serial2/0, 00:11:42 ago Routing Descriptor Blocks: * 20.20.20.1, from 100.100.100.1, 00:11:42 ago, via Serial2/0 Route metric is 74, traffic share count is 1 R2# debug ip policy Policy routing debugging is on *Dec 4 12:50:57.779: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3, len 100, policy match *Dec 4 12:50:57.779: IP: route map blah, item 10, permit *Dec 4 12:50:57.779: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3 (Serial2/0), len 100, policy rejected -- normal forwarding *Dec 4 12:50:57.839: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3, len 100, policy match *Dec 4 12:50:57.839: IP: route map blah, item 10, permit *Dec 4 12:50:57.839: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3 (Serial2/0), len 100, policy rejected -- normal forwarding *Dec 4 12:50:57.911: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3, len 100, policy match *Dec 4 12:50:57.911: IP: route map blah, item 10, permit *Dec 4 12:50:57.911: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3 (Serial2/0), len 100, policy rejected -- normal forwarding
Когда интерфейс Serial 2/0 перестает работать и адрес получателя исчезает из таблицы маршрутизации, маршрутизация пакета проходит в соответствии с политикой.
R1# show ip route 200.200.200.0 % Network not in table R1# *Dec 5 13:26:27.567: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 13:26:27.567: IP: route map blah, item 10, permit *Dec 5 13:26:27.567: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial1/0),len 100, policy routed *Dec 5 13:26:27.567: IP: Ethernet0/0 to Serial1/0 10.10.10.2 *Dec 5 13:26:27.655: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 13:26:27.655: IP: route map blah, item 10, permit *Dec 5 13:26:27.655: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial1/0),len 100, policy routed *Dec 5 13:26:27.655: IP: Ethernet0/0 to Serial1/0 10.10.10.2 *Dec 5 13:26:27.727: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 13:26:27.727: IP: route map blah, item 10, permit *Dec 5 13:26:27.727: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial1/0),len 100, policy routed *Dec 5 13:26:27.727: IP: Ethernet0/0 to Serial1/0 10.10.10.2
В этом разделе используются следующие конфигурации:
R1 |
---|
R1# show running-config Building configuration... . ! interface Ethernet0/0 ip address 100.100.100.1 255.255.255.0 ip policy route-map blah ! interface Serial1/0 ip address 10.10.10.1 255.255.255.0 ! interface Serial2/0 ip address 20.20.20.1 255.255.255.0 ! router ospf 1 !--- OSPF is not configured on Serial1/0. log-adjacency-changes network 20.20.20.0 0.0.0.255 area 0 network 100.100.100.0 0.0.0.255 area 0 ! ip classless no ip http server ! access-list 100 permit ip host 100.100.100.3 host 200.200.200.4 ! route-map blah permit 10 match ip address 100 set ip next-hop 10.10.10.2 . . ! end |
R2 |
---|
R2# show running-config Building configuration... . ! ! interface Ethernet0/0 ip address 200.200.200.2 255.255.255.0 ip policy route-map blah ! interface Serial1/0 ip address 10.10.10.2 255.255.255.0 fair-queue ! interface Serial2/0 ip address 20.20.20.2 255.255.255.0 ! router ospf 1 !--- OSPF is not configured on Serial1/0. log-adjacency-changes network 20.20.20.0 0.0.0.255 area 0 network 200.200.200.0 0.0.0.255 area 0 ! ip classless no ip http server ! ! ! access-list 100 permit ip host 200.200.200.4 host 100.100.100.3 ! route-map blah permit 10 match ip address 100 set ip next-hop 10.10.10.1 ! end |
Проверьте существование следующего узла, 10.10.10.2, в таблице маршрутизации. Если маршрут адресата существует в таблице маршрутизации, то пакет маршрутизируется на основе политики при условии доступности следующего перехода.
R1# show ip route 200.200.200.4 Routing entry for 200.200.200.0/24 Known via "ospf 1", distance 110, metric 74, type intra area Last update from 20.20.20.2 on Serial2/0, 00:11:48 ago Routing Descriptor Blocks: * 20.20.20.2, from 30.30.30.3, 00:11:48 ago, via Serial2/0 Route metric is 74, traffic share count is 1 R1# debug ip policy Policy routing debugging is on *Dec 4 12:53:38.271: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 4 12:53:38.271: IP: route map blah, item 10, permit *Dec 4 12:53:38.271: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial1/0), len 100, policy routed *Dec 4 12:53:38.271: IP: Ethernet0/0 to Serial1/0 10.10.10.2 *Dec 4 12:53:38.355: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 4 12:53:38.355: IP: route map blah, item 10, permit *Dec 4 12:53:38.355: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial1/0), len 100, policy routed *Dec 4 12:53:38.355: IP: Ethernet0/0 to Serial1/0 10.10.10.2 *Dec 4 12:53:38.483: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 4 12:53:38.483: IP: route map blah, item 10, permit R2# sh ip route 100.100.100.3 Routing entry for 100.100.100.0/24 Known via "ospf 1", distance 110, metric 74, type intra area Last update from 20.20.20.1 on Serial2/0, 00:11:42 ago Routing Descriptor Blocks: * 20.20.20.1, from 100.100.100.1, 00:11:42 ago, via Serial2/0 Route metric is 74, traffic share count is 1 R2# debug ip policy Policy routing debugging is on *Dec 4 12:53:38.691: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3, len 100, policy match *Dec 4 12:53:38.691: IP: route map blah, item 10, permit *Dec 4 12:53:38.691: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3 (Serial1/0), len 100, policy routed *Dec 4 12:53:38.691: IP: Ethernet0/0 to Serial1/0 10.10.10.1 *Dec 4 12:53:38.799: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3, len 100, policy match *Dec 4 12:53:38.799: IP: route map blah, item 10, permit *Dec 4 12:53:38.799: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3 (Serial1/0), len 100, policy routed *Dec 4 12:53:38.799: IP: Ethernet0/0 to Serial1/0 10.10.10.1 *Dec 4 12:53:38.899: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3, len 100, policy match *Dec 4 12:53:38.899: IP: route map blah, item 10, permit
Если IP-адрес назначения исчезает из маршрута, маршрутизация пакета осуществляется на основе политик.
*Dec 5 13:33:23.607: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 13:33:23.607: IP: route map blah, item 10, permit *Dec 5 13:33:23.607: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial1/0),len 100, policy routed *Dec 5 13:33:23.607: IP: Ethernet0/0 to Serial1/0 10.10.10.2 *Dec 5 13:33:23.707: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 13:33:23.707: IP: route map blah, item 10, permit *Dec 5 13:33:23.707: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial1/0),len 100, policy routed *Dec 5 13:33:23.707: IP: Ethernet0/0 to Serial1/0 10.10.10.2 *Dec 5 13:33:23.847: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 13:33:23.847: IP: route map blah, item 10, permit
При выключении интерфейса Serial1/0 от таблицы маршрутизации открепляется следующий узел, 10.10.10.1, и пакет передается в соответствии с обычной таблицей маршрутизации.
*Dec 5 13:40:38.887: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 13:40:38.887: IP: route map blah, item 10, permit *Dec 5 13:40:38.887: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial2/0), len 100, policy rejected -- normal forwarding *Dec 5 13:40:39.047: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 13:40:39.047: IP: route map blah, item 10, permit *Dec 5 13:40:39.047: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial2/0), len 100, policy rejected -- normal forwarding *Dec 5 13:40:39.115: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 13:40:39.115: IP: route map blah, item 10, permit *Dec 5 13:40:39.115: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial2/0), len 100, policy rejected -- normal forwarding
В этом разделе используются следующие конфигурации:
R1 |
---|
R1 R1# show running-config Building configuration... . ! interface Ethernet0/0 ip address 100.100.100.1 255.255.255.0 ip policy route-map blah ! interface Serial1/0 ip address 10.10.10.1 255.255.255.0 ! interface Serial2/0 ip address 20.20.20.1 255.255.255.0 ! ip route 0.0.0.0 0.0.0.0 20.20.20.2 ! ip classless no ip http server ! access-list 100 permit ip host 100.100.100.3 host 200.200.200.4 ! route-map blah permit 10 match ip address 100 set ip default next-hop 10.10.10.2 . . ! end |
R2 |
---|
R2# show running-config Building configuration... . ! ! interface Ethernet0/0 ip address 200.200.200.2 255.255.255.0 ip policy route-map blah ! interface Serial1/0 ip address 10.10.10.2 255.255.255.0 fair-queue ! interface Serial2/0 ip address 20.20.20.2 255.255.255.0 ! ip route 0.0.0.0 0.0.0.0 20.20.20.1 ! ip classless no ip http server ! ! ! access-list 100 permit ip host 200.200.200.4 host 100.100.100.3 ! route-map blah permit 10 match ip address 100 set ip default next-hop 10.10.10.1 ! end |
Когда единственным маршрутом к адресату является маршрут по умолчанию, то в таблице маршрутизации не находится конкретного маршрута для этого адресата и пакет маршрутизируется на основе политики.
R1# show ip route 200.200.200.4 % Network not in table R1# show ip route 0.0.0.0 Routing entry for 0.0.0.0/0, supernet Known via "static", distance 1, metric 0, candidate default path Routing Descriptor Blocks: * 20.20.20.2 Route metric is 0, traffic share count is 1 R1# *Dec 4 12:58:55.191: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 4 12:58:55.191: IP: route map blah, item 10, permit *Dec 4 12:58:55.191: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial1/0), len 100, policy routed *Dec 4 12:58:55.191: IP: Ethernet0/0 to Serial1/0 10.10.10.2 *Dec 4 12:58:55.291: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 4 12:58:55.291: IP: route map blah, item 10, permit *Dec 4 12:58:55.291: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial1/0), len 100, policy routed *Dec 4 12:58:55.291: IP: Ethernet0/0 to Serial1/0 10.10.10.2 *Dec 4 12:58:55.391: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 4 12:58:55.391: IP: route map blah, item 10, permit *Dec 4 12:58:55.391: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial1/0), len 100, policy routed *Dec 4 12:58:55.391: IP: Ethernet0/0 to Serial1/0 10.10.10.2 R2# show ip route 100.100.100.3 % Network not in table R2# show ip route 0.0.0.0 Routing entry for 0.0.0.0/0, supernet Known via "static", distance 1, metric 0, candidate default path Routing Descriptor Blocks: * 20.20.20.1 Route metric is 0, traffic share count is 1 R2# *Dec 4 12:58:20.819: %SYS-5-CONFIG_I: Configured from console by console *Dec 4 12:58:55.611: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3, len 100, policy match *Dec 4 12:58:55.611: IP: route map blah, item 10, permit *Dec 4 12:58:55.611: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3 (Serial1/0), len 100, policy routed *Dec 4 12:58:55.611: IP: Ethernet0/0 to Serial1/0 10.10.10.1 *Dec 4 12:58:55.739: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3, len 100, policy match *Dec 4 12:58:55.739: IP: route map blah, item 10, permit *Dec 4 12:58:55.739: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3 (Serial1/0), len 100, policy routed *Dec 4 12:58:55.739: IP: Ethernet0/0 to Serial1/0 10.10.10.1 *Dec 4 12:58:55.799: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3, len 100, policy match *Dec 4 12:58:55.799: IP: route map blah, item 10, permit *Dec 4 12:58:55.799: IP: s=200.200.200.4 (Ethernet0/0), d=100.100.100.3 (Serial1/0), len 100, policy routed *Dec 4 12:58:55.799: IP: Ethernet0/0 to Serial1/0 10.10.10.1
Если маршрут по умолчанию не существует по причине отказа интерфейса Serial 2/0, то выполняется маршрутизация пакета в соответствии с политикой.
R1# show ip route 0.0.0.0 % Network not in table R1# *Dec 5 13:02:31.283: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 13:02:31.283: IP: route map blah, item 10, permit *Dec 5 13:02:31.283: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial1/0),len 100, policy routed *Dec 5 13:02:31.283: IP: Ethernet0/0 to Serial1/0 10.10.10.2 *Dec 5 13:02:31.375: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 13:02:31.375: IP: route map blah, item 10, permit *Dec 5 13:02:31.375: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial1/0),len 100, policy routed *Dec 5 13:02:31.375: IP: Ethernet0/0 to Serial1/0 10.10.10.2 *Dec 5 13:02:31.435: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 13:02:31.435: IP: route map blah, item 10, permit *Dec 5 13:02:31.435: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial1/0),len 100, policy routed *Dec 5 13:02:31.435: IP: Ethernet0/0 to Serial1/0 10.10.10.2
В ситуации, когда интерфейс Serial 2/0 действует, а интерфейс 1/0 – нет, следующий переход теряется и пакет следует обычным путем пересылки (из таблицы маршрутизации) – политика отклоняется.
R1# debug ip policy Policy routing debugging is on R1# *Dec 5 12:46:49.543: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 12:46:49.543: IP: route map blah, item 10, permit *Dec 5 12:46:49.543: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial2/0),len 100, policy rejected -- normal forwarding *Dec 5 12:46:49.623: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 12:46:49.623: IP: route map blah, item 10, permit *Dec 5 12:46:49.623: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial2/0),len 100, policy rejected -- normal forwarding *Dec 5 12:46:49.691: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4, len 100, policy match *Dec 5 12:46:49.691: IP: route map blah, item 10, permit *Dec 5 12:46:49.691: IP: s=100.100.100.3 (Ethernet0/0), d=200.200.200.4 (Serial2/0),len 100, policy rejected -- normal forwarding
Для этой конфигурации в настоящее время нет сведений об устранении неполадок.