组网
问题一:用户使用Spirent TestCenter测试S2610设备的相关功能特性,在测试使用QOS策略对二层报文的VLAN标签进行替换的时候,遇到将QOS策略应用到物理接口时报错的问题,具体报错提示如下:
[H3C-GigabitEthernet1/0/10]qos apply policy policy_server inbound
%Apr 26 12:02:15:995 2000 H3C QOS/4/QOS_POLICY_APPLYIF_FAIL: Applying or refreshing QoS policy policy_server to interface GigabitEthernet1/0/10 failed.
Reason: The acl is not configured, or it does not have a rule.
问题二:上述问题解决之后,却又发现配置的QOS策略并不生效,即经过S2610的二层报文的VLAN标签并未按照配置进行替换。
先来看第一个问题,通过解读这个报错提示,是因为在定义类的时候没有配置ACL,或者配置了ACL,但是ACL里没有配置任何rule。根据这个提示,查看用户QOS策略的相关配置如下,发现也没有什么异常,不过也正如报错提示里描述的,定义类的时候没有配置任何ACL,难道S2610在定义类的时候一定要配置ACL吗?于是我们带着这个问题去查设备手册。
#
traffic classifier classifier_fserver operator and
if-match customer-vlan-id 100
#
traffic behavior behavior_fserver
remark customer-vlan-id 200
#
qos policy policy_server
classifier classifier_fserver behavior behavior_fserver
在S2610设备手册里,我们可以看到配置流分类的时候,有如下的说明:
l 对于8端口和24端口设备,命令acl ipv6和customer-vlan-id不能同时配置,且含有acl ipv6的规则不能在全局VLAN上配置;对于48端口设备,仅支持二层ACL配置customer-vlan-id或基于VLAN的QoS策略。
l 命令acl和customer-vlan-id可以同时配置,但含有customer-vlan-id的规则不能在全局VLAN上配置。
l 在应用策略时,流分类中必须有且只能配置一条ACL,并且匹配acl或acl ipv6的规则之间的逻辑关系必须为and。
l 在应用策略时,流分类中只允许配置一条customer-vlan-id,匹配customer-vlan-id的规则之间的逻辑关系为and。
l 同一条ACL只能被应用一次,不能重复配置。
这里的第三点,在应用策略时,流分类中必须有且只能配置一条ACL,解释了用户处配置报错的原因,那就是在定义类的时候必须配置一条ACL,报错问题迎刃而解。需要注意的是,该限制在SMB V5系列交换机上都存在,而主网络交换机则不存在该限制。
第一个问题解决之后,随即用户又反馈第二个问题,用户在S2610上配置QOS策略将VLAN 100替换成VLAN 200,但是抓包发现,配置并未生效,即从S2610出去的报文所带的VLAN标签与进入S2610的时候是一样的。这种情况,流行为一般不太可能配置错误,所以怀疑是进入设备的报文未匹配上用户定义的流分类。查看用户相关配置,用户的确在定义类的时候配置了一条匹配any的ACL 2000。类视图下各匹配规则之间的关系为逻辑与,即报文只有匹配了所有的规则,设备才认为报文属于这个类。
#
acl number 2000
rule 0 permit
#
vlan 100 to 200
#
traffic classifier classifier_fserver operator and
if-match customer-vlan-id 100
if-match acl 2000
#
traffic behavior behavior_fserver
remark customer-vlan-id 200
#
qos policy policy_server
classifier classifier_fserver behavior behavior_fserver
#
interface GigabitEthernet1/0/10
port link-type trunk
port trunk permit vlan 1 100 to 200
combo enable copper
qos apply policy policy_server inbound
qos apply policy policy_server outbound
查看用户反馈的抓包,发现进入设备的报文的VLAN ID的确为100,所以问题显然是出在ACL 2000上了,由于ACL 2000只会匹配报文的源IP地址,而TestCenter发出来的报文是二层报文,所以肯定无法匹配ACL 2000,也就导致了这个报文没有匹配这个流分类,继而导致用户描述的问题。
最后经过了解,用户实际的测试需求其实是将802.1p优先级是7,VLAN ID是 100的报文进行重标记,将其VLAN ID替换成200。结合用户的需求,我们提供了如下相关配置,用户测试成功。
#
acl number 4000
rule permit cos network-management
#
vlan 100 to 200
#
traffic classifier classifier_fserver operator and
if-match customer-vlan-id 100
if-match acl 4000
#
traffic behavior behavior_fserver
remark customer-vlan-id 200
#
qos policy policy_server
classifier classifier_fserver behavior behavior_fserver
#
interface GigabitEthernet1/0/10
port link-type trunk
port trunk permit vlan 1 100 to 200
combo enable copper
qos apply policy policy_server inbound
问题一:在定义流分类时增配一条if-match acl xxxx,其中ACL xxxx根据实际情况配置,匹配报文的特征即可。
问题二:定义流分类时,去掉匹配ACL 2000的配置,改成匹配二层ACL,根据报文的源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等二层信息制定匹配规则。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作