访问控制列表(Access Control List,ACL)是目前使用最多的访问控制实现技术。访问控制列表是路由器接口的指令列表,用来控制端口进出的数据包。访问控制列表可以分为标准访问控制列表扩展访问控制列表。ACL的默认执行顺序是自上而下,在配置时要遵循最小特权原则、最靠近受控对象原则及默认丢弃原则。

1、华为设备ACL分类

分类

编号范围

支持的过滤选项

基本ACL

2000-2999

匹配条件较少,只能通过源IP地址和时间段来进行流量匹配,在一些只需要进行简单匹配的功能中可以使用

高级ACL

3000-3999

匹配条件较为全面,通过源IP地址、目的IP地址、ToS、时间段、协议类型、优先级、ICMP报文类型和ICMP报文码等多个维度进行流量匹配,在大部分功能中都可以使用高级ACL来进行精确流量匹配

基于MAC地址的ACL(二层ACL)

4000-4999

由于数据链路层使用MAC地址来进行寻址,所以在控制数据链路层帧时需要通过MAC地址来对流量进行分类。基于MAC地址的ACL就可以通过源MAC地址、目的MAC地址、CoS、协议码等维度进行流量匹配

2、ACL规则匹配方式

1、配置顺序:配置顺序根据ACL规则的ID进行排序,ID小的规则排在前面,优先进行匹配。当找到第一条匹配条件的规则是,查找结束。系统按照该规则对应的动作处理。

2、自动顺序:自动顺序也叫深度优先匹配。此时ACL规则的ID由系统自动分配,规则中指定数据包范围小的排在前面,优先进行匹配。当找到第一条匹配条件的规则时,查找结束。系统按照改规则对应的动作处理。

  • 对于基本访问控制规则的语句,直接比较源地址通配符,通配符相同的则按配置顺序。
  • 对于高级访问控制规则,首先比较协议范围,再比较源地址通配符,相同时再比较目的地址通配符,仍相同时则比较端口号的范围,范围小的排在前面,如果端口号范围也相同则按配置顺序。

3、ACL配置步骤

(1)进入系统视图

system-view

(2)创建ACL

acl [number] acl-number [match-order {config | auto}]

  • acl-number决定论ACL的类型
  • match-order决定ACL各个规则之间的匹配顺序。选择config,ACL的匹配顺序按照规则ID来排序,ID小的规则排在前面,优先匹配;选择参数auto,将使用深度优先的匹配顺序。默认值是config,按照规则ID来排序。

(3)创建ACL规则

rule [rule-id] {deny | permit} [logging | source {source-ip-address {0 | sourcewildcard } | address-set address-set-name | any } | time-range time-name ] * [description description ]

        配置时没有指定rule-id表示增加一条新规则;如指定则表示对该规则进行编辑。

(4)接口应用ACL

interface GigabitEthernet0/0/1

traffic-filter inbound acl 3000