实验 6-3:配置策略路由(PBR)
【实验目的】:
在本次实验中,你将使策略路由(PBR)最大化的控制数据包的处理。
在完成本次实验之后,你需要完成下列任务:
配置策略路由(PBR)
【实验拓扑】:
P2P
P2MP
BBR2 BBR1
PxR1 PxR2
PxR4PxR3
F0/0 . 2 .1 F0/0
F0/0 . F0/0
.3 F0/0 F0/0 .4
S1/0
.3
S1/0
.4
S1/1 .1
.2 S1/1
OSPFS1/0 S1/0
S1/0 S1/0
FR
1 2
3
1 102 – 201
1 103 – 301
1 104 – 401
2 201 – 102
2 203 – 302
2 204 – 402
3 301 – 103
3 302 – 203
3 304 – 403
4 401 – 104
4 402 – 204
4 403 - 304
4
RIP v2
L0
L0 L0
L0
注意:图中 x 为所在机架编号,y 为路由器编号。
【实验帮助】:
如果出现任何问题,可以向在值的辅导老师提出并请求提供帮助。
【命令列表】:
命令 描述
(config)#access-list 2 permit
为策略路由创建一个访问控制列表
(config-route-map)#match ip address 2
为了识别被策略的数据包,连接访问控制列表到
ROUTE-MAP
(config-if)#ip policy route-map PBR 在一个接口上启用策略路由
(config-route-map)#set interface s1
与 set ip next-hop 命令可以互换。策略路由匹配 ACL
2 的数据包出口接口 s1
(config-route-map)#set ip next-hop
策略路由匹配 ACL 2 的数据包使用给定的 IP 地址为
下一跳网关
【任务一】:配置 PBR
配置 PRB 实验的目的是为了展示能够在配置任意路径中的作用,而不是路由器正常的路由选择过程。这个
实验的目的是假设你想控制源地址为内部路由器(PxR3 和 PxR4)环回接口的数据包。
通常,数据包从 PxR3 的环回接口,走出你的实验机架,首先到达 PxR1,然后是骨干路由器。类似,数据
从 PxR3 的环回接口,走回你的实验机架,首先到达 PxR2 然后是骨干路由器。
在这个实验中,你需要强制源地址为 PxR3 的环回接口的数据包先通过 PxR1 然后到达 PxR2,最后达到骨
干路由器。源地址为 PxR4 的环回接口的数据包先通过 PxR2,然后到达 PxR1,最后达到骨干路由器。
实验过程:
第一步:在 OSPF 路由配置模式下删除重分布列表。因此 BBR2 将不会拥有你的环回接口路由。
第二步:在两个边界路由器上,创建一个 ACL 2 去匹配直接连接的内路路由器的环回接口。
P1R1#show access-lists
Standard IP access list 1
10 permit , wildcard bits (10 matches)
Standard IP access list 2
10 permit , wildcard bits (88 matches)
P1R1#
第三步:在边界路由器上,PxR1 和 PxR2 上,创建一个 Route-map。参考在第一步中设置的 ACL,匹配源
地址为内部路由器的环回接口 0 的数据包。设置这些数据包的外出接口为 S1,使其到达其他边界路由器。
因此。数据包源为内部路由器环回接口的数据包在到达网关核心以前将被强制转发到其他边界路由器。
那些源地址没有被定义在 ACL 中的数据包将会发生什么呢?
P1R1#show route-map SELECT
route-map SELECT, permit, sequence 10
Match clauses:
ip address (access-lists): 1
Set clauses:
ip next-hop
Policy routing matches: 6 packets, 360 bytes
route-map SELECT, permit, sequence 20
Match clauses:
ip address (access-lists): 2
Set clauses:
ip next-hop
Policy routing matches: 29 packets, 2481 bytes
route-map SELECT, permit, sequence 30
Match clauses:
Set clauses:
Policy routing matches: 0 packets, 0 bytes
P1R1#
第四步:应该这个策略到数据包进入路由器的接口。哪一个接口是从内部路由器的数据包入口。应该策略
在那个路由器上。
P1R1(config)#int f0/0
P1R1(config-if)#ip policy route-map SELECT
第五步:使用 show ip policy 命令验证策略是被配置到位和应用在正确的接口上。
P1R1#show ip policy
Interface Route map
Fa0/0 SELECT
P1R1#
第六步:在内部路由器上使用 traceroute 测试这个策略。 首先从内部路由器跟踪 BBR2
()。你的输出应该也下列类似。这个跟踪包将是从内部路由器的缺省源 E0 接
口发出,因此数据包将被正常的路由到路由器 BBR2。
P1R3#traceroute
Type escape sequence to abort.
Tracing the route to
1 152 msec 56 msec 132 msec
2 136 msec 172 msec *
P1R3#
第七步:接下来,使用扩展 traceroute,源地址为内部路由器的环回接口 0,目的地址为 BBR2
()。你的输出应该与下列类似:因为跟踪包源是从内部路由器的环回接口发出,
数据包将被策略路由到其他的边界路由器到再达路由器 BBR2。
P1R3#traceroute
Protocol [ip]:
Target IP address:
Source address:
Numeric display [n]:
Timeout in seconds [3]:
Probe count [3]:
Minimum Time to Live [1]:
Maximum Time to Live [30]:
Port Number [33434]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Type escape sequence to abort.
Tracing the route to
1 64 msec 68 msec 140 msec
2 192 msec 132 msec 244 msec
3 156 msec 232 msec *
P1R3#
第八步:显示 ROUTE-MAP 查看什么数据包是被策略路由。你的输出应该与下列类似:
P1R1#show route-map SELECT
route-map SELECT, permit, sequence 10
Match clauses:
ip address (access-lists): 1
Set clauses:
ip next-hop
Policy routing matches: 6 packets, 360 bytes
route-map SELECT, permit, sequence 20
Match clauses:
ip address (access-lists): 2
Set clauses:
ip next-hop
Policy routing matches: 29 packets, 2481 bytes
route-map SELECT, permit, sequence 30
Match clauses:
Set clauses:
Policy routing matches: 0 packets, 0 bytes
P1R1#
第九步:在边界路由器上,打开策略路由器调试命令(DEBUG)。从内部路由器重新跟踪从
内部路由器到 BBR2 的路径。你将看到路由器标记策略路由是否被选择。你的输出应该与下
列类似:
P1R1#debug ip policy
Policy routing debugging is on
P1R1#
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d=, len 100, F
IB policy match
*Mar 1 10:13:: CEF-IP-POLICY: fib for address is with flag 0
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d=, len 100, p
olicy match
*Mar 1 10:13:: IP: route map SELECT, item 20, permit
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d= (Serial1/0)
, len 100, policy routed
*Mar 1 10:13:: IP: FastEthernet0/0 to Serial1/0
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d=, len 100, F
IB policy match
*Mar 1 10:13:: CEF-IP-POLICY: fib for address is with flag 0
P1R1#
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d=, len 100, p
olicy match
*Mar 1 10:13:: IP: route map SELECT, item 20, permit
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d= (Serial1/0)
, len 100, policy routed
*Mar 1 10:13:: IP: FastEthernet0/0 to Serial1/0
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d=, len 100, F
IB policy match
*Mar 1 10:13:: CEF-IP-POLICY: fib for address is with flag 0
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d=, len 100, p
olicy match
*Mar 1 10:13:: IP: route map SELECT, item 20, permit
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d= (Serial1/0)
, len 100, policy routed
*Mar 1 10:13:: IP: FastEthernet0/0 to Serial1/0
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d=, len 100, F
IB policy match
*Mar 1 10:13:: CEF-IP-POLICY: fib for address i
P1R1#s with flag 0
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d=, len 100, p
olicy match
*Mar 1 10:13:: IP: route map SELECT, item 20, permit
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d= (Serial1/0)
, len 100, policy routed
*Mar 1 10:13:: IP: FastEthernet0/0 to Serial1/0
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d=, len 100, F
IB policy match
*Mar 1 10:13:: CEF-IP-POLICY: fib for address is with flag 0
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d=, len 100, p
olicy match
*Mar 1 10:13:: IP: route map SELECT, item 20, permit
*Mar 1 10:13:: IP: s= (FastEthernet0/0), d= (Serial1/0)
, len 100, policy routed
*Mar 1 10:13:: IP: FastEthernet0/0 to Serial1/0
【实验验证】:
成功完成整个实验,你需要完成下列任务:
在维护核心路由器可达性的基础上,通过 PBR 控制源地址为内部路由器环回接口的数据包。