匹配工具1:ACL
定义
ACL 访问控制列表(Access Control List)是路由器和交换机中用于控制网络流量的一种技术,它可以根据预定义的规则来允许或者禁止特定的流量通过设备。
ACL通常由两部分组成:匹配规则和动作。匹配规则用于确定哪些流量需要被ACL处理,而动作用于确定对于匹配的流量应该采取何种措施,比如允许通过或者禁止通过。
ACL的匹配规则通常包括以下几个方面:
-
源地址和目的地址:可以根据源地址和目的地址来匹配流量,比如只允许来自特定IP地址的流量通过。
-
协议类型:可以根据协议类型来匹配流量,比如只允许TCP协议的流量通过。
-
端口号:可以根据端口号来匹配流量,比如只允许目的端口为80的HTTP流量通过。
-
包含特定数据:可以根据数据包中包含的特定数据来匹配流量,比如只允许包含特定关键词的数据通过。
ACL的匹配规则通常是按照从上到下的顺序逐条匹配的,当一个数据包与某一条规则匹配成功后,就会执行该规则所定义的动作,并且不再继续匹配后面的规则
如果一个数据包没有匹配成功任何一条规则,则会执行默认动作,通常是禁止通过。
需要注意的是,ACL可能会对网络性能产生影响,因为每个数据包都需要经过ACL的匹配过程,因此在配置ACL时需要谨慎考虑匹配规则的数量和复杂度,以避免对网络性能产生过大的影响。
在华为中ACL分为以下几种
默认步长为5
分类 | 编号范围 | 规则定义描述 |
---|---|---|
基本ACL | 2000~2999 | 仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则。 |
高级ACL | 3000~3999 | 可使用IPv4报文的源IP地址、目的IP地址、IP协议类型、ICMP类型、TCP源/目的端口、UDP源/目的端口号、生效时间段等来定义规则。 |
二层ACL | 4000~4999 | 使用报文的以太网帧头信息来定义规则,如根据源MAC地址、目的MAC地址、二层协议类型等。 |
用户自定义ACL | 5000~5999 | 使用报文头、偏移位置、字符串掩码和用户自定义字符串来定义规则。 |
用户ACL | 6000~6999 | 既可使用IPv4报文的源IP地址或源UCL (User Control List)组,也可使用目的IP地址或目的UCL组IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。 |
通配符
配置ACL的通配符
通配符中的0
表示严格检查匹配 1
表示不检查匹配
如
网络: 10.0.0.0
通配符:0.0.0.255
表示对前24位进行严格匹配,后8位不检查匹配
这时候10.0.0.0 - 10.0.0.254的IP都可以被匹配到
ACL可以0与1混合出现
计算ACL规则所匹配的网段
问:以下ACL匹配了哪些网段
网络:192.168.5.0
通配符:0.0.3.255
把17-24位写成二进制
网络: 0000 0101
通配符:0000 0011
观察后三位可以知道,以下的IP能被匹配到
0100
0101
0110
0111
写为点分十进制即
192.168.4.0/24
192.168.5.0/24
192.168.6.0/24
192.168.7.0/24
从给定的网段计算ACL规则
如果计算汇总后的网络号和通配符?
举例如上
网络号,两个网段都相同的部分直接抄,不同的写0(默认)
通配符,两个网段都相同的部分直接写零,不同写1
匹配工具2:ip前缀列表
- IP前缀列表 (IP-Prefix List)是将路由条目的网络地址、掩码长度作为匹配条件的过滤器,可在各路由协议发布和接收路由时使用
- 不同于ACL,IP-Prefix List能够同时匹配IP地址前缀长度以及掩码长度,增强了匹配的精确度
匹配机制
匹配实例
配置示例
注意默认是deny
路由策略工具1:Filter-Policy
路由信息过滤工具,能接收,发布,引入的路由进行过滤只过滤路由信息
无法过滤 LSA
应用场景
策略工具2: Route-Policy
-
Route-Policy是一个策略工具,用于过滤路由信息,以及为过滤后的路由信息设置路由属性。
-
一个Route-Policy由一个或多个节点(Node)构成,每个节点都可以是一系列条件语句(匹配条件)以及执行语句(执行动作)的集合,这些集合按照编号从小到大的顺序排列。
- 当使用Route- Policy时,Node的值小的节点先进行匹配。一个节点匹配成功后,路由将不再匹配其他节点。全部节点匹配失败后,路由将被过滤。
组成
一个Route-Policy由一个或多个节点构成,每个节点包括多个if-match和apply子句
- permit或deny: 指定Route-Policy节点的匹配模式为允许或拒绝
- node:指定Route-Policy的节点号。整数形式,取值范围是0~65535。
- if-match子句:定义该节点的匹配条件。
- apply子句:定义针对被匹配路由执行的操作
匹配顺序
注意事项
华为设备默认所有未匹配的路由将被拒绝通过Route-Policy。如果Route-Policy中定义了一个以上的节点,应保证各节点中至少有一个节点的匹配模式是permit。因为Route-Policy用于路由信息过滤时:
-
如果某路由信息没有通过任一节点,则认为该路由信息没有通过该Route-Policy。
-
如果Route-Policy的所有节点都是deny模式,则没有路由信息能通过该Route-Policy
所以, 通常在多个deny节点后设置一个不含if-match子句和apply子句的permit模式的Route-Policy,用于允许其它所有的路由通过。
PBR策略路由
PBR与路由策略区别
名称 | 操作对象 | 描述 |
---|---|---|
路由策略( Route-Policy) | 路由信息 | 路由策略是一套用于对路由信息进行过滤、属性设置等操作的方法,通过对路由的操作或控制,来影响数据报文的转发路径 |
PBR | 数据报文 | PBR直接对数据报文进行操作,通过多种手段匹配感兴趣的报文,然后执行丢弃或强制转发路径等操作 |
实例
- 当ACL的rule配置为permit时,设备会对匹配该规则的报文执行本地策略路由的动作:
- 本地策略路由中策略点为permit时对满足匹配条件的报文进行策略路由;
- 本地策略路由中策略点为deny时对满足匹配条件的报文不进行策略路由,即根据目的地址查找路由表转发报文。
- 当ACL配置了rule,如果报文未匹配上任何规则,则根据目的地址查找路由表转发报文当ACL的rule配置为deny或ACL未配置规则时,应用该ACL的本地策略路由不生效,即根据目的地址查找路由表转发报文,并不是丢弃报文。
MQC(traffic-policy)
流分类
流分类是将网络流量分组或分类的过程,通过定义一组匹配条件,将进入设备的数据流量按照特定的特征进行标记或分组。这些特征可以是数据包的源 IP 地址、目的 IP 地址、协议类型、端口号等。通过流分类,可以将不同类型的流量分为不同的类别,以便后续的 QoS 处理。
- 流分类中各规则之间的关系分为: and或or,缺省情况下的关系为or。
- and: 当流分类中包含ACL规则时,报文必须匹配其中一条ACL规则以及所有非ACL规则;当流分类中没有ACL规则时,报文必须匹配所有非ACL规则。
- or: 报文只要匹配了流分类中的一个规则,设备就认为报文匹配中该流分类。
流行为
流行为是为不同流分类定义的处理规则和行为。在流行为中,可以指定带宽限制、优先级、丢包策略、拥塞管理等操作。根据不同的应用需求和业务优先级,可以对不同的流分类指定不同的流行为,从而实现对流量的不同处理方式。
流策略
流策略是将流分类和流行为结合起来,应用于实际的接口或链路上,以实现对流量的实际控制和管理。通过定义流策略,将不同的流分类与相应的流行为绑定,并将其应用到具体的网络接口上。
实例
为匹配ACL规则的报文指定报文过滤动作时,如果此ACL中的rule规则配置为permit,则设备对此报文采取的动作由流行为中配置的deny或permit决定;
如果此ACL中的rule规则配置为deny,则无论流行为中配置了deny或permit,此报文都被丢弃。
流量过滤traffic-filter
与MQC的不同点
注意事项
MQC调用的ACL里permit、deny只代表是否匹配流量,不代表是否放通、拒绝流量,而Traffic-Filter调用的ACL里permit、deny代表放通、拒绝流量。