复杂流策略配置与管理
流策略是指通过将用户流量分类,把具有某类共同特征的报文划分为一类,为相同类型的流量提供同等的QoS服务,从而针对不同的业务类型提供差分服务。
复杂流策略包含3个要素:
(1)流分类
流分类(trafficclassifier)用来定义一组流量匹配规则,以对报文进行分类。流分类中各规则之间的关系分为and或or,缺省情况下的关系为and。当流分类中有ACL规则时,报文必须匹配其中一条ACL规则以及所有非ACL规则才属于and类;当流分类中没有ACL规则时,报文必须匹配所有非ACL规则才属于and类;当报文只要匹配了流分类中的一个规则,设备就认为报文属于or类。
(2)流行为
流行为(traffic behavior)用来定义针对某类报文所做的QoS行为。进行流分类是为了有区别地提供服务,它必须与某种流量控制或资源分配的行为关联起来才有意义。
(3)流策略
流策略(traffic policy)用来将指定的流分类和流行为绑定,对分类后的报文执行对应流行为中定义的行为。
一、配置流分类
流分类的配置方法需要两步:
(1)先在系统视图下使用traffic classifier classifier-name [operator {and | or}]命令创建一个流分类,进入流分类视图。
(2)根据实际情况选择配置流分类中的匹配规则。
——上述配置匹配规则中,if-match discard这一条不明是什么意思,其他的一般都是根据报文中的某个或某些字段来进行匹配,这一条根据丢弃报文进行分类,是根据哪个字段来的?
二、配置流行为
配置流行为即为符合流分类规则的流量指定后续行为,是配置流策略的前提条件。在配置流行为时,各行为属于叠加关系,只要不冲突,都可以在同一流行为中配置。
1、报文过滤
配置报文过滤后,设备对符合流分类规则的报文进行过滤,从而实现对网络流量的控制。
2、重标记
通过配置重标记,设备对符合流分类规则的报文的指定字段进行设置,如VLAN报文的802.1p优先级、IP报文的DSCP和内部优先级。但重标记报文某些字段,不会影响当前设备对报文的QoS处理,仅会影响下游设备对报文的QoS处理。——对报文进行了部分字段的改写。
3、重定向
通过配置重定向,设备将符合刘分类规则的报文重定向到CPU、指定的下一跳地址或指定接口,但包含重定向行为的流策略只能在全局、接口或VLAN的入方向上应用。
4、流量监管
流量监管是一种通过对流量规格的监督,来限制流量及其资源使用的流量控制行为。通过配置流量监管,设备对符合流分类规则的报文的流量进行监督,对于超过规格的流量,可以采取丢弃、重标记颜色、重标记服务级别等行为。——通过这里的描述,对流量的着色是否可以这样理解:先进行分类,分类时可能进行了着色(优先级与PHB行为/颜色映射),随后进行的流量监管又可以对颜色按照监管结果进行重标记颜色。
5、流镜像
配置流镜像后,设备将符合刘分类规则的所有报文镜像到监控端口。
6、流量统计
配置流量统计后,设备将对符合流分类规则的报文进行流量统计,帮助用户了解应用流策略后报文通过和被丢弃的情况。
7、禁止MAC地址学习
在网络比较稳定、报文的MAC地址相对固定的情况下,设备没有必要继续学习其他所有报文的MAC地址。此时通过对流策略下所有流分类禁止MAC地址学习功能,可以节省MAC地址表项开支,又可提高设备的运行效率。
某些非法用户有时会采用频繁变换MAC地址的方式对网络进行攻击,此时通过对流策略下所有流分类禁止MAC地址学习功能,可避免此类攻击所造成的的设备MAC地址表项溢出问题。
在流行为配置中,配置重定向,重定向到CPU有什么作用?重定向下一跳感觉是修改了路由表中的路由选项,或者是跳过了当前路由表项,相当于走了另一条路由。这个配置跟重标记中的重标记报文的目的MAC地址有什么区别,感觉这两种配置都可以改变报文的流向。对于流量监管的配置,除了可以配置cir(承诺信息速率)、cbs(承诺突发尺寸)、pir(峰值信息速率)、pbs(峰值突发尺寸)外,还可以对不同颜色的报文进行特殊处理,如丢弃或允许通过(discard | pass),对于允许通过pass的报文,还可以重标记优先级。这里应该是先通过cir、cbs、pir、pbs四个参数确定报文的颜色,再根据确定后的颜色进行颜色选项的处理。这里流量监管还有一种重新标记与分类的功能。
三、配置流策略
通过配置流策略,将流分类和流行为绑定起来,形成完整的策略。只需在系统视图下通过traffic policy traffic-policy-name [match-order {auto | config}]命令创建流策略,并进入流策略视图,然后在流策略视图下通过classifier classifier-name behavior behavior-name将前面创建的流分类和流行为进行关联即可。
[match-order{auto | config}]:可选项,指定流策略规则匹配顺序,如果选择auto,则流策略规则匹配顺序是由系统预先指定的流分类优先级决定的,该优先级排序如下:基于二层和三层信息流分类>基于二层信息流分类>基于三层信息流分类;如果选择config,则流策略规则匹配顺序是由流分类配置的先后顺序决定的。
如果流策略已经应用到全局、接口板、接口或VLAN,则一般不允许删除该策略。如果不得不删除,则需要先在相应的视图下执行undo traffic-policy命令取消对该策略的应用,然后到系统视图下执行undo traffic policy命令完成删除。
四、应用流策略
绑定了流行为与流分类的完整流策略可应用到交换机全局、接口或VLAN上,实现针对不同业务的差分服务。
在报文同时匹配多个流策略时。
●如果这些流策略的分类规则属于同一类,即匹配规则同属于自定义ACL规则、二层规则或三层规则时,只会有一个流策略生效,生效的优先级与应用的对象有关,生效优先级:接口>VLAN>全局。
●如果这些流策略的分类规则不属于同一类,对于彼此不冲突的行为,流策略都会生效;对于彼此冲突的行为,流策略生效优先级与规则有关,生效优先级:自定义ACL规则>二层规则+三层规则>二层规则>三层规则。
1、在全局应用流策略
在全局应用流策略是指在交换机所有端口的某个方向上应用所创建的流策略。
(1)在S2700/3700系列交换机中(S2700SI交换机不支持流策略应用)。在系统视图下使用traffic-policy policy-name global inbound命令在交换机上所有端口入方向应用流策略。
(2)在S5700/6700/7700/9300/9300E/9700系列交换机中。在系统视图下使用traffic-policy policy-name global {inbound | outbound} [slotslot-id]命令在交换机或某个单板上所有端口入方向或出方向应用流策略。
全局或单板的每个方向上只能应用一个流策略,如果在全局某个方向应用了流策略,则不能在单板的该方向上再次应用流策略;指定单板在某方向应用流策略后,也不能在全局的该方向上再次应用流策略。
在全局应用,系统对进入设备的所有匹配;流分类规则的入方向或出方向报文流实施策略控制;在单板应用,系统对进入该单板的所有匹配流分类规则的入方向或出方向报文流实施策略控制。
2、在接口上应用流策略
在接口上应用流策略是在具体接口视图下进行配置的。每个接口的每个方向上只能应用一个流策略,但同一个流策略可以同时应用在不同接口的不同方向。应用后,系统对流经该接口并匹配流分类中规则的入方向或出方向报文实施策略控制。但是流策略对VLAN 0的报文不生效。
建议不要在Untagged类型接口出方向上应用包含有remark8021p、remark cvlan-id、remark vlan-id等行为的流策略,否则,可能导致报文内容出错。
(1)在S2700-52P-EI/2700-52P-PWR-EI/2710SI/3700SI/3700EI系列交换机上。使用traffic-policy policy-name inbound命令在接口的入方向应用流策略。
(2)在其他S系列交换机上。使用traffic-policy policy-name {inbound | outbound}命令在接口的出方向或入方向应用流策略。
3、在VLAN上应用流策略
在VLAN上应用流策略必须在对应的VLAN视图下进行配置。应用后,系统对属于该VLAN并匹配流分类中规则的入方向报文实施策略控制。但是如果匹配到VLAN0报文,则流策略不生效。
(1)在S2700/3700系列交换机中。在系统视图下使用traffic-policy policy-name global inbound命令在加入了对应VLAN的接口入方向上应用流策略。
(2)在其他S系列交换机上。使用traffic-policy policy-name {inbound | outbound}命令在加入了对应VLAN的接口入方向或出方向应用流策略。
五、基于复杂流分类的优先级重标记配置示例
上图拓扑,企业分支机构1和2通过Switch连接到外部网络设备,其中企业分支机构1属于VLAN100,企业分支机构2属于VLAN200。现希望分支机构1上送的数据报文能够得到更好的QoS保证,实现差分服务。
1、基本配置思路
要区分不同分支机构的VLAN报文优先级,所以可采用QoS流策略中的重标记报文的802.1p优先级的方式实现差分服务。
(1)在Switch上创建VLAN,并配置各接口类型为trunk,实现企业分支机构能够通过Switch访问网络。
(2)在Switch上配置流分类,实现基于VLANID对报文进行分类。
(3)在Switch上配置流行为,将企业分支机构1和企业分支机构2上送的报文的802.1p优先级分别重标记为4和2,实现企业分支机构1的优先级高于企业分支机构2。
(4)在Switch上配置流策略,绑定已经配置好的流行为和流分类,并应用到接口GE0/0/1和GE0/0/2的入方向上,实现差分服务。
2、具体配置步骤
(1)在Switch上创建VLAN100和VLAN200
[Huawei]sysname Switch
[Switch]vlan batch 100 200
(2)配置GE0/0/1、GE0/0/2和GE0/0/3接口的类型为Trunk,并将GE0/0/1接口加入VLAN100,将GE0/0/2接口加入VLAN200,GE0/0/3接口加入VLAN100和VLAN200。
[Switch]interface gigabitethernet 0/0/1
[Switch-GigabitEthernet0/0/1]port link-type trunk
[Switch-GigabitEthernet0/0/1]port trunk allow-pass vlan 100
[Switch-GigabitEthernet0/0/1]quit
[Switch]interface gigabitethernet 0/0/2
[Switch-GigabitEthernet0/0/2]port link-type trunk
[Switch-GigabitEthernet0/0/2]port trunk allow-pass vlan 200
[Switch-GigabitEthernet0/0/2]quit
[Switch]interface gigabitethernet 0/0/3
[Switch-GigabitEthernet0/0/3]port link-type trunk
[Switch-GigabitEthernet0/0/3]port trunk allow-pass vlan 100 200
[Switch-GigabitEthernet0/0/3]quit
(3)在Switch上定义并配置流分类c1、c2,对来自企业分支机构的报文按照其VLAN ID进行分类。
[Switch]traffic classifier c1 operator and
[Switch-classifier-c1]if-match vlan-id 100
[Switch-classifier-c1]quit
[Switch]traffic classifier c2 operator and
[Switch-classifier-c2]if-match vlan-id 200
[Switch-classifier-c2]quit
(4)在Switch上定义并配置流行为b1、b2,并分别 重标记分支机构1和分支机构2的VLAN报文的802.1p优先级为4和2。
[Switch]traffic behavior b1
[Switch-behavior-b1]remark 8021p 4
[Switch-behavior-b1]quit
[Switch]traffic behavior b2
[Switch-behavior-b2]remark 8021p 2
[Switch-behavior-b2]quit
(5)在Switch上创建流策略p1,将前面定义的流分类和对应的流行为进行绑定,并将流策略应用到GE0/0/1和GE0/0/2接口的入方向上,对报文进行重标记。
[Switch]traffic policy p1
[Switch-trafficpolicy-p1]classifier c1 behavior b1
[Switch-trafficpolicy-p1]classifier c2 behavior b2
[Switch-trafficpolicy-p1]quit
[Switch]interface gigabitethernet 0/0/1
[Switch-GigabitEthernet0/0/1]traffic-policy p1 inbound
[Switch-GigabitEthernet0/0/1]quit
[Switch]interface gigabitethernet 0/0/2
[Switch-GigabitEthernet0/0/2]traffic-policy p1 inbound
[Switch-GigabitEthernet0/0/2]quit
做了一个实验测试:
如上配置后,Client1能够连通Server1,Client2能够连通Server2,然后在LSW3上配置流策略,并在g0/0/1和g0/0/2上在入方向应用
按照如上的配置,预期会在LSW3和LSW4的连线上抓到VLAN100和VLAN200的报文,并且,其8021p优先级应该分别为4和2,实际测试抓包中优先级字段一直是0,不知道哪里出问题了。
查了一下,网上说ENSP不支持QoS。
六、基于复杂流分类的流量统计配置示例
如上拓扑,PC1的MAC地址为0000-0000-0003,它连接在Switch的GE0/0/1接口上。现希望Switch对源MAC为0000-0000-0003的报文进行流量统计。
1、基本配置思路分析
本例采用包含流量统计行为的QoS流策略方式实现流量统计。
(1)配置各接口,实现Switch与Router、PC1互通。
(2)配置二层ACL规则,匹配源MAC为0000-0000-0003的报文。
(3)定义流分类,实现基于上述ACL的规则对报文进行分类。
(4)定义流行为,实现对满足规则的报文进行流量统计。
(5)创建流策略,绑定上述流分类和流行为,并应用到GE0/0/1接口的入方向,实现对该接口收到的源MAC为0000-0000-0003的报文进行流量统计。
2、具体配置步骤
(1)在Switch上创建VLAN20
[Huawei]sysname Switch
[Switch]vlan 20
(2)配置GE0/0/1接口为Access类型接口,GE0/0/2接口为Trunk类型接口,并将GE0/0/1和GE0/0/2加入VLAN20.
[Switch]interface gigabitethernet 0/0/1
[Switch-GigabitEthernet0/0/1]port link-type access
[Switch-GigabitEthernet0/0/1]port default vlan 20
[Switch-GigabitEthernet0/0/1]quit
[Switch]interface gigabitethernet 0/0/2
[Switch-GigabitEthernet0/0/2]port link-type trunk
[Switch-GigabitEthernet0/0/2]port trunk allow-pass vlan 20
[Switch-GigabitEthernet0/0/2]quit
(3)创建VLANIF20,并配置IP地址20.1.20.2/24(需要配置Router与Switch对接的接口IP地址在同一网段)。
[Switch]interface vlanif 20
[Switch-Vlanif20]ip address 20.1.20.2 24
[Switch-Vlanif20]quit
(4)在Switch上创建编码为4000的二层ACL,匹配源MAC为0000-0000-0003的报文
[Switch]acl 4000
[Switch-acl-L2-4000]rule permit source-mac0000-0000-0003 ffff-ffff-ffff
[Switch-acl-L2-4000]quit
(5)在Switch上定义流分类c1,匹配规则为ACL4000
[Switch]traffic classifier c1 operator and
[Switch-classifier-c1]if-match acl 4000
[Switch-classifier-c1]quit
(6)在Switch上定义流行为b1,并配置流量统计行为。
[Switch]traffic behavior b1
[Switch-behavior-b1]statistics enable
[Switch-behavior-b1]quit
(7)在Switch上创建流策略p1,将流分类和对应的流行为进行绑定。
[Switch]traffic policy p1
[Switch-trafficpolicy-p1]classifier c1 behavior b1
[Switch-trafficpolicy-p1]quit
(8)将流策略p1应用到GE0/0/1接口入方向。
[Switch]interface gigabitethernet 0/0/1
[Switch-GigabitEthernet0/0/1]traffic-policy p1 inbound
[Switch-GigabitEthernet0/0/1]quit
测试:
七、基于复杂流分类的报文过滤配置示例
如上拓扑,企业通过SwitchA的GE0/0/2接口连接到外部网络设备。不同业务的报文在LSW侧使用802.1p优先级进行标识,当报文从GE0/0/2接口到达外部网络时,用户希望能够对数据业务报文进行过滤,优先保证话音和视频业务的业务体验。
1、基本配置思路分析
采用802.1p优先级过滤的流行为来实现报文过滤的。
(1)配置各接口,实现企业用户能够通过SwitchA访问外部网络。
(2)定义流分类,实现基于802.1p优先级对报文进行分类。
(3)定义流行为,实现对满足规则的报文进行禁止或允许行为。
(4)创建流策略,绑定上述定义的流分类和流行为,并应用到GE0/0/1接口的入方向,实现报文过滤。
2、具体配置步骤
(1)在SwitchA上创建VLAN10。
[Huawei]sysname SwitchA
[SwitchA]vlan 10
[SwitchA-Vlan10]quit
(2)配置SwitchA上接口GE0/0/1和GE0/0/2为Trunk类型接口,并加入VLAN10(需要同时配置LSW与SwitchA对接的接口为Trunk类型,并加入VLAN10)。
[SwitchA]interface gigabitethernet 0/0/1
[SwitchA-GigabitEthernet0/0/1]portlink-type trunk
[SwitchA-GigabitEthernet0/0/1]port trunkallow-pass vlan 10
[SwitchA-GigabitEthernet0/0/1]quit
[SwitchA]interface gigabitethernet 0/0/2
[SwitchA-GigabitEthernet0/0/2]portlink-type trunk
[SwitchA-GigabitEthernet0/0/2]port trunkallow-pass vlan 10
[SwitchA-GigabitEthernet0/0/2]quit
(3)创建VLANIF10,并为VLANIF10配置IP地址192.168.2.1/24(需要同时配置Router与SwitchA对接的接口IP地址在同一网段)
[SwitchA]interface vlanif 10
[SwitchA-Vlanif10]ip address 192.168.2.1 24
[SwitchA-Vlanif10]quit
(4)在SwitchA上定义并配置流分类c1、c2、c3,对报文按照802.1p优先级进行分类。
[SwitchA]traffic classifier c1
[SwitchA-classifier-c1]if-match 8021p 2
[SwitchA-classifier-c1]quit
[SwitchA]traffic classifier c2
[SwitchA-classifier-c2]if-match 8021p 5
[SwitchA-classifier-c2]quit
[SwitchA]traffic classifier c3
[SwitchA-classifier-c3]if-match 8021p 6
[SwitchA-classifier-c3]quit
(5)在SwitchA上定义流行为b1,并禁止行为,定义流行为b2和b3,并允许行为。
[SwitchA]traffic behavior b1
[SwitchA-behavior-b1]deny
[SwitchA-behavior-b1]quit
[SwitchA]traffic behavior b2
[SwitchA-behavior-b2]permit
[SwitchA-behavior-b2]quit
[SwitchA]traffic behavior b3
[SwitchA-behavior-b3]permit
[SwitchA-behavior-b3]quit
(6)在SwitchA上创建流策略p1,将流分类和对应的流行为进行绑定并将流策略应用到GE0/0/1接口的入方向上,对报文进行过滤。
[SwitchA]traffic policy p1
[SwitchA-trafficpolicy-p1]classifier c1behavior b1
[SwitchA-trafficpolicy-p1]classifier c2behavior b2
[SwitchA-trafficpolicy-p1]classifier c3behavior b3
[SwitchA-trafficpolicy-p1]quit
[SwitchA]interface gigabitethernet 0/0/1
[SwitchA-GigabitEthernet0/0/1]traffic-policyp1 inbound
[SwitchA-GigabitEthernet0/0/1]quit