访问控制列表(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