业务流进入DiffServ域时,可以有多种方法对它进行分类,例如根据报文所携带的QoS优先级位,识别出不同优先级特征的流量,或根据源地址、目的地址、MAC地址、IP协议或应用程序的端口号等信息对流进行分类。也可以根据业务等级协议SLA规定的一些策略给每个数据包加上标记,从而对数据包进行分类。因此,实现流分类的技术被分成“简单流分类(Behavior Aggregate Classifier)”与“复杂流分类(Multi-Field Classifier)”。
将流分类方法和对应可实施的流动作关联,形成流策略,并将流策略与接口绑定,可实现丰富的QoS策略,这就是基于复杂流分类的QoS策略(通常被称为“基于类的QoS”)基于复杂流分类的QoS策略是对QoS策略配置的抽象,是“模板化”的QoS配置方式。“模板化”的最大优点是可以节省配置,支持批量修改。
“模板”分为三部分:
- 流分类(Classifier)模板:定义流量类型。用if-match语句设定流分类的匹配规则。
- 流动作(Behavior)模板:定义针对该类流量可实施的流动作。
- 流策略(Policy)模板:将流分类Classifier和流动作Behavior关联,成为一个Classifier & Behavior对。当Policy模板设置完毕之后,需要将Policy模板应用到接口上。
1.流分类
流分类是对进入DiffServ域的业务进行分类,以便在网络中得到相应的适当处理。流分类主要目的是让其他处理此报文的应用系统或设备知道该报文的类别,并根据这种类别对报文进行一些事先约定了的处理。
配置流分类可以将符合一定规则的报文分为一类,区分出用户流量,是实现差分服务的前提和基础。流分类各规则之间属于并列关系,只要匹配规则不冲突,都可以在同一流 分类中配置。用户使用时,可以根据需要进行配置。
如果流分类有多个匹配规则,则这些规则之间有And 和 Or 两种逻辑关系:
-
Or 逻辑:数据包只要匹配该流分类下的任何一条 if-match 子句定义的规则就属于该 类。
-
And 逻辑:当流分类中有ACL规则时,数据包必须匹配其中一条ACL规则以及所 有非ACL规则才属于该类;当流分类中没有ACL规则时,则报文必须匹配所有非 ACL规则才属于该类。
当前华为交换机设备可以选择一条或多条如下规则进行匹配以实现流分类,缺省的逻辑 关系为 Or。
2.流动作
进行流分类是为了有区别地提供服务,它必须与某种流量控制或资源分配动作关联起来才有意义。流量控制或资源分配动作被称为流动作。
在NE40E上,目前针对流分类可实施的流动作包括以下几类(这些流动作可以组合使用):
接口、流策略、流动作、流分类、ACL之间的关系如下图。
1)不同的接口可以应用相同的Policy模板。
2)一个Policy模板中可以配置一个或多个Classifier & Behavior对。不同的Policy模板可以应用相同的Classifier & Behavior对。
3)一个Classifier模板中可以配置一条或多条if-match语句,if-match语句中可以引用ACL规则。不同的Classifier模板可以应用相同的ACL规则。一个ACL规则可以配置一个或多个Rule语句。
4)一个Behavior模板中可以配置一个或多个流动作。
3.流策略
流策略的执行过程
如上图,当收到一个报文,要做复杂流分类处理时,会按照policy模板中Classifier的配置顺序进行匹配。如果命中,则停止匹配;如果不命中,则匹配后面的Classifier;如果是最后一个Classifier,且还不命中,则报文走正常的转发处理,类似于没有应用流分类策略。
由于Classifier中配置的是一个或多个if-match语句,按照if-match语句配置顺序进行匹配;如果if-match语句指定的是ACL或UCL,需要在ACL或UCL的多个Rule语句中进行匹配:首先查找用户是否配置了该ACL或UCL(因为流分类允许引用不存在的ACL和UCL),命中的第一条则停止匹配,不再继续查找后续的规则。
当Rule中的动作为Deny时,如果behavior是镜像或采样,即使对于丢弃的报文,也会执行behavior。
ACL中可以指定permit或deny动作,它与ACL所在Classifier所对应的Behavior中的动作的关系是:
- ACL为deny,则不关心Behavior,报文最终动作是deny;
- ACL为permit,则执行Behavior,报文最终动作是Behavior。
重点内容
-
复杂流分类是指采用复杂的规则,如由报文的源 MAC、目的 MAC、内外层 Tag、源 IP 地址、源端口号、目的 IP 地址、目的端口号等对报文进行精细的分类。复杂流分类主要部署在网络的边缘节点;
-
复杂流分类根据规则匹配的方式实现流分类,多个规则之间有And和Or(缺省逻辑)两种逻辑关系;
相关知识点
ACL,是Access Control List的简称,中文名称叫“访问控制列表”,它由一系列规则(即描述报文匹配条件的判断语句)组成。这些条件,可以是报文的源地址、目的地址、端口号等。这样解释ACL,大家是不是觉得太抽象了!打个比方,ACL其实是一种报文过滤器,ACL规则就是过滤器的滤芯。安装什么样的滤芯(即根据报文特征配置相应的ACL规则),ACL就能过滤出什么样的报文了。 基于过滤出的报文,我们能够做到阻塞攻击报文、为不同类报文流提供差分服务、对Telnet登录/FTP文件下载进行控制等等,从而提高网络环境的安全性和网络传输的可靠性。