3.0.0 路由工具之路由策略router-policy、acl列表与ip-prefix前缀列表的区别、过滤列表filter-policy
目录
- IP-Prefix前缀列表
- 前缀列表与ACL
- router-policy路由策略
- 应用路由策略过滤路由
- 1、环境介绍
- 2、配置OSPF
- 3、过滤路由
- (1)ACL匹配路由方式过滤
- (2)前缀列表匹配路由方式过滤
- 关于路由策略知识点在哪些呢?
- 路由策略修改路由属性
- filter-policy过滤列表
- filter-policy为不同路由协议过滤时会有不同的效果:
- 关于OSPF中应用filter-policy的进一步理解
- 关于OSPF应用filter-policy的结论:
IP-Prefix前缀列表
前缀列表能够同时匹配IP地址前缀以及掩码长度,列表默认动作为拒绝。
前缀列表的创建方式:
(1)精确匹配某个网段的路由:
》匹配192.168.0.0/24的路由
[AR1]ip ip-prefix 1 permit 192.168.0.0 24
(2)匹配某个网段的掩码范围
》匹配路由前缀为192.168,掩码为30~32之间的路由条目
[AR1]ip ip-prefix 2 permit 192.168.0.0 16 greater-equal 30 less-equal 32
(3)命令介绍
常规用法:
ip ip-prefix 前缀列表名称 动作(permit/deny) 匹配路由 匹配前缀
进阶用法:
ip ip-prefix 前缀列表名称 动作 匹配路由 匹配前缀 greater-equal 掩码大于等于多少 less-equal 小于等于多少
解析命令:
ip ip-prefix 前缀列表名称 动作 192.168.0.0 16 greater-equal 30 less-equal 32
匹配路由前缀为192.168,且掩码大于等于30小于等于32的路由条目。
前缀列表与ACL
ACL访问控制列表,即用于流量的匹配与控制,但也能够用于匹配路由条目。
而前缀列表主要用于路由的匹配,所以前缀列表在匹配路由上远胜于ACL。
前缀列表与ACL的区别:
1、ACL无法匹配路由掩码
2、ACL无法匹配精确的路由
如:存在两个路由192.168.1.0/24,192.168.1.0/16
如果用ACL只匹配192.168.1.0/16的话应该这么写:
[AR1]acl 2000
[AR1-acl-basic-2000]rule permit source 192.168.1.0 0.0.255.255但会发现它仍会把192.168.1.0/24的路由匹配到。
因为ACL只能通过通配符匹配路由前缀,而不能匹配路由的掩码。
故两条掩码不同但前缀相同的路由能被ACL同时匹配到。
3、ACL可以对数据包进行过滤,而前缀列表只能匹配路由
router-policy路由策略
作用:针对特定的路由条目去做属性的更改。
路由策略,即对路由相关属性进行修改。
而对于另一种技术:策略路由,即作用是直接控制路由。
如何应用路由策略?
1、首先匹配路由,应用ACL、IP-prefix等匹配技术匹配相关路由。
2、属性修改,如修改匹配出来的路由开销、tag标记等。
3、应用策略,创建好路由策略之后,可在需要进行路由修改的地方进行引用策略。
下面,就通过操作实例来进一步认识路由策略:
应用路由策略过滤路由
1、环境介绍
AR6与AR7建立OSPF邻接关系,AR6引入所有环回口网络。
2、配置OSPF
AR6
[AR6]int g0/0/0
[AR6-GigabitEthernet0/0/0]ip add 10.1.67.6 24
[AR6-GigabitEthernet0/0/0]int lo 0
[AR6-LoopBack0]ip add 192.168.0.254 24
[AR6-LoopBack0]int lo 1
[AR6-LoopBack1]ip add 192.168.1.254 24
[AR6-LoopBack1]int lo 2
[AR6-LoopBack2]ip add 192.168.2.254 24
[AR6-LoopBack2]int lo 3
[AR6-LoopBack3]ip add 192.168.3.254 24
[AR6-LoopBack3]q
[AR6]ospf 1 router-id 6.6.6.6
[AR6-ospf-1]a 0
[AR6-ospf-1-area-0.0.0.0]network 10.1.67.6 0.0.0.0
[AR6-ospf-1-area-0.0.0.0]q
[AR6-ospf-1]import-route direct
AR7
[AR7]int g0/0/0
[AR7-GigabitEthernet0/0/0]ip add 10.1.67.7 24
[AR7-GigabitEthernet0/0/0]q
[AR7]ospf 1 router-id 7.7.7.7
[AR7-ospf-1]a 0
[AR7-ospf-1-area-0.0.0.0]network 10.1.67.7 0.0.0.0
检查OSPF建立情况
[AR7]display ospf peer br
OSPF Process 1 with Router ID 7.7.7.7
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 6.6.6.6 Full
----------------------------------------------------------------------------
[AR7]display ip routing-table protocol ospf
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.0.0/24 O_ASE 150 1 D 10.1.67.6 GigabitEthernet0/0/0
192.168.1.0/24 O_ASE 150 1 D 10.1.67.6 GigabitEthernet0/0/0
192.168.2.0/24 O_ASE 150 1 D 10.1.67.6 GigabitEthernet0/0/0
192.168.3.0/24 O_ASE 150 1 D 10.1.67.6 GigabitEthernet0/0/0
3、过滤路由
使用路由策略在AR6上对引入的路由进行过滤,过滤Lop0、Lop1的路由。
以下两种方式选择一种即可:
(1)ACL匹配路由方式过滤
创建匹配列表
# 匹配出Lop1、Lop2的路由
[AR6]acl 2000
[AR6-acl-basic-2000]rule permit source 192.168.0.0 0.0.0.255
[AR6-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
创建策略与应用策略
# denylop12为路由策略的名称,deny为动作,node为表示策略匹配顺序
# if-match用于指定匹配列表
[AR6]route-policy denylop12 deny node 5
[AR6-route-policy]if-match acl 2000
[AR6-route-policy]q
# 先进行拒绝某些路由,最后再放行没有匹配到的路由即可
# 当没有指定if-match表示匹配所有的路由
[AR6]route-policy denylop12 permit node 10
[AR6-route-policy]q
# 应用策略在引入路由的时候过滤
[AR6]ospf 1
[AR6-ospf-1]import-route direct route-policy denylop12
查看过滤结果,只剩下了Lop2、Lop3了。
<AR7>display ip routing-table protocol ospf
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.2.0/24 O_ASE 150 1 D 10.1.67.6 GigabitEthernet0/0/0
192.168.3.0/24 O_ASE 150 1 D 10.1.67.6 GigabitEthernet0/0/0
(2)前缀列表匹配路由方式过滤
创建匹配列表
[AR6]ip ip-prefix denylop12 permit 192.168.0.0 24
[AR6]ip ip-prefix denylop12 permit 192.168.1.0 24
# 对于ACL与前缀列表的创建,没有指定Node步长的时候都是有默认值的,不会发生覆盖的情况。
# 查看前缀列表的信息
[AR6]dis ip ip-prefix denylop12
Prefix-list denylop12
Permitted 0
Denied 0
index: 10 permit 192.168.0.0/24
index: 20 permit 192.168.1.0/24
创建策略与应用策略
# denylop12为路由策略的名称,deny为动作,node为表示策略匹配顺序
# if-match用于指定匹配列表
[AR6]route-policy denylop12 deny node 5
[AR6-route-policy]if-match ip-prefix denylop12
[AR6-route-policy]q
# 先进行拒绝某些路由,最后再放行没有匹配到的路由即可
# 当没有指定if-match表示匹配所有的路由
[AR6]route-policy denylop12 permit node 10
[AR6-route-policy]q
# 应用策略在引入路由的时候过滤
[AR6]ospf 1
[AR6-ospf-1]import-route direct route-policy denylop12
查看过滤结果,只剩下了Lop2、Lop3了。
<AR7>display ip routing-table protocol ospf
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.2.0/24 O_ASE 150 1 D 10.1.67.6 GigabitEthernet0/0/0
192.168.3.0/24 O_ASE 150 1 D 10.1.67.6 GigabitEthernet0/0/0
关于路由策略知识点在哪些呢?
在于匹配路由的动作上,但前面的策略只是使用到简单的匹配操作,并没有进行修改路由的属性。
路由策略修改路由属性
在此操作一个OSPF实例,通过路由策略对Lop0、Lop1的路由打上Tag标记。
基于上面操作过的拓扑环境操作,无过滤路由操作情况下进行。
[AR6]acl 2001
[AR6-acl-basic-2001]rule permit source 192.168.0.0 0.0.0.255
[AR6-acl-basic-2001]rule permit source 192.168.1.0 0.0.0.255
[AR6-acl-basic-2001]q
# 指定路由打上Tag6标签
[AR6]route-policy taglop12 permit node 5
[AR6-route-policy]if-match acl 2001
[AR6-route-policy]apply tag 6
[AR6-route-policy]q
# 对于没有匹配到的路由不打上标签
[AR6]route-policy taglop12 permit node 10
[AR6-route-policy]q
# 应用于OSPF引入路由时打上标签
[AR6]ospf 1
[AR6-ospf-1]import-route direct route-policy taglop12
在AR6上查看引入路由的LSA详细信息,查看LSA就需要在LSDB中观看:
[AR6]display ospf lsdb
OSPF Process 1 with Router ID 6.6.6.6
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 7.7.7.7 7.7.7.7 73 36 80000004 1
Router 6.6.6.6 6.6.6.6 65 36 80000007 1
Network 10.1.67.6 6.6.6.6 65 32 80000003 0
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 192.168.2.0 6.6.6.6 113 36 80000002 1
External 192.168.3.0 6.6.6.6 113 36 80000002 1
External 10.1.67.0 6.6.6.6 113 36 80000002 1
External 192.168.0.0 6.6.6.6 109 36 80000001 1
External 192.168.1.0 6.6.6.6 109 36 80000001 1
# 引入中的Lop1、Lop2为External5类LSA,通过aes查看详细信息
[AR6]display ospf lsdb ase 192.168.0.0
OSPF Process 1 with Router ID 6.6.6.6
Link State Database
Type : External
Ls id : 192.168.0.0
Adv rtr : 6.6.6.6
Ls age : 157
Len : 36
Options : E
seq# : 80000001
chksum : 0xf257
Net mask : 255.255.255.0
TOS 0 Metric: 1
E type : 2
Forwarding Address : 0.0.0.0
Tag : 6 【成功打上Tag标记】
Priority : Low
filter-policy过滤列表
常规的应用路由策略在引入路由时调用进行过滤路由,但是对于路由本身接收与发布的路由无法进行过滤。
为此Filter-policy过滤列表的出现,就解决了接收与发布路由时路由过滤的问题。
关于filter-policy有两个应用的方向,export与import:
export:应用于本身路由器,对传递出去的路由进行过滤。
import:应用于本身路由器,对接收到的路由进行过滤。
对于export与import所应用于路由协议的不同,其功能也会有所不同。
filter-policy为不同路由协议过滤时会有不同的效果:
1、距离矢量路由协议RIP:
传递的是路由信息,如果某台设备通过filter-policy拒绝了传递而来的路由信息,那么该设备不会学习到并不会继续转发过滤掉的路由。
2、链路状态路由协议OSPF、ISIS:
由于传递的是链路状态信息(LSA),即使AR7部署filter-policy过滤了路由,也不会影响LSA的传递。
过滤路由后的LSA不会进行SPF计算,但可以继续传递给其它设备使用。
实验证明:
AR6、AR7、AR8建立OSPF,AR6将环回口引入网络中。
AR7上应用filter-policy方向为import,对接收到的路由进行过滤。
【此处就省略OSPF的与路由引入等相关操作,主要是对路由过滤命令进行记录】
# 创建匹配列表,指定过滤路由
[AR7]ip ip-prefix lop12 deny 192.168.1.0 24
[AR7]ip ip-prefix lop12 deny 192.168.2.0 24
# 由于默认规则是拒绝,故需要配置一条放行所以路由的策略,避免拒绝了所有路由
[AR7]ip ip-prefix lop12 permit 0.0.0.0 0 less-equal 32
# ospf模式下应用ospf filter-policy过滤指定路由
[AR7]ospf 1
[AR7-ospf-1]filter-policy ip-prefix lop12 import
在AR7上查看路由,成功过滤了lop1、lop2的路由。
再看LSDB,虽然过滤了路由但没有过滤LSA。
<AR7>display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.0.0/24 O_ASE 150 1 D 10.1.67.6 GigabitEthernet0/0/0
192.168.3.0/24 O_ASE 150 1 D 10.1.67.6 GigabitEthernet0/0/0
<AR7>display ospf lsdb
OSPF Process 1 with Router ID 7.7.7.7
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 7.7.7.7 7.7.7.7 1014 48 80000009 1
Router 6.6.6.6 6.6.6.6 485 36 80000008 1
Router 8.8.8.8 8.8.8.8 1022 36 80000003 1
Network 10.1.78.7 7.7.7.7 1014 32 80000002 0
Network 10.1.67.6 6.6.6.6 485 32 80000004 0
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 192.168.2.0 6.6.6.6 533 36 80000003 1
External 192.168.3.0 6.6.6.6 533 36 80000003 1
External 10.1.67.0 6.6.6.6 533 36 80000003 1
External 192.168.0.0 6.6.6.6 1094 36 80000002 1
External 192.168.1.0 6.6.6.6 1094 36 80000002 1
在AR8上观看路由,还能正常的学习到路由条目。
但去访问该路由却无法成功,因为中间的AR7并没有对应的路由条目。
<AR8>display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.1.67.0/24 OSPF 10 2 D 10.1.78.7 GigabitEthernet0/0/0
192.168.0.0/24 O_ASE 150 1 D 10.1.78.7 GigabitEthernet0/0/0
192.168.1.0/24 O_ASE 150 1 D 10.1.78.7 GigabitEthernet0/0/0
192.168.2.0/24 O_ASE 150 1 D 10.1.78.7 GigabitEthernet0/0/0
192.168.3.0/24 O_ASE 150 1 D 10.1.78.7 GigabitEthernet0/0/0
# 由于AR7没有1.0的路由条目,故无法访问成功
<AR8>ping 192.168.1.254
PING 192.168.1.254: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
关于OSPF中应用filter-policy的进一步理解
在OSPF中应用filter-polic的import方向y过滤路由但不会过滤LSA。
那么filter-policy的export方向呢?
对于OSPF出方向只能在ASBR上操作,因为在OSPF中filter-policy的export方向只能过滤5类的LSA。
ASBR的出方向应用过滤列表,会直接将5类LSA进行过滤,不会传递出去。
实验证明filter-policy的export只能过滤5类:
省略的相关配置介绍:
1、AR6、AR7、AR8正常建立OSPF邻接关系
2、AR6上将lop0~lop3引入OSPF中,lop4正常进行network宣告
以下配置主要是AR6通过filter-policy进行过滤lop1、lop4的操作:
[AR6]acl 2000
[AR6-acl-basic-2000]rule deny source 192.168.1.0 0.0.0.255
[AR6-acl-basic-2000]rule deny source 192.168.4.0 0.0.0.255
[AR6-acl-basic-2000]rule permit source any
[AR6-acl-basic-2000]q
[AR6]ospf 1
[AR6-ospf-1]filter-policy 2000 export
查看AR7的路由表与LSDB表,发现lop1不见了,但lop4还存在。
说明了filter-policy的export只能过滤5类LSA,不能过滤普通路由。
<AR7>display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.0.0/24 O_ASE 150 1 D 10.1.67.6 GigabitEthernet0/0/0
192.168.2.0/24 O_ASE 150 1 D 10.1.67.6 GigabitEthernet0/0/0
192.168.3.0/24 O_ASE 150 1 D 10.1.67.6 GigabitEthernet0/0/0
192.168.4.254/32 OSPF 10 1 D 10.1.67.6 GigabitEthernet0/0/0
<AR7>display ospf lsdb
OSPF Process 1 with Router ID 7.7.7.7
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 7.7.7.7 7.7.7.7 991 48 8000000A 1
Router 6.6.6.6 6.6.6.6 385 48 8000000A 1
Router 8.8.8.8 8.8.8.8 999 36 80000004 1
Network 10.1.78.7 7.7.7.7 991 32 80000003 0
Network 10.1.67.6 6.6.6.6 462 32 80000005 0
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 192.168.0.0 6.6.6.6 104 36 80000001 1
External 192.168.2.0 6.6.6.6 104 36 80000001 1
External 192.168.3.0 6.6.6.6 104 36 80000001 1
External 10.1.67.0 6.6.6.6 104 36 80000001 1
扩展操作,理论上说出方向只能在ASBR上操作,那我在AR7非ASBR上做呢?
[AR7]acl 2000
[AR7-acl-basic-2000]rule deny source 192.168.1.0 0.0.0.255
[AR7-acl-basic-2000]rule deny source 192.168.4.0 0.0.0.255
[AR7-acl-basic-2000]rule permit source any
[AR7-acl-basic-2000]q
[AR7]ospf 1
[AR7-ospf-1]filter-policy 2000 export
在AR8上观看路由表与LSDB表,发现没有任何的变化(过滤失败)。
<AR8>display ip routing-table pro ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 7 Routes : 7
OSPF routing table status : <Active>
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.1.67.0/24 OSPF 10 2 D 10.1.78.7 GigabitEthernet0/0/0
192.168.0.0/24 O_ASE 150 1 D 10.1.78.7 GigabitEthernet0/0/0
192.168.1.0/24 O_ASE 150 1 D 10.1.78.7 GigabitEthernet0/0/0
192.168.2.0/24 O_ASE 150 1 D 10.1.78.7 GigabitEthernet0/0/0
192.168.3.0/24 O_ASE 150 1 D 10.1.78.7 GigabitEthernet0/0/0
192.168.4.0/24 O_ASE 150 1 D 10.1.78.7 GigabitEthernet0/0/0
192.168.4.254/32 OSPF 10 2 D 10.1.78.7 GigabitEthernet0/0/0
<AR8>display ospf lsdb
OSPF Process 1 with Router ID 8.8.8.8
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 7.7.7.7 7.7.7.7 1364 48 8000000A 1
Router 6.6.6.6 6.6.6.6 758 48 8000000A 1
Router 8.8.8.8 8.8.8.8 1369 36 80000004 1
Network 10.1.78.7 7.7.7.7 1364 32 80000003 0
Network 10.1.67.6 6.6.6.6 835 32 80000005 0
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 192.168.4.0 6.6.6.6 200 36 80000001 1
External 192.168.2.0 6.6.6.6 477 36 80000001 1
External 192.168.3.0 6.6.6.6 477 36 80000001 1
External 10.1.67.0 6.6.6.6 477 36 80000001 1
External 192.168.0.0 6.6.6.6 200 36 80000001 1
External 192.168.1.0 6.6.6.6 477 36 80000001 1
关于OSPF应用filter-policy的结论:
关于export方向,只能在ASBR设备上应用过滤5类的路由条目。
关于import方向,可以应用在任何路由器上过滤路由条目,但不能过滤LSA。