路由工具之路由策略router-policy、acl列表与ip-prefix前缀列表的区别、过滤列表filter-policy

3.0.0 路由工具之路由策略router-policy、acl列表与ip-prefix前缀列表的区别、过滤列表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/24192.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。

  • 16
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
使用react-router-dom创建动态路由非常简单。我们可以使用Route组件来定义路由并在其中使用动态参数。以下是如何使用react-router-dom创建动态路由的步骤: 1. 安装react-router-dom:使用以下命令安装react-router-dom。 ``` npm install react-router-dom ``` 2. 在项目中导入所需的组件: ```javascript import React from "react"; import { BrowserRouter as Router, Switch, Route } from "react-router-dom"; ``` 3. 创建路由并在其中使用动态参数: ```javascript <Router> <Switch> <Route exact path="/" component={Home} /> <<Route exact path="/users/:id" component={User} /> </Switch> </Router> ``` 上面的代码中,我们定义了一个具有动态参数的路由。用户可以通过访问URL `/users/:id` 来访问该路由。其中,`:id` 是一个动态参数,它将被替换为用户请求的实际值。 4. 在组件中获取动态参数: 在上面的代码中,我们定义了一个名为`User`的组件。我们可以在该组件中通过`props.match.params.id`来获取动态参数的值。以下是一个简单的示例: ```javascript import React from "react"; const User = (props) => { return <h1>User ID: {props.match.params.id}</h1>; }; export default User; ``` 在上面的代码中,我们使用`props.match.params.id`来获取动态参数的值,并将其显示在页面上。 这就是使用react-router-dom创建动态路由的基本步骤。你可以根据你的具体需求进行调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hades_Ling

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值