配置重标记优先级
背景信息
通过配置重标记优先级,设备对符合流分类规则的报文的指定优先级字段进行更改,如VLAN报文的802.1p优先级、IP报文的DSCP和内部优先级等。
操作步骤
- 配置流分类
- 执行命令system-view,进入系统视图。
- 执行命令traffic classifier classifier-name [ operator { and | or } ] [ precedence precedence-value ],创建一个流分类并进入流分类视图,或进入已存在的流分类视图。and表示流分类中各规则之间关系为逻辑“与”,指定该逻辑关系后:
当流分类中有ACL规则时,报文必须匹配其中一条ACL规则以及所有非ACL规则才属于该类;
当流分类中没有ACL规则时,则报文必须匹配所有非ACL规则才属于该类。
缺省情况下,流分类中各规则之间的关系为逻辑“或”。
- 请根据实际情况定义流分类中的匹配规则。
if-match ip-precedence和if-match tcp命令仅对IPv4报文生效。
X系列单板不支持配置包含高级ACL中的ttl-expired字段的流分类规则。
当流分类匹配if-match ipv6 acl { acl-number | acl-name }时,X系列单板不支持add-tag vlan-id vlan-id、remark 8021p [ 8021p-value | inner-8021p ]、remark cvlan-id cvlan-id、remark vlan-id vlan-id、mac-address learning disable。
匹配规则
命令
说明
外层VLAN ID或基于QinQ报文内外两层Tag的VLAN ID
if-match vlan-id start-vlan-id [ to end-vlan-id ] [ cvlan-id cvlan-id ]
-
QinQ报文内外层VLAN ID
if-match cvlan-id start-vlan-id [ to end-vlan-id ] [ vlan-id vlan-id ]
-
VLAN报文802.1p优先级
if-match 8021p 8021p-value &<1-8>
无论流分类中各规则间关系是“或”还是“与”,执行一次命令,如果输入多个802.1p值,报文只需匹配其中一个802.1p值就匹配该规则。
QinQ报文内层VLAN的802.1p优先级
if-match cvlan-8021p 8021p-value &<1-8>
-
丢弃报文
if-match discard
包含该流分类的报文只能与流量统计和流镜像两种动作绑定。
QinQ报文双层Tag
if-match double-tag
-
MPLS报文EXP优先级
if-match mpls-exp exp-value &<1-8>
无论流分类中各规则间关系是“或”还是“与”,执行一次命令,如果输入多个MPLS EXP值,报文只需匹配其中一个MPLS EXP值就属于该类。
目的MAC地址
if-match destination-mac mac-address [ [ mac-address-mask ] mac-address-mask ]
-
源MAC地址
if-match source-mac mac-address [ [ mac-address-mask ] mac-address-mask ]
-
以太网帧头中协议类型字段
if-match l2-protocol { arp | ip | mpls | rarp | protocol-value }
-
所有报文
if-match any
-
IP报文的DSCP优先级
if-match [ ipv6 ] dscp dscp-value &<1-8>
无论流分类中各规则间关系是“或”还是“与”,执行一次命令,如果输入多个DSCP值,报文只需匹配其中一个DSCP值就匹配该规则。
不能在一个逻辑关系为“与”的流分类中同时配置if-match [ ipv6 ] dscp和if-match ip-precedence。
IP报文的IP优先级
if-match ip-precedence ip-precedence-value &<1-8>
无论流分类中各规则间关系是“或”还是“与”,执行一次命令,如果输入多个IP优先级,报文只需匹配其中一个IP优先级就匹配该规则。
不能在一个逻辑关系为“与”的流分类中同时配置if-match [ ipv6 ] dscp和if-match ip-precedence。
报文三层协议类型
if-match protocol { ip | ipv6 }
-
IPv6下一报文头类型
if-match ipv6 next-header header-number first-next-header
ET1D2X12SSA0单板不支持Prefix的长度为(64,128)之间的路由。
TCP报文SYN Flag
if-match tcp syn-flag { syn-flag-value | ack | fin | psh | rst | syn | urg }
-
入接口
if-match inbound-interface interface-type interface-number
包含该流分类的流策略不能应用在出方向。
包含该流分类的流策略不能应用在接口视图。
出接口
if-match outbound-interface interface-type interface-number
X系列单板不支持将包含该流分类的流策略应用在入方向。
包含该流分类的流策略不能应用在接口视图。
ACL规则
if-match acl { acl-number | acl-name }
- 使用ACL作为流分类规则,请先配置相应的ACL规则。
- 无论流分类中各规则间关系是“或”还是“与”,执行一次命令,如果某ACL规则中有多个rule,报文只需匹配其中一个rule就匹配该ACL规则。
- 如果ACL的规则指定了参数vpn-instance,那么基于该ACL进行分类的流分类对应的流策略将不生效。
ACL6规则
if-match ipv6 acl { acl-number | acl-name }
使用ACL6作为流分类规则,请先配置相应的ACL6规则。
如果ACL6的规则指定了参数vpn-instance,那么基于该ACL6进行分类的流分类对应的流策略将不生效。
流ID
if-match flow-id flow-id
包含if-match flow-id匹配规则的流分类和包含remark flow-id动作的流行为应在不同的流策略中使用。
包含if-match flow-id匹配规则的流策略只能应用在接口、VLAN、VLANIF接口、单板、全局的入方向。
SA系列单板不支持配置匹配流ID。
VXLAN内层报文信息
if-match vxlan [ transit ] vni vni-id
包含该流分类的流策略不能应用在出方向上。
当流分类中包含此匹配规则时,流行为只支持流量监管、报文过滤和流量统计。
- 执行命令quit,退出流分类视图。
- 配置流行为
- 执行命令traffic behavior behavior-name,创建一个流行为,进入流行为视图。
- 请根据实际需要进行如下配置:
- 执行命令remark 8021p [ 8021p-value | inner-8021p ],将符合流分类的报文重新标记802.1p优先级。
SA系列单板不支持从内层继承802.1p优先级。
包含remark 8021p动作的流策略应用在接口出方向时,出接口VLAN必须工作在tag方式。
- 执行命令remark dscp { dscp-name | dscp-value },将符合流分类的报文重新标记DSCP值。
执行命令remark local-precedence { local-precedence-name | local-precedence-value } [ green | yellow | red ],将符合流分类的重新标记内部优先级。
- 执行命令remark 8021p [ 8021p-value | inner-8021p ],将符合流分类的报文重新标记802.1p优先级。
- (可选)执行命令statistic enable,使能流量统计功能。
- 执行命令quit,退出流行为视图。
- 执行命令quit,退出系统视图。
- 配置流策略
执行命令system-view,进入系统视图。
执行命令traffic policy policy-name [ match-order { auto | config } ],创建一个流策略并进入流策略视图,或进入已存在的流策略视图。创建流策略时,如果未指定规则匹配顺序,缺省规则匹配顺序为config。
应用流策略后,不能再使用该命令来修改策略中流分类的匹配顺序。必须先清除该策略的应用,再重新创建并指定所需的匹配顺序。
设备支持在创建流策略时指定流策略中多个规则的匹配顺序,匹配顺序包括自动顺序(auto)和配置顺序(config)两种:- 如果选择自动顺序,匹配顺序由系统预先指定的流分类类型的优先级决定,该优先级由高到低依次为:基于二层和IPv4三层信息流分类 > 基于高级ACL6规则流分类 > 基于基本ACL6规则流分类 > 基于二层信息流分类 > 基于IPv4三层信息流分类 > 基于用户自定义ACL规则流分类。规则优先匹配优先级高的流分类。当某一数据流量同时匹配不同流分类,且对应的流行为存在冲突时,只有流行为优先级高的规则生效。
- 如果选择配置顺序,匹配顺序由流分类规则的优先级决定,先匹配优先级较高的流分类规则。配置流分类时指定优先级,则数值越小,优先级越高;如果配置流分类时未指定precedence-value,则系统自动为流分类分配一个优先级,其值为:[ (max-precedence + 5)/ 5 ] * 5,其中max-precedence为系统当前流分类优先级中数值最大的优先级。关于流分类优先级的详细说明,请参见traffic classifier。
执行命令classifier classifier-name behavior behavior-name,在流策略中为指定的流分类配置所需流行为,即绑定流分类和流行为。
- 执行命令quit,退出流策略视图。
- 执行命令quit,退出系统视图。
- 应用流策略
- 在接口上应用流策略
执行命令system-view,进入系统视图。
执行命令interface interface-type interface-number[.subinterface-number ],进入接口视图或子接口视图。
仅E系列、X系列和S系列中的SC单板支持配置以太网子接口。单板详情请参见《硬件描述》中的单板分类。
- 对于上述系列单板的二层接口,仅hybrid和trunk类型接口支持配置二层以太网子接口。
对于上述系列单板的二层接口,执行命令undo portswitch切换为三层接口后,支持配置三层以太网子接口。
S系列中的SA单板不支持创建以太网子接口,也不支持转发IP流量到其它单板的以太网子接口。
建议用户先将成员接口加入Eth-Trunk后,再配置Eth-Trunk子接口。只有当成员接口所在的单板系列均支持配置以太网子接口时,Eth-Trunk子接口才能配置成功。
- VCMP的角色是Client时,不能配置VLAN终结子接口。
执行命令traffic-policy policy-name { inbound | outbound },在接口或子接口视图上应用流策略。
每个接口的每个方向上能且只能应用一个流策略,但同一个流策略可以同时应用在不同接口的不同方向。应用后,系统对流经该接口并匹配流分类中规则的入方向或出方向报文实施策略控制。
子接口仅支持inbound参数。
建议不要在Untagged类型接口出方向上应用包含有remark 8021p、remark cvlan-id、remark vlan-id等动作的流策略,否则,可能导致报文内容出错。
ET1D2X12SSA0、ET1D2X48SEC0、SC系列单板有2N个接口,如果1~N号中的接口与N+1~2N号中的接口加入同一Eth-Trunk或VLAN,Eth-Trunk或VLAN出方向使用car动作进行限速,Eth-Trunk或VLAN的下行实际通过流量是配置CAR值的限速的2倍。
- 在X系列单板中,如果不同的接口加入同一Eth-Trunk或VLAN,Eth-Trunk或VLAN出方向使用car动作进行限速,且这些接口的ACL资源分散在N个组中进行统计(执行命令display acl resource查看),那么Eth-Trunk或VLAN的下行实际通过流量是配置CAR值的限速的N倍。
应用流策略需要设备有足够的ACL资源,否则会导致应用失败。以一个流策略中的if-match占用一条ACL为例,同一个流策略应用到M个接口时,将占用M条ACL资源;应用到L个VLAN且设备上存在N块接口板时,将占用L*N条ACL规则;应用到全局且设备上存在N块接口板时,将占用N条ACL规则。if-match规则占用ACL资源的情况参考“MQC配置-配置注意事项”中的表3。
- 在VLAN上应用流策略
执行命令system-view,进入系统视图。
执行命令vlan vlan-id,进入VLAN视图。
执行命令traffic-policy policy-name { inbound | outbound },在VLAN上应用流策略。
每个VLAN的每个方向能且只能应用一个流策略。
应用后,系统对属于该VLAN并匹配流分类中规则的入方向或出方向报文实施策略控制。但是流策略对VLAN 0的报文不生效。
- 在VLANIF接口上应用流策略
执行命令system-view,进入系统视图。
执行命令interface vlanif vlan-id,进入VLANIF接口视图。
执行命令traffic-policy policy-name { inbound | outbound },在VLANIF接口上应用流策略。
每个VLANIF接口的每个方向上能且只能应用一个流策略,但同一个流策略可以同时应用在不同VLANIF接口的不同方向。
对于应用流策略的VLANIF接口,其对应的VLAN不能是Super-VLAN或MUX VLAN。
对于X系列单板,应用在VLANIF接口上的流策略只对相应VLANIF下的单播报文生效。对于其它单板,应用在VLANIF接口上的流策略只对相应VLANIF下的单播报文及三层组播报文生效。
如果流策略包含的流行为配置了如下动作,则不能在VLANIF接口的入方向上应用该流策略:- remark vlan-id
- remark cvlan-id
- add-tag vlan-id
- remark 8021p
- remark flow-id
- mac-address learning disable
如果流策略包含的流行为配置了如下动作,则不能在VLANIF接口的出方向上应用该流策略:- add-tag vlan-id
- remark flow-id
- mac-address learning disable
- 在全局或单板上应用流策略
执行命令system-view,进入系统视图。
执行命令traffic-policy policy-name global { inbound | outbound } [ slot slot-id ],在全局或单板上应用流策略。
全局或单板的每个方向上能且只能应用一个流策略,如果在全局某方向应用了流策略,则不能在单板的该方向上再次应用流策略;指定单板在某方向应用流策略后,也不能在全局的该方向上再次应用流策略。
- 在接口上应用流策略
检查配置结果
- 执行命令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 ] ] | vlan [ vlan-id ] | ssid-profile [ ssid-profile-name ] | global } [ inbound | outbound ],查看已配置的流策略信息。
执行命令display traffic-policy applied-record [ policy-name ],查看指定流策略的应用记录。