流分类简介
流分类
流分类是对进入DiffServ域的业务进行分类,以便在网络中得到相应的适当处理。流分类主要目的是让其他处理此报文的应用系统或设备知道该报文的类别,并根据这种类别对报文进行一些事先约定了的处理。
实现流分类的技术
业务流进入DiffServ域时,可以有多种方法对它进行分类,例如根据报文所携带的QoS优先级位(请参见下一节“QoS优先级标记字段”),识别出不同优先级特征的流量,或根据源地址、目的地址、MAC地址、IP协议或应用程序的端口号等信息对流进行分类。也可以根据业务等级协议SLA规定的一些策略给每个数据包加上标记,从而对数据包进行分类。
当报文在DiffServ域边界被分类之后,在网络的中间节点,就可以根据分类,对不同类别的流量给予差别服务。下游(downstream)节点可以选择使用上游(upstream)节点的分类结果,也可以按照自己的分类标准对数据流重新进行分类。
因此,实现流分类的技术被分成“简单流分类(Behavior Aggregate Classifier)”与“复杂流分类(Multi-Field Classifier)”,这两种技术的详细介绍请参见本文“简单流分类”和“复杂流分类”。
流动作
进行流分类是为了有区别地提供服务,它必须与某种流量控制或资源分配动作关联起来才有意义。流量控制或资源分配动作被称为流动作。
在NE20E上,目前针对流分类可实施的流动作包括以下几类(这些流动作可以组合使用):
流动作 | 含义 | |
---|---|---|
标记 | 外部标记 | 设置/改写报文的优先级字段,用于向下一台设备传递差分服务的QoS信息。其中,改写报文的优先级字段也称为“重标记”。 |
内部标记 | 标记报文在设备内部处理的服务等级(service-class)与丢弃优先级,让匹配的报文能够直接进入指定服务等级的队列,而不需要根据报文头中的优先级字段来确定服务等级。 标记报文的丢弃优先级也叫着色(color),是指在相同service-class的时候,入同一个队列,当此队列快拥塞的时候,可以通过color再进行差分服务,体现在缓存使用上的优先顺序。 |
|
流量监管 |
将业务流量限制在特定的带宽,当业务流量超过额定带宽时,超过的流量将被丢弃。 |
|
拥塞管理 |
在网络发生拥塞时,将报文放入队列中缓存,采取某种调度算法安排报文的转发次序同时对输出流量进行整形(Shaping),满足业务流量在QoS属性(带宽、时延、抖动、丢包率)方面的要求。 |
|
拥塞避免 |
通过监视队列缓存的使用情况,当队列缓存使用情况达到指定门限时,主动丢弃报文来解除网络过载。 |
|
报文过滤 |
最基本的安全手段。通过流分类,决定报文是被直接丢弃还是可以继续后面的转发处理。 |
|
重定向/策略路由 |
根据流分类决定报文的转发路径。分为强策略路由与弱策略路由。
|
|
负载分担 |
设置报文的负载分担方式为逐流或逐包。 只对存在多条转发路径的报文有效。多条转发路径分为两种情况:
|
|
报文分片 |
改写IP报文头中的DF字段。 说明:
对于从用户终端发出来的报文,存在1500字节的大包,而一般的PC会设置IP头中的DF=1,即不允许中间的网络设备对报文分片,但是由于报文会经过接入、汇聚、核心等多个层次的网络设备,一般会在接入、汇聚层增加TAG等信息,这样会导致最终的报文长度超过MTU(1500字节)。此时,如果IP报文头的DF=1,会导致此报文被丢弃,所以为了不丢弃报文,同时不让用户层应用感知,网络设备提供可以修改IP报文头的DF标志的功能。 |
|
URPF(Unicast Reverse Path Forwarding) |
一种安全手段,根据报文的源IP地址反查路由表,确定报文源IP地址的合法性,防止源地址欺骗的攻击。 |
|
流镜像 |
设备复制一份和被观察流的原始报文一模一样的报文,并传送到指定的观察端口上。 |
|
流采样 |
收集特定数据流的时间戳、源地址、目的地址、源端口号、目的端口号、ToS值、协议号、报文长度和被采样报文的入接口等信息,从而可以监控特定用户的通信情况。 |
|
修改TTL值 |
修改IP报文头的TTL(Time To Live)字段值。 |
什么是简单流分类
简单流分类是指采用简单的规则,如只根据IP报文的IP优先级或DSCP值、IPv6报文的TC值、MPLS报文的EXP域值、VLAN报文的802.1p值,对报文进行粗略的分类,以识别出具有不同优先级或服务等级特征的流量,实现外部优先级和内部优先级之间的映射。
简单流分类过程实际上就是信任端口的上行报文携带的优先级标记,并进行优先级映射(即根据优先级映射表,将上行报文携带的QoS优先级统一映射到设备内部的服务等级和颜色,将下行报文的内部的服务等级和颜色映射成为QoS优先级),详细的介绍请参见“QoS优先级映射”章节。
在NE20E上,配置简单流分类就是配置DS域并定义该域中的优先级映射表,之后将DS域与信任的接口绑定。
简单流分类主要在网络的DS域内部节点部署。
复杂流分类的定义
随着网络的普及,网络中的业务越来越多样化,多种业务流共享同一网络资源,简单的流分类措施很难满足要求,尤其是很多业务可能都是基于80端口。这样,就要求网络具备很强的业务感知能力,能深度报文分析,对报文任意层次和字段的全面解析。复杂流分类可以在一定程度上满足此要求。
复杂流分类是指采用复杂的规则,如由五元组(源地址、源端口号、协议号码、目的地址、目的端口号)对报文进行精细的分类。为了节省配置,方便批量修改配置,复杂流分类的命令行采用模板化形式,详细信息请参见“基于复杂流类的QoS策略”。