访问控制列表ACL用法
访问控制列表ACL
一个ACL里包含多个语句,每个语句称为一个ACE(access control entry 访问控制条码),匹配顺序依据语句的序列号从小到大依次匹配,默认序列号为5步长为5,自顶向下的匹配流程,一经匹命中立即执行停止继续匹配。
思科 ACL末尾有默认deny语句拒绝所有,华为和华三都不命中就自然转发
,按照路由表转发,有路由就转发。
通配符掩码,就是反码,用二进制0和1表示,0表示精确匹配,1表示匹配任意。
如:0.0.0.255
表示 0000 0000.0000 0000.0000 0000.1111 1111
,即前三位精确匹配,最后一位匹配任意。
匹配单个主机: 172.16.1.1 0.0.0.0
= 172.16.1.1 0
匹配任意网络: 0.0.0.0 255.255.255.255
= any
任意奇数主机: 192.168.1.1 0.0.0.254
= 192.168.1.0000 0001 0.0.0.1111 1110
基本ACL
基本acl序号在2000-2999之间。
华为写法:
定义acl编号:acl acl编号 或 acl number acl编号
定义acl规则:rule 规则编号 动作 source 源地址 反码
# 华为格式 rule id permit | deny source 源地址 反码
[R1]acl 2000
# rule 规则id 动作 source 源地址 反码
[R1-acl-basic-2000]rule 10 permit source 192.168.1.0 0.0.0.255
# [R1]acl number 2000 等于 acl 2000
[R1]acl number 2000
[R1-acl-basic-2000]rule 10 permit source 192.168.1.0 0.0.0.255
华三写法:
定义acl编号: access-list basic acl编号
或 acl basic acl编号
或 acl number acl编号
定义acl规则: rule 规则编号 动作 source 源地址 反码
[R1]access-list basic 2000 # 思科系写法
[R1]acl basic 2000
[R1]acl number 2000
# rule 规则id 动作 source 源地址 反码
[R1-acl-ipv4-basic-2000]rule 10 permit source 192.168.1.0 0.0.0.255
思科写法:
# access-list 规则id 动作 源地址 反码
R1(config)#access-list 10 permit 192.168.1.0 0.0.0.255
高级ACL
ACL编号在3000-3999之间。
华为写法:acl acl编号 或者 acl name 列表名称
# 高级acl3000以上
[R1]acl 3000
# rule 规则id 动作 协议 source 源地址 反码 destination 目的地址 反码
[R1-acl-adv-3000]rule 10 permit ip source 192.168.1.0 0.0.0.255 destination 10.211.33.1 0.0.0.0
[R1]acl name aaa
# rule 规则id 动作 协议 source 源地址 反码 destination 目的地址 反码
[R1-acl-adv-aaa]rule 10 permit ip source 192.168.1.0 0.0.0.255 destination 10.211.33.1 0.0.0.0
华三写法:
# 三种写法都可以,advance高级acl,编号3000以上
[R1]access-list advanced 3000
[R1]acl advanced 3000
[R1]acl number 3000
# rule 规则id 动作 协议 source 源地址 反码 destination 目的地址 反码
[R1-acl-ipv4-adv-3000]rule 10 permit ip source 192.168.1.0 0.0.0.255 destination 10.211.33.1 0.0.0.0
[R1]access-list advanced 3000
思科写法:
# acl序号 100-199为扩展
R1(config)#access-list 100
# access-list 规则id 动作 协议 源地址 反码 目的地址 反码
R1(config)#access-list 100 permit ip 192.168.1.0 0.0.0.255 10.211.33.1 0.0.0.0
在接口使用ACL控制流量
接口入向调用ACL会对接口接收的所有流量都生效,先匹配ACL在查看路由表转发。
出向调用只对穿越流量生效,该路由的始发流量不生效,先查路由表确定出口后,在匹配ACL。
华为设备
# 华为设备acl最后没有拒绝所有语句,这里只放行需要的网段和主机,其它拒绝
[R2]acl number 2000
[R2-acl-basic-2000]rule 10 permit source 192.168.1.0 0.0.0.255
[R2-acl-basic-2000]rule 20 permit source 1.1.1.1 0.0.0.0
[R2-acl-basic-2000]rule 99 deny source any
[R2-acl-basic-2000]qu
[R2]int g0/0/2 # 在接口中使用流量过滤工具出方向流量过滤
[R2-GigabitEthernet0/0/2]traffic-filter outbound acl 2000
# 高级acl精确控制指定主机访问目的主机的指定协议流量
[R2]acl number 3000
[R2-acl-adv-3000]rule 10 permit icmp source 1.1.1.1 0.0.0.0 destination 4.4.4.4 0.0.0.0
[R2-acl-adv-3000]rule 99 deny icmp source any destination 4.4.4.4 0.0.0.0
[R2-acl-adv-3000]qu
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]traffic-filter outbound acl 3000
[R2-GigabitEthernet0/0/1]qu
华三设备
# 华三acl最后没有拒绝所有语句,出口写流量方向指定网段拒绝所以策略acl不管用,会全部拒绝了,入口写策略可以
[R2]access-list number 2000
[R2-acl-ipv4-basic-2000]rule 10 deny source 1.1.1.1 0.0.0.0
[R2-acl-ipv4-basic-2000]qu
[R2]int g0/2
[R2-GigabitEthernet0/0]packet-filter 2000 inbound
[R2-GigabitEthernet0/2]qu
# 出口流量过滤用高级acl可以
[R2]acl number 3000
[R2-acl-ipv4-adv-3000]rule 10 permit icmp source 1.1.1.1 0.0.0.0 destination 4.4.4.4 0.0.0.0
[R2-acl-ipv4-adv-3000]rule 99 deny icmp source any destination 4.4.4.4 0.0.0.0
[R2-acl-ipv4-adv-3000]qu
[R2]int g0/1
[R2-GigabitEthernet0/1]packet-filter 3000 outbound
[R2-GigabitEthernet0/1]qu