为什么需要ACL,无非是进行访问控制罢了。这种技术从路由器逐步推广到交换机上进行使用。

ACL对入站或出站的通信进行过滤。ACL的局限性是不能对路由器本身发出的通信进行过滤,因此在路由器上执行ping或trace、route命令,或者通过路由器远程连接(telnet)另外一个网络设备,应用于路由器端口的ACL命令不能过滤这些通信。
ACL基本原则:

  • 先匹配原则
  • 排序原则
  • 默认丢弃原则
    我们知道ACL分为标准ACL和扩展ACL。

标准ACL

标准编号范围:1~99,1300~1999。
命令格式

1
Router(config)#access-list 编号 permit|deny 单个IP|{网络地址 反掩码}

激活ACL命令(进入端口应用ACL)
in表示进入端口的分组(入站),out表示端口输出的分组(出站)。
我们可以这样理解,在针对配置的设备来说,该端口经过该设备传送即为入站,反之端口远离该设备即为出站。

1
2
Router(config)#interface 端口号
Router(config-if)#ip access-group acl编号 in|out

通配符掩码的例子

















IP地址 通配符掩码 匹配
0.0.0.0 255.255.255.255 匹配任何地址(关键字any)
172.16.1.1 0.0.0.0 匹配host 172.16.1.1(匹配单个主机)

标准ACL默认配置
access-list 编号 deny any

扩展ACL

标准编号范围:1~99,1300~1999。
命令格式

1
Router(config)#access-list 编号 permit|deny 协议类型 源网络地址 反掩码 [控制信息]目的地址 反掩码 [控制信息] [log]

协议类型:tcp、udp、icmp、ip
对于TCP和UDP协议如下:

1
Router(config)#access-list 编号 permit|deny tcp|udp 源网络地址 反掩码 目的地址 反掩码 [操作符 端口|关键字] [established] [log]

激活ACL命令同标准ACL一致
实例配置:

1
2
3
4
5
6
7
8
Router#conf t
Router(config)#access-list 100 permit tcp any 172.16.0.0 0.0.255.255 established log
Router(config)#access-list 100 permit udp host 172.16.1.1 eq dns log
Router(config)#access-list 100 permit tcp 172.17.0.0 0.0.255.255 host 172.16.1.2 eq telnet log
Router(config)#access-list 100 permit icmp any 172.16.0.0 0.255.255.255 echo-reply log
Router(config)#access-list 100 deny ip any any log
Router(config)#interface ethernet0
Router(config-if)#ip access-group 100 in

标准ACL默认配置
access-list 编号 deny ip any any

以上就是我对ACL的小小见解。