传统流量分类技术只能检测IP报文的4层以下的内容,包括源地址、目的地址、源端口、目的端口以及业务类型等,而无法分析出报文的应用。智能应用控制SAC(Smart Application Control)引入了业务感知技术,通过智能的应用协议识别与分类引擎,对报文中的第4~7层内容和一些动态协议(如HTTP、RTP)进行检测和识别,根据分类结果实施精细化QoS策略控制,从而实现基于应用的流量控制。
SAC基于业务感知技术中的特征识别技术实现对应用的识别和分类。不同的应用程序通常会采用不同的协议,而不同的应用协议具有各自的特征,这些特征可能是特定的端口、特定的字符串或者特定的比特序列,能标识该协议的特征称为特征码。系统对流经设备的业务流进行分析,将分析结果和加载到设备上的特征库进行对比,通过匹配数据报文中的特征码来识别出应用程序,根据识别结果实施精细化QoS策略控制。SAC工作机制如图1所示。
图1 SAC工作机制
华为公司通过分析各种常见应用的特征码形成了应用识别特征库文件。设备加载应用识别特征库文件后,系统会对支持识别的所有应用进行分类。例如,BT、Thunder和eDonkey_eMule等P2P文件分享的应用属于子类“FileShare_P2P”。设备支持识别的应用及其所属的类别可以通过执行命令display application查看。此外,用户可以根据该应用的特征自定义一个新的应用。
SAC应用场景
如图2所示,为了保证网络质量,并规范用户的上网行为,通过配置SAC识别网络中的各种应用协议,并对其加以控制。例如:
- 对于一般的网络浏览行为予以放行,保证用户能够访问网络,正常办公。
- 对于QQ、微信等即时通信的应用程序进行阻断,限制企业员工从事与工作无关的事务,规范用户上网行为。
- 对于BT、eMule等P2P应用程序则限制其带宽,保证网络质量。
图2 SAC应用场景
SAC使用注意事项
涉及网元
无需其他网元配合。
License支持
SAC是交换机的基本特性,无需获得License许可即可应用此功能。
V200R021C00、V200R021C01版本特性支持情况
仅如下款型支持SAC:
S5731-H、S5731-H-K、S5731S-H、S5731-S、S5731S-S、S5732-H、S5732-H-K、S6730-H、S6730-H-K、S6730S-H、S6730-S、S6730S-S
特性依赖和限制
无
配置SAC
配置业务感知功能
背景信息
业务感知功能的配置包括:
- 将资源分配模式切换至sac模式。
- 使能IAE引擎。
- 使能接口的业务感知功能。
前置任务
SAC可以根据应用识别特征库预定义应用或者用户自定义应用识别应用。缺省情况下,设备的系统软件里自带了一个默认的特征库文件,使能IAE引擎后,系统会自动加载自带的应用识别特征库文件。如果用户想使用更高版本的特征库文件,请升级特征库文件,具体配置请参见《S300, S500, S2700, S5700, S6700 V200R021C00, C01 配置指南-网络管理与监控》 ECA配置 中的“升级应用识别特征库”。不管是加载自带的特征库文件,还是加载更高版本的特征库文件,都要求设备的内存剩余空间大于特征库文件的大小,否则会加载失败。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令assign resource-mode sac,将交换机的资源分配模式切换至sac模式。
执行命令display resource-mode configuration,可以查看设备资源分配模式的配置信息。
- 执行命令reboot,重启交换机。
将交换机的资源分配模式切换至sac模式后,需要在保存配置后重启交换机才能生效。
如果下次启动的配置文件和设备上保存的配置文件一致时,系统重启前将不会提示用户是否保存配置;如果下次启动的配置文件和设备上保存的配置文件不一致时,系统重启前将提示用户是否保存配置,此时输入y即可。
- 使能IAE引擎
a.执行命令system-view,进入系统视图。
b.执行命令defence engine enable,开启IAE引擎,从而加载应用识别特征库。
缺省情况下,IAE引擎为关闭状态。
- 执行命令interface interface-type interface-number,进入接口视图。
- 执行命令service-awareness enable,使能接口的业务感知功能。
交换机仅支持在物理接口、VLANIF接口和端口组下使能业务感知功能。如果在VLANIF接口下使能业务感知功能,则不再需要在该VLANIF接口对应VLAN的物理接口下使能业务感知功能。如果需要使能业务感知功能的接口较多,可以通过端口组进行配置,以简化操作步骤。
- 执行命令quit,返回系统视图。
配置流策略实现SAC
背景信息
在配置业务感知功能后,通过配置流策略,可以针对不同应用名称的业务流采取不同的动作,进行差异化服务。
操作步骤
- 配置流分类
a.执行命令system-view,进入系统视图。
b.执行命令traffic classifier classifier-name [ operator { and | or } ],创建一个流分类并进入流分类视图,或进入已存在的流分类视图。
c. 执行命令if-match application name appname,创建基于应用名称进行分类的匹配规则。设备支持识别的应用名称由应用识别特征库决定,可执行命令display application查看。
d.执行命令quit,退出流分类视图。
- 配置流行为
a.执行命令traffic behavior behavior-name,创建一个流行为并进入流行为视图,或进入已存在的流行为视图。
b.请根据实际情况定义流行为中的动作,只要各动作不冲突,都可以在同一流行为中配置。
表1 流行为中的动作
动作 | 命令 | 说明 |
报文过滤 | deny | permit | 同一流行为下,流动作deny和其他流动作互斥(流量统计、流镜像除外)。 有关报文过滤的详细配置过程请参见报文过滤配置。 |
重标记优先级 | 重标记VLAN报文的802.1p优先级:remark 8021p [ 8021p-value | inner-8021p ] 重标记IP报文的DSCP优先级:remark dscp { dscp-name | dscp-value } 重标记报文的内部优先级:remark local-precedence { local-precedence-name | local-precedence-value } [ green | yellow | red ] 重标记报文的IP优先级:remark ip-precedence ip-precedence | 基于MQC的优先级重标记的详细配置过程请参见配置基于MQC的重标记优先级。 |
重标记流ID | remark flow-id flow-id | - |
重定向 | 重定向报文到CPU:redirect cpu 重定向报文到指定接口:redirect interface interface-type interface-number [ forced ] 重定向报文到VPN实例:redirect vpn-instance vpn-instance-name | 包含redirect interface和redirect cpu的策略只能应用在入方向。 重定向的详细配置过程请参见重定向配置。 |
流量监管 | car | 基于MQC的流量监管详细配置过程请参见配置MQC实现流量监管。 |
层次化流量监管 | car car-name share | 包含car share的策略只能应用在入方向。 |
流镜像 | mirroring to observe-port observe-port-index | 基于MQC的流镜像的详细配置过程请参见《S300, S500, S2700, S5700, S6700 V200R021C00, C01 配置指南-网络管理与监控》 镜像配置 中的“配置镜像”。 |
策略路由 | 重定向报文到单个下一跳IP地址:redirect ip-nexthop 重定向报文到单个下一跳IPv6地址:redirect ipv6-nexthop 重定向报文到多个下一跳IP地址:redirect ip-multihop 重定向报文到多个下一跳IPv6地址:redirect ipv6-multihop | 包含策略路由的策略只对IP类型的报文生效。 策略路由的详细配置过程请参见《S300, S500, S2700, S5700, S6700 V200R021C00, C01 配置指南-IP单播路由》 策略路由配置 中的“配置策略路由”。 |
禁止MAC地址学习 | mac-address learning disable | - |
VLAN Mapping | 重标记VLAN报文的VLAN tag值:remark vlan-id vlan-id 重标记QinQ报文中的内层VLAN tag值:remark cvlan-id cvlan-id | 当流分类匹配if-match outbound-interface interface-type interface-number时,设备不支持配置流行为为VLAN Mapping。 基于MQC的VLAN Mapping详细配置过程请参见《S300, S500, S2700, S5700, S6700 V200R021C00, C01 配置指南-以太网交换》 VLAN Mapping配置 中的“配置基于MQC的VLAN Mapping”。 |
流量统计 | statistic enable | 流量统计的详细配置过程请参见流量统计配置。 |
取消ACL或ACL6中deny规则 | rule-deny-skip-action | 定义该动作的流行为需要与定义ACL或ACL6规则的流分类绑定。 |
c. 执行命令quit,退出流行为视图。
3.配置流策略
a.执行命令traffic policy policy-name [ match-order { auto | config } ],创建一个流策略并进入流策略视图,或进入已存在的流策略视图。
b.执行命令classifier classifier-name behavior behavior-name,在流策略中为指定的流分类配置所需流行为,即绑定流分类和流行为。
c.执行命令quit,退出流策略视图。
4.应用流策略
当交换机的资源分配模式为sac模式时,基于应用名称进行分类的流策略只能应用在物理接口、VLANIF接口或全局的入方向,即必须指定参数inbound。
在物理接口上应用流策略
- 执行命令interface interface-type interface-number[.subinterface-number ],进入接口视图或子接口视图。执行命令traffic-policy policy-name inbound,在接口或子接口视图上应用流策略。
在VLANIF接口上应用流策略
- 执行命令interface vlanif vlan-id,进入VLANIF接口视图。
- 执行命令traffic-policy policy-name inbound,在VLANIF接口上应用流策略。
- 每个VLANIF接口的入方向上能且只能应用一个流策略,但同一个流策略可以同时应用在不同VLANIF接口的入方向。
- 对于应用流策略的VLANIF接口,其对应的VLAN不能是Super-VLAN或MUX VLAN。
- 应用在VLANIF接口上的流策略只对相应VLANIF下的单播报文生效。
- 如果流策略包含的流行为配置了如下动作,则不能在VLANIF接口上应用该流策略:
- remark vlan-id
- remark cvlan-id
- remark 8021p
- remark flow-id
- mac-address learning disable
执行命令traffic-policy policy-name global inbound [ slot slot-id ],在全局上应用流策略。
全局或slot的入方向上能且只能应用一个流策略,如果在全局的入方向应用了流策略,则不能在slot的入方向上再次应用流策略;指定slot在入方向应用流策略后,也不能在全局的入方向上再次应用流策略。
堆叠情况下,全局应用的流策略在所有堆叠交换机上的所有接口和VLAN生效,系统对进入所有堆叠交换机的所有匹配流分类规则的入方向报文流实施策略控制。指定slot slot-id应用的流策略仅在该堆叠ID的堆叠交换机的所有接口和VLAN生效,系统对进入该堆叠交换机的所有匹配流分类规则的入方向报文流实施策略控制。
非堆叠情况下,全局应用的流策略在本交换机的所有接口和VLAN生效,系统对进入本交换机的所有匹配流分类规则的入方向报文流实施策略控制。指定slot slot-id应用的流策略等同于全局应用的流策略。
检查SAC配置结果
操作步骤
- 执行命令display engine session application,查看应用识别表项。
- 执行命令display application,查看系统中的应用的相关信息。
- 执行命令display application name aging-time,查看应用识别关联表的老化时间。
- 检查流策略的配置结果:
- 执行命令display traffic classifier user-defined [ classifier-name ],查看已配置的流分类信息。
- 执行命令display traffic behavior user-defined [ behavior-name ],查看已配置的流行为信息。
- 执行命令display traffic policy user-defined [ policy-name [ classifier classifier-name ] ],查看用户定义的流策略的配置信息。
- 执行命令display traffic-applied [ interface [ interface-type interface-number ] | vlan [ vlan-id ] ] { inbound | outbound } [ verbose ],查看全局、VLAN或接口上应用的基于ACL的简化流策略和基于MQC的流策略配置信息。
- 流策略可以应用到子接口上,但暂不支持通过此命令查看子接口上应用的基于ACL的简化流策略和基于MQC的流策略配置信息。
- 执行命令display traffic policy interface [ interface-type interface-number[.subinterface-number ] ] inbound,查看已配置的流策略信息。
- 执行命令display traffic-policy applied-record [ policy-name ],查看指定流策略的应用记录。
配置SAC示例
组网需求
如图12-3所示,Telnet报文从接口GE0/0/1进入SwitchA。用户希望SwitchA能识别Telnet报文,并且对Telnet报文进行流量统计。
图12-3 配置SAC组网图
配置思路
- 在SwitchA上配置业务感知功能。将SwitchA的资源分配模式切换至sac模式,使能IAE引擎,在报文的入接口上使能SA功能,从而使设备能识别报文对应的应用。
- 在SwitchA上配置流策略实现SAC。在报文的入接口上,对应用名称为Telnet的报文进行流量统计。
操作步骤
- 配置业务感知功能
- # 将SwitchA的资源分配模式切换至sac模式。
<HUAWEI> system-view
[HUAWEI] sysname SwitchA
[SwitchA] assign resource-mode sac
[SwitchA] quit
- 将交换机的资源分配模式切换至sac模式后,需要在保存配置后重启设备才能生效。
- # 在SwitchA上使能IAE引擎。
<SwitchA> system-view
[SwitchA] defence engine enable
- # 在SwitchA的接口GE0/0/1上使能SA功能。
[SwitchA] interface gigabitEthernet 0/0/1
[SwitchA-GigabitEthernet0/0/1] service-awareness enable
[SwitchA-GigabitEthernet0/0/1] quit
- 配置流策略实现SAC
- # 在SwitchA上配置流分类c1。在流分类中创建基于应用名称进行分类的匹配规则。
[SwitchA] traffic classifier c1
[SwitchA-classifier-c1] if-match application name Telnet
[SwitchA-classifier-c1] quit
- # 在SwitchA上配置流行为b1。定义流行为中的动作为流量统计,便于在流策略应用后显示报文统计数据。
[SwitchA] traffic behavior b1
[SwitchA-behavior-b1] statistic enable
[SwitchA-behavior-b1] quit
- # 在SwitchA上配置流策略p1。绑定流分类c1和流行为b1。
[SwitchA] traffic policy p1
[SwitchA-trafficpolicy-p1] classifier c1 behavior b1
[SwitchA-trafficpolicy-p1] quit
- # 将流策略p1应用到SwitchA的接口GE0/0/1的入方向上。
[SwitchA] interface gigabitEthernet 0/0/1
[SwitchA-GigabitEthernet0/0/1] traffic-policy p1 inbound
[SwitchA-GigabitEthernet0/0/1] quit
- 验证配置结果
- # 查看SwitchA上的应用识别表项。
[SwitchA] display engine session application
Source IP Destination IP SPort DPort ProtocolID AppName AppID Expire(S)
--------------------------------------------------------------------------------------
10.1.1.10 10.1.1.20 65146 23 6 Telnet 415 300
10.1.1.10 10.1.1.20 65146 23 6 Telnet 415 150
10.1.1.10 10.1.1.20 65063 23 6 Telnet 415 175
10.1.1.10 10.1.1.20 64997 23 6 Telnet 415 185
10.1.1.10 10.1.1.20 64970 23 6 Telnet 415 45
--------------------------------------------------------------------------------------
Total:5
- # 查看Telnet报文的流量统计信息。
[SwitchA] display traffic policy statistics interface gigabitethernet 0/0/1 inbound
Interface: GigabitEthernet0/0/1
Traffic policy inbound: p1
Rule number: 1
Current status: success
Statistics interval: 300
---------------------------------------------------------------------
Board : 0
---------------------------------------------------------------------
Matched | Packets: 21
| Bytes: 1,986
| Rate(pps): 0
| Rate(bps): 0
---------------------------------------------------------------------
Passed | Packets: 21
| Bytes: 1,986
| Rate(pps): 0
| Rate(bps): 0
---------------------------------------------------------------------
Dropped | Packets: 0
| Bytes: 0
| Rate(pps): 0
| Rate(bps): 0
---------------------------------------------------------------------
Filter | Packets: 0
| Bytes: 0
---------------------------------------------------------------------
Car | Packets: 0
| Bytes: 0
---------------------------------------------------------------------
配置文件
SwitchA的配置文件
#
sysname SwitchA
#
assign resource-mode sac slot 0
#
defence engine enable
#
traffic classifier c1 operator or
if-match application name Telnet
#
traffic behavior b1
statistic enable
#
traffic policy p1 match-order config
classifier c1 behavior b1
#
interface GigabitEthernet0/0/1
traffic-policy p1 inbound
service-awareness enable
#
return