此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍如何使用set ip default next-hop和set ip next-hop命令配置基于策略的路由(PBR)。
本文档没有任何特定的要求。
本文档中的信息基于支持基于策略的路由的软件。
您可以使用Cisco Feature Navigator确定此配置支持哪些硬件和软件。
注意:只有注册的思科用户才能访问内部工具和信息。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
本文档使用set ip default next-hop和set ip next-hop命令为基于策略的路由(PBR)提供了示例配置。
set ip default next-hop命令验证路由表中是否存在目的IP地址,并且:
如果目标 IP 地址存在,则该命令不对数据包进行策略路由,而是基于路由表转发数据包。
如果目标IP地址不存在,则命令策略会路由数据包并将其发送到指定的下一跳。
set ip next-hop命令验证指定的下一跳是否存在,并且:
如果下一跳在路由表中存在,则该命令将数据包策略路由到下一跳。
本节提供配置本文档所述功能的信息。
本文档使用以下网络设置:
本部分使用以下配置:
R1 |
---|
R1#show running-config Building configuration... ! ! interface Ethernet0/0 ip address 10.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 10.20.20.1 255.255.255.0 ! router ospf 1 !--- OSPF is not configured on Serial1/0. log-adjacency-changes network 10.20.20.0 0.0.0.255 area 0 network 10.100.100.0 0.0.0.255 area 0 ! ip classless no ip http server ! access-list 100 permit ip host 10.100.100.3 host 10.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 10.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 10.20.20.2 255.255.255.0 ! router ospf 1 !--- OSPF is not configured on Serial1/0. log-adjacency-changes network 10.20.20.0 0.0.0.255 area 0 network 10.200.200.0 0.0.0.255 area 0 ! ip classless no ip http server ! access-list 100 permit ip host 10.200.200.4 host 10.100.100.3 ! route-map blah permit 10 match ip address 100 set ip default next-hop 10.10.10.1 ! end |
使用命令set ip default next-hop时,当目标路由存在于路由表中时,使用正常转发 — 不策略路由数据包。
R1#show ip route 10.200.200.4 Routing entry for 10.200.200.0/24 Known via "ospf 1", distance 110, metric 74, type intra area Last update from 10.20.20.2 on Serial2/0, 00:11:48 ago Routing Descriptor Blocks: * 10.20.20.2, from 10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.200.200.4 (Serial2/0), len 100, policy rejected -- normal forwarding *Dec 4 12:50:57.431: IP: s=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.200.200.4 (Serial2/0), len 100, policy rejected -- normal forwarding *Dec 4 12:50:57.491: IP: s=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.200.200.4 (Serial2/0), len 100, policy rejected -- normal forwarding R2#show ip route 10.100.100.3 Routing entry for 10.100.100.0/24 Known via "ospf 1", distance 110, metric 74, type intra area Last update from 10.20.20.1 on Serial2/0, 00:11:42 ago Routing Descriptor Blocks: * 10.20.20.1, from 10.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=10.200.200.4 (Ethernet0/0),
d=10.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=10.200.200.4 (Ethernet0/0),
d=10.100.100.3 (Serial2/0), len 100, policy rejected -- normal forwarding *Dec 4 12:50:57.839: IP: s=10.200.200.4 (Ethernet0/0),
d=10.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=10.200.200.4 (Ethernet0/0),
d=10.100.100.3 (Serial2/0), len 100, policy rejected -- normal forwarding *Dec 4 12:50:57.911: IP: s=10.200.200.4 (Ethernet0/0),
d=10.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=10.200.200.4 (Ethernet0/0),
d=10.100.100.3 (Serial2/0), len 100, policy rejected -- normal forwarding
Serial 2/0 关闭并且目标地址从路由表消失时,对数据包进行策略路由。
R1#show ip route 10.200.200.0 % Network not in table R1# *Dec 5 13:26:27.567: IP: s=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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... ! |
R2 |
---|
R2#show running-config Building configuration... ! |
通过使用命令set ip next-hop,路由器会验证路由表中是否存在下一跳10.10.10.2。如果目的路由在路由表中存在,则下一跳可访问时对数据包进行策略路由。
R1#show ip route 10.10.10.2Routing entry for 10.10.10.0/24 Known via "connected", distance 0, metric 0 (connected, via interface) Routing Descriptor Blocks: * directly connected, via Serial1/0 Route metric is 0, traffic share count is 1
R1#show ip route 10.200.200.4
Routing entry for 10.200.200.0/24
Known via "ospf 1", distance 110, metric 74,
type intra area Last update from 10.20.20.2 on Serial2/0, 00:11:48 ago
Routing Descriptor Blocks: * 10.20.20.2, from 10.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=10.100.100.3 (Ethernet0/0), d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0), d=10.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=10.100.100.3 (Ethernet0/0), d=10.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=10.100.100.3 (Ethernet0/0), d=10.200.200.4, len 100, policy match
*Dec 4 12:53:38.483: IP: route map blah, item 10, permit
R2#show ip route 10.100.100.3 Routing entry for 10.100.100.0/24 Known via "ospf 1",
distance 110, metric 74, type intra area Last update from 10.20.20.1 on Serial2/0,
00:11:42 ago Routing Descriptor Blocks: * 10.20.20.1, from 10.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=10.200.200.4 (Ethernet0/0), d=10.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=10.200.200.4 (Ethernet0/0),
d=10.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=10.200.200.4 (Ethernet0/0), d=10.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=10.200.200.4 (Ethernet0/0), d=10.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=10.200.200.4 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.200.200.4, len 100, policy match *Dec 5 13:33:23.847: IP: route map blah, item 10, permit
当Serial 1/0接口关闭时,路由表中将丢失下一跳10.10.10.2,数据包将跟踪正常的路由表。
*Dec 5 13:40:38.887: IP: s=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.200.200.4 (Serial2/0), len 100, policy rejected -- normal forwarding *Dec 5 13:40:39.047: IP: s=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.200.200.4 (Serial2/0), len 100, policy rejected -- normal forwarding *Dec 5 13:40:39.115: IP: s=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.200.200.4 (Serial2/0), len 100, policy rejected -- normal forwarding
本部分使用以下配置:
R1 |
---|
R1#show running-config Building configuration... ! |
R2 |
---|
R2#show running-config Building configuration... ! ! interface Ethernet0/0 ip address 10.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 10.20.20.2 255.255.255.0 ! ip route 0.0.0.0 0.0.0.0 10.20.20.1 ! ip classless no ip http server ! ! ! access-list 100 permit ip host 10.200.200.4 host 10.100.100.3 ! route-map blah permit 10 match ip address 100 set ip default next-hop 10.10.10.1 ! end |
使用命令set ip default next-hop时,当到达目标的唯一路由是默认路由(路由表中没有该目标的特定路由)时,数据包将进行策略路由。
R1#show ip route 10.200.200.4 % Network not in table R1# 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: * 10.20.20.2 Route metric is 0, traffic share count is 1 R1# *Dec 4 12:58:55.191: IP: s=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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 10.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: * 10.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=10.200.200.4 (Ethernet0/0),
d=10.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=10.200.200.4 (Ethernet0/0),
d=10.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=10.200.200.4 (Ethernet0/0),
d=10.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=10.200.200.4 (Ethernet0/0),
d=10.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=10.200.200.4 (Ethernet0/0),
d=10.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=10.200.200.4 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.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
在Serial2/0为up状态而Serial 1/0为down状态时,您会松开下一跳,数据包将跟踪正常转发(路由表) — 策略被拒绝。
R1#debug ip policy Policy routing debugging is on R1# *Dec 5 12:46:49.543: IP: s=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.200.200.4 (Serial2/0),len 100, policy rejected -- normal forwarding *Dec 5 12:46:49.623: IP: s=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.200.200.4 (Serial2/0),len 100, policy rejected -- normal forwarding *Dec 5 12:46:49.691: IP: s=10.100.100.3 (Ethernet0/0),
d=10.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=10.100.100.3 (Ethernet0/0),
d=10.200.200.4 (Serial2/0),len 100, policy rejected -- normal forwarding
版本 | 发布日期 | 备注 |
---|---|---|
2.0 |
20-Nov-2023 |
重新认证 |
1.0 |
05-Dec-2003 |
初始版本 |