配置高级ACL的规则
背景信息
高级ACL通过rule(规则)匹配报文的信息,实现对报文的分类,因此创建高级ACL以后,需要配置高级ACL的规则。
设备在收到报文时,会按照规则配置顺序将报文与ACL规则进行逐条匹配,一旦匹配上规则组内的某条规则,则停止匹配动作。之后,设备将依据匹配的规则对报文执行相应的动作。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令acl { [ number ] acl-number | name acl-name [ [ number ] acl-number | advance ] },创建高级ACL,并进入高级ACL视图。
高级ACL编号acl-number的范围是3000~3999。
缺省情况下,未创建ACL。
- 请根据不同的协议类型,分别执行如下的几条命令,配置高级ACL的规则。
当protocol为UDP协议时,配置高级ACL规则。
rule [ rule-id ] [ name rule-name ] { deny | permit } protocol [ [ dscp dscp | [ precedence precedence | tos tos ] * ] | { destination { destination-ip-address { destination-wildcard | 0 | des-netmask } | any } | destination-pool destination-pool-name } | { destination-port { eq port | gt port | lt port | range port-start port-end } | destination-port-pool destination-port-pool-name } | fragment-type fragment | { source { source-ip-address { source-wildcard | 0 | src-netmask } | any } | source-pool source-pool-name } | { source-port { eq port | gt port | lt port | range port-start port-end } | source-port-pool source-port-pool-name } | time-range time-name | vpn-instance vpn-instance-name | ttl-expired | logging ] *
只有在部署VXLAN的场景下,ACL才能匹配UDP端口号为65535的报文,否则将匹配不上,ACL不生效。
当protocol为TCP协议时,配置高级ACL规则。
rule [ rule-id ] [ name rule-name ] { deny | permit } protocol [ [ dscp dscp | [ precedence precedence | tos tos ] * ] | { destination { destination-ip-address { destination-wildcard | 0 | des-netmask } | any } | destination-pool destination-pool-name } | { destination-port { eq port | gt port | lt port | range port-start port-end } | destination-port-pool destination-port-pool-name } | fragment-type fragment | { source { source-ip-address { source-wildcard | 0 | src-netmask } | any } | source-pool source-pool-name } | { source-port { eq port | gt port | lt port | range port-start port-end } | source-port-pool source-port-pool-name } | tcp-flag { tcp-flag [ mask mask-value ] | established } | time-range time-name | vpn-instance vpn-instance-name | ttl-expired | logging ] *
当protocol为ICMP协议时,配置高级ACL规则。
rule [ rule-id ] [ name rule-name ] { deny | permit } protocol [ [ dscp dscp | [ precedence precedence | tos tos ] * ] | { destination { destination-ip-address { destination-wildcard | 0 | des-netmask } | any } | destination-pool destination-pool-name } | fragment-type fragment | icmp-type { icmp-name | icmp-type [ icmp-code ] } | { source { source-ip-address { source-wildcard | 0 | src-netmask } | any } | source-pool source-pool-name } | time-range time-name | vpn-instance vpn-instance-name | ttl-expired | logging ] *
当protocol为IGMP协议时,配置高级ACL规则。
rule [ rule-id ] [ name rule-name ] { deny | permit } protocol [ [ dscp dscp | [ precedence precedence | tos tos ] * ] | { destination { destination-ip-address { destination-wildcard | 0 | des-netmask } | any } | destination-pool destination-pool-name } | fragment-type fragment | igmp-type igmp-type | { source { source-ip-address { source-wildcard | 0 | src-netmask } | any } | source-pool source-pool-name } | time-range time-name | vpn-instance vpn-instance-name | ttl-expired | logging ] *
当protocol为以上协议之外的其他协议时,配置高级ACL规则。
rule [ rule-id ] [ name rule-name ] { deny | permit } [ [ dscp dscp | [ precedence precedence | tos tos ] * ] | { destination { destination-ip-address { destination-wildcard | 0 | des-netmask } | any } | destination-pool destination-pool-name } | fragment-type fragment | { source { source-ip-address { source-wildcard | 0 | src-netmask } | any } | source-pool source-pool-name } | time-range time-name | vpn-instance vpn-instance-name | ttl-expired | logging ] *
配置高级ACL规则时:
如果用户指定了所有目的地址、源地址(即配置了上面步骤3中的any参数),则设备不会检查报文的目的地址、源地址。
当用户指定参数time-range引入ACL规则生效时间段时,如果time-name不存在,该规则将无法绑定该生效时间段。
- (可选)执行命令rule rule-id description description,配置高级ACL规则的描述信息。
缺省情况下,各规则没有描述信息。
设备仅允许对已存在的规则配置描述信息,不允许先配置规则的描述信息再配置具体的规则内容。
- 执行命令commit,提交配置。