实验目的
- 理解前缀列表的应用场景
- 掌握前缀列表的配置方法
- 理解前缀列表与ACL的区别
实验内容
公司分部A网络使用11.1.1.0/24网段,通过路由器R2和骨干路由器R1相连,网络运行RIPv2协议。现在公司新成立一个分部B,新分部B的路由器R3连接R1加入该RIPv2网络。由于新分部B的网络管理员不熟悉公司内网IP地址规划,在新分部B中使用了11.1.1.0/25网段,这样导致从总部发往分布A的部分数据包在R1上都会由于路由掩码最长匹配从而错误地发往分部B。而整个新分部B整改IP地址需要一定时间,公司当务之急是需要恢复总部与分部A的通信,可以通过在R1上使用前缀列表过滤掉这些错误的路由。
实验拓扑
实验配置
R1配置:
#
interface GigabitEthernet0/0/0
ip address 40.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 20.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 30.1.1.1 255.255.255.0
#
rip 1
undo summary
version 2
network 20.0.0.0
network 30.0.0.0
network 40.0.0.0
#
R2配置:
#
interface GigabitEthernet0/0/0
ip address 11.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 20.1.1.2 255.255.255.0
#
rip 1
undo summary
version 2
network 20.0.0.0
network 11.0.0.0
#
R3配置:
#
interface GigabitEthernet0/0/0
ip address 11.1.1.11 255.255.255.128
#
interface GigabitEthernet0/0/2
ip address 30.1.1.3 255.255.255.0
#
rip 1
undo summary
version 2
network 30.0.0.0
network 11.0.0.0
#
R4配置:
#
interface GigabitEthernet0/0/0
ip address 40.1.1.4 255.255.255.0
#
rip 1
undo summary
version 2
network 40.0.0.0
#
配置完成后,查看R4的路由表
<R4>dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost Flags NextHop Interface
11.1.1.0/24 RIP 100 2 D 40.1.1.1 GigabitEthernet0/0/0
11.1.1.0/25 RIP 100 2 D 40.1.1.1 GigabitEthernet0/0/0
20.1.1.0/24 RIP 100 1 D 40.1.1.1 GigabitEthernet0/0/0
30.1.1.0/24 RIP 100 1 D 40.1.1.1 GigabitEthernet0/0/0
40.1.1.0/24 Direct 0 0 D 40.1.1.4 GigabitEthernet0/0/0
40.1.1.4/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
可以观察到,此时R4接收到了公司分部A的11.1.1.0/24路由条目和新分部B的11.1.1.0/25路由条目,同样R1也会接收到这两条路由条目,这样会造成什么后果?根据路由表转发数据的原理,在转发数据包时路由器会根据最长匹配的原则去匹配路由条目,即R4向分部A的终端PC-1发送数据时,当数据包到达R1后,根据包头的目的IP地址与路由表中的路由条目进行匹配,发现11.1.1.0/25条目匹配更精确,这会使得数据包都根据这条路由条目进行转发,即将原本要发往PC1的数据包都错误地发往R3,造成总部与分部A异常通信。
<R4>ping 11.1.1.1
PING 11.1.1.1: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- 11.1.1.1 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
<R4>tracert 11.1.1.1
traceroute to 11.1.1.1(11.1.1.1), max hops: 30 ,packet length: 40,press CTRL_C
to break
1 40.1.1.1 30 ms 30 ms 50 ms
2 30.1.1.3 60 ms 60 ms 70 ms
3 * * *
4 * * *
可以观察到,此时R4发往分公司A的PC1的数据包确实都已错误地发往R3
配置ACL过滤路由
由于业务需要,现公司急需恢复总部与分部A间的通信。但是重新规划并配置整个分部B的IP地址需要一定时间,此时网络管理员尝试使用ACL来配置路由过滤,即在R1上过滤掉11.1.1.0/25这条路由。
在R1上创建基本的ACL,拒绝11.1.1.0这个目的网段的路由
#
acl number 2000
rule 5 deny source 11.1.1.0 0
#
在RIP试图下,配置过滤策略(filter-policy),该策略通过调用之前配置好的ACL来达到过滤路由的目的,并且在R1的RIP路由进程中的接收方向应用此路由过滤策略
#
rip 1
filter-policy 2000 import
#
查看R1路由表
[R1-rip-1]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost Flags NextHop Interface
20.1.1.0/24 Direct 0 0 D 20.1.1.1 GigabitEthernet0/0/1
20.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
30.1.1.0/24 Direct 0 0 D 30.1.1.1 GigabitEthernet0/0/2
30.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/2
40.1.1.0/24 Direct 0 0 D 40.1.1.1 GigabitEthernet0/0/0
40.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
观察发现R1的路由表中11.1.1.0/24和11.1.1.0/25这两条路由都被过滤。这是因为ACL无法实现对掩码长度进行精确匹配
配置前缀列表过滤路由
为了能够精确匹配掩码长度,仅过滤掉11.1.1.0/25这条新分部B的路由,可以在R1上配置前缀列表
[R1]ip ip-prefix 1 deny 11.1.1.0 25 greater-equal 25 less-equal 25
[R1]ip ip-prefix 1 permit 0.0.0.0 0 less-equal 32
第一条配置可以简写为
[R1]ip ip-prefix 1 deny 11.1.1.0 25
第二条配置表示放行所有其他的路由,这是因为前缀列表也会有一条隐含的拒绝所有的规则,所以如果要放行其他所有路由的话,一定要显式增加一条允许所有的规则。
将该前缀列表应用到过滤策略下
#
rip 1
filter-policy ip-prefix 1 import
#
查看R1的路由表
[R1]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost Flags NextHop Interface
11.1.1.0/24 RIP 100 1 D 20.1.1.2 GigabitEthernet0/0/1
20.1.1.0/24 Direct 0 0 D 20.1.1.1 GigabitEthernet0/0/1
20.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
30.1.1.0/24 Direct 0 0 D 30.1.1.1 GigabitEthernet0/0/2
30.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/2
40.1.1.0/24 Direct 0 0 D 40.1.1.1 GigabitEthernet0/0/0
40.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
可以观察到,此时R1的路由表中仅存11.1.1.0/24,即分部A的路由条目
<R4>ping 11.1.1.1
PING 11.1.1.1: 56 data bytes, press CTRL_C to break
Request time out
Reply from 11.1.1.1: bytes=56 Sequence=2 ttl=126 time=120 ms
Reply from 11.1.1.1: bytes=56 Sequence=3 ttl=126 time=70 ms
Reply from 11.1.1.1: bytes=56 Sequence=4 ttl=126 time=120 ms
Reply from 11.1.1.1: bytes=56 Sequence=5 ttl=126 time=100 ms
--- 11.1.1.1 ping statistics ---
5 packet(s) transmitted
4 packet(s) received
20.00% packet loss
round-trip min/avg/max = 70/102/120 ms
可以观察到,此时通信恢复正常
恢复新分部网络
规划分部B网络使用11.2.2.0/24网段,更改PC2的IP地址为11.2.2.1/24,R3的G0/0/0接口IP地址为11.2.2.3/24
#
interface GigabitEthernet0/0/0
ip address 11.2.2.3 255.255.255.0
#
配置完成后,查看R1的路由表[R1]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 10 Routes : 10
Destination/Mask Proto Pre Cost Flags NextHop Interface
11.1.1.0/24 RIP 100 1 D 20.1.1.2 GigabitEthernet0/0/1
11.2.2.0/24 RIP 100 1 D 30.1.1.3 GigabitEthernet0/0/2
20.1.1.0/24 Direct 0 0 D 20.1.1.1 GigabitEthernet0/0/1
20.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
……
可以观察到,R1的路由表中现有新分部B所在11.2.2.0/24网段的路由条目,也有分部A的路由
<R4>ping 11.1.1.1
PING 11.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 11.1.1.1: bytes=56 Sequence=1 ttl=126 time=110 ms
Reply from 11.1.1.1: bytes=56 Sequence=2 ttl=126 time=110 ms
Reply from 11.1.1.1: bytes=56 Sequence=3 ttl=126 time=110 ms
Reply from 11.1.1.1: bytes=56 Sequence=4 ttl=126 time=90 ms
Reply from 11.1.1.1: bytes=56 Sequence=5 ttl=126 time=110 ms
--- 11.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 90/106/110 ms
<R4>ping 11.2.2.1
PING 11.2.2.1: 56 data bytes, press CTRL_C to break
Reply from 11.2.2.1: bytes=56 Sequence=1 ttl=126 time=120 ms
Reply from 11.2.2.1: bytes=56 Sequence=2 ttl=126 time=90 ms
Reply from 11.2.2.1: bytes=56 Sequence=3 ttl=126 time=100 ms
Reply from 11.2.2.1: bytes=56 Sequence=4 ttl=126 time=90 ms
Reply from 11.2.2.1: bytes=56 Sequence=5 ttl=126 time=130 ms
--- 11.2.2.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 90/106/130 ms
可以观察到,通信正常