龙空技术网

3.0.0 路由策略router-policy、过滤列表filter-policy

HadesLing 232

前言:

如今咱们对“netfilter路由表”可能比较关切,兄弟们都需要学习一些“netfilter路由表”的相关资讯。那么小编同时在网摘上网罗了一些关于“netfilter路由表””的相关资讯,希望大家能喜欢,各位老铁们一起来了解一下吧!

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 denylop12Prefix-list denylop12Permitted 0Denied 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 ospfRoute 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 : 7Destination/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。

标签: #netfilter路由表