最佳答案
如图,针对每个Classifier,如果If-match语句之间是Or逻辑,按照if-match语句配置顺序进行匹配,数据包一旦命中某个if-match语句:
如果数据包没有命中任何if-match语句,则不支持任何动作,继续处理下一个Classifier。
如果If-match语句之间是And逻辑,设备先会将这些if-match语句进行合并(这里的“合并”相当于集合的乘法操作),再按照Or逻辑的处理流程进行处理。
对于引用ACL的if-match语句,不是将ACL内部的各条Rule进行合并,而是逐条与其他if-match语句进行合并。因此值得注意的是:And逻辑中if-match语句的顺序不影响匹配结果,但ACL中Rule的顺序仍然会影响匹配结果。
例如,某个流策略下配了如下一个classifier:
# acl 3000 rule 5 permit ip source 1.1.1.1 0 rule 10 deny ip source 2.2.2.2 0则设备首先进行if-match语句的合并,合并结果相当于:
# acl 3000 rule 5 permit ip source 1.1.1.1 0 dscp af11 rule 10 deny ip source 2.2.2.2 0 dscp af11然后,再针对合并结果按Or逻辑的执行过程进行处理。处理结果是从GE2/0/0收到的源IP为1.1.1.1/32且dscp=10的报文重标记为AF22,源IP为1.1.1.2/32且dscp=10的报文丢弃,其他报文由于没有匹配任何规则,直接转发。
对于And逻辑,系统默认License中最多只允许存在一条引用ACL的if-match语句;而Or逻辑中,可以有多条引用ACL的if-match语句。
如果更改License使And逻辑允许存在多条引用ACL的if-match语句,则这些if-match语句的合并规则是:
如果if-match语句指定的是ACL,需要在ACL的多个Rule语句中进行匹配:首先查找用户是否配置了该ACL(因为流分类允许引用不存在的ACL),命中的第一条则停止匹配,不再继续查找后续的规则。
(0)
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论