华为端口镜像ACL流过滤.docx
《华为端口镜像ACL流过滤.docx》由会员分享,可在线阅读,更多相关《华为端口镜像ACL流过滤.docx(10页珍藏版)》请在冰豆网上搜索。
华为端口镜像ACL流过滤
华为端口镜像ACL流过滤
1、华为交换机端口镜像设置
system-view
[HUAWEI]observe-port1interfacegigabitethernet1/0/1 (配置观察端口)
[HUAWEI]interfacegigabitethernet2/0/1
[HUAWEI-GigabitEthernet2/0/1]port-mirroringtoobserve-port1inbound(配置镜像端口)
2、华为交换机ACL控制列表和包过滤设置
ACL控制列表种类:
、标准访问控制列表:
只能使用源地址描述数据,表明是允许还是拒绝
命令格式:
aclXXX
rulepermit/denysourcesource_addresssource_wildcard/any
eg:
acl1199
rulepermitsource192.168.1.00.0.0.255(允许源地址为192.168.1.0网段的数据包通过)
、扩展访问控制列表:
在标准控制列表的基础上添加基于协议和端口号的控制
3、流策略(TrafficPolicy)用于QoS复杂流分类,实现丰富的QoS策略。
TrafficPolicy分为三部分:
、流分类(Classifier)模板:
定义流量类型。
一个Classifier可以配置一条或多条if-match语句,if-match语句中可以引用ACL规则。
不同的Classifier模板可以应用相同的ACL规则。
一个ACL规则可以配置一个或多个Rule语句。
、流动作(Behavior)模板:
指,用于定义针
classifierBbehaviorB
classifierCbehaviorC
classifierAbehaviorAprecedence4
#
此时,B之前的顺序号1没有被占用,因此可以在B之前添加一个Classifier(假设是D),则可执行如下命令实现。
classifierDbehaviorDprecedence1
结果是:
#
trafficpolicyT
classifierDbehaviorDprecedence1
classifierBbehaviorB
classifierCbehaviorC
classifierAbehaviorAprecedence4
#
如果按如下方法,不指定precedence值的方式添加D,
classifierDbehaviorD
结果如下:
#
trafficpolicyT
classifierBbehaviorB
classifierCbehaviorC
classifierAbehaviorAprecedence4
classifierDbehaviorD
#
If-match语句之间的匹配顺序
由于Classifier中配置的是一个或多个if-match语句,按照if-match语句配置顺序进行匹配。
报文命中if-match语句后,是否执行对应的behavior动作,取决于If-match语句之间是And还是Or逻辑。
If-match语句之间的And和Or逻辑
如果流分类模板下配置了多个if-match语句,则这些语句之间有And和Or两种逻辑关系:
Or逻辑:
数据包只要匹配该流分类下的任何一条if-match语句定义的规则就属于该类。
And逻辑:
数据包必须匹配该流分类下的全部if-match语句才属于该类。
流策略的执行过程(if-match语句间是Or逻辑)
图2 流策略的执行过程(Or逻辑)
如图2,针对每个Classifier,如果If-match语句之间是Or逻辑,按照if-match语句配置顺序进行匹配,数据包一旦命中某个if-match语句:
如果命中的if-match语句没有引用ACL,则执行behavior定义的动作。
如果命中的if-match语句引用了ACL,且命中的是permit规则,则执行behavior定义的动作;命中的是deny规则,则直接丢弃报文。
如果数据包没有命中任何if-match语句,则不支持任何动作,继续处理下一个Classifier。
流策略的执行过程(if-match语句间是And逻辑)
如果If-match语句之间是And逻辑,设备先会将这些if-match语句进行合并(这里的“合并”相当于集合的乘法操作),再按照Or逻辑的处理流程进行处理。
对于引用ACL的if-match语句,不是将ACL内部的各条Rule进行合并,而是逐条与其他if-match语句进行合并。
因此值得注意的是:
And逻辑中if-match语句的顺序不影响匹配结果,但ACL中Rule的顺序仍然会影响匹配结果。
例如,某个流策略下配了如下一个classifier:
#
acl3000
rule5permitipsource1.1.1.10
rule10denyipsource2.2.2.20
#
trafficclassifierexampleoperatorand
if-matchacl3000
if-matchdscpaf11
#
则设备首先进行if-match语句的合并,合并结果相当于:
#
acl3000
rule5permitipsource1.1.1.10dscpaf11
rule10denyipsource2.2.2.20dscpaf11
#
trafficclassifierexampleoperatoror
if-matchacl3000
#
trafficbehaviorexample
remarkdscpaf22
#
trafficpolicyexample
share-mode
classifierexamplebehaviorexample
#
interfaceGigabitEthernet2/0/0
traffic-policyPinbound
#
然后,再针对合并结果按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语句的合并规则是:
permit+permit=permit
permit+deny=deny
deny+permit=deny
deny+deny=deny
If-math语句引用ACL时的匹配过程
如果if-match语句指定的是ACL,需要在ACL的多个Rule语句中进行匹配:
首先查找用户是否配置了该ACL(因为流分类允许引用不存在的ACL),命中的第一条则停止匹配,不再继续查找后续的规则。
说明:
当Rule中的动作为Deny时,如果behavior是镜像或采样,即使对于丢弃的报文,也会执行behavior。
ACL中可以指定permit或deny规则,它与ACL所在Classifier所对应的Behavior中的动作的关系是:
ACL为deny,则不关心Behavior,报文最终动作是deny;
ACL为permit,则执行Behavior,报文最终动作是Behavior。
例如以下配置的匹配结果是:
源地址是50.0.0.1/24的报文IP优先级被标记为7;源地址是60.0.0.1/24的报文被丢弃;源地址是70.0.0.1/24的报文IP优先级不变。
acl3999
rule5permitipsource50.0.0.00.255.255.255
rule10denyipsource60.0.0.00.255.255.255
trafficclassifieracl
if-matchacl3999
trafficbehaviortest
remarkip-pre7
trafficpolicytest
classifieraclbehaviortest
interfaceGigabitEthernet1/0/1
traffic-policytestinbound
流量策略中ACL计数功能
为节省内存,系统缺省不使能流量策略的统计功能。
当用户需要显示流量策略的统计数据时,可配置statisticsenable命令使能流量策略的统计功能。
#
trafficpolicyexample
classifierexamplebehaviorexample
statisticsenable
#