目录

简介

先决条件

要求

使用的组件

规则

背景信息

配置

网络图

案例研究1：使用set ip default next-hop命令和动态路由协议的策略路由

验证案例分析 1

案例研究2：使用动态路由协议的set ip next-hop命令进行策略路由

验证案例分析 2

案例研究3：使用set ip default next-hop和默认路由进行策略路由

验证案例分析 3

相关信息

简介

本文档介绍如何使用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命令验证指定的下一跳是否存在，并且：

- 如果下一跳在路由表中存在，则该命令将数据包策略路由到下一跳。

- 如果下一跳在路由表中不存在，则该命令使用普通路由表转发数据包。

配置

本节提供配置本文档所述功能的信息。

网络图

本文档使用以下网络设置：

PBR拓扑

案例研究1：使用set ip default 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

验证案例分析 1

使用命令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

案例研究2：使用动态路由协议的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 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 next-hop 10.10.10.1

!

end

验证案例分析 2

通过使用命令set ip next-hop，路由器会验证路由表中是否存在下一跳10.10.10.2。如果目的路由在路由表中存在，则下一跳可访问时对数据包进行策略路由。

R1#show ip route 10.10.10.2

Routing 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

案例研究3：使用set ip default 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

!

ip route 0.0.0.0 0.0.0.0 10.20.20.2

!

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

!

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

验证案例分析 3

使用命令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 打开并且 Serial 1/0 关闭的情况下，我们松开下一跳并且数据包遵循普通转发（路由表）- 策略被拒绝。

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

相关信息

- IP 路由协议

- 思科支持和下载