与标准编号的IP ACL相比,扩展IP访问列表具有许多相似之处。就像标准IP ACL一样,您可以在接口上启用扩展访问列表,以访问或退出接口的数据包。
扩展的ACL也使用优先匹配逻辑,因为路由器会在匹配第一条语句后立即停止对列表的搜索,并执行在第一条匹配语句中定义的操作。所有这些功能对于标准编号的访问列表(和命名的ACL)也适用。
扩展ACL与标准ACL不同,主要是因为可用于匹配数据包的数据包头字段种类繁多。一条扩展的ACL语句可以检查数据包头的多个部分,要求正确匹配所有参数以匹配该一条ACL语句。与标准IP ACL相比,强大的匹配逻辑使扩展访问列表既有用又复杂。
匹配协议,源IP和目标IP
扩展访问列表需要三个匹配的参数:IP协议的类型,源IP地址和目标IP地址。对于Cisco设备中的协议类型,您只需使用关键字(例如tcp,udp或icmp)来匹配恰好分别具有TCP,UDP或ICMP标头的IP数据包。
您还必须为源IP地址和目标IP地址字段配置一些值。下图显示了语法:
下表列出了几个仅使用必需的匹配参数的访问列表命令示例。您可以看到 扩展访问列表命令和逻辑说明:
在扩展的ACL访问列表命令中,所有匹配的参数都必须匹配,以便数据包与命令匹配。例如,在上表的最后一个示例中,该命令检查UDP,子网1.1.1.0/24的源IP地址以及任何目标IP地址。
如果检查了源IP地址为1.1.1.1的数据包,则它将与源IP地址检查相匹配,但是如果它具有TCP报头而不是UDP,则它将与此access-list命令不匹配。所有参数必须匹配。
匹配的TCP和UDP端口号
扩展的ACL还可以检查TCP和UDP标头的一部分,尤其是源
端口号和目标端口号字段。端口号标识发送或接收
数据的应用程序。要检查的最有用的端口是服务器使用的知名端口。例如,默认情况下,Web服务器使用众所周知的端口80。
在思科设备中,当扩展的ACL命令包括TCP或UDP关键字时,该命令可以选择引用源和/或目标端口。为了进行这些比较,该语法将关键字用于等于,不等于,小于,大于和一系列端口号。
在下图中,您可以看到使用协议TCP或UDP启用了端口号的扩展ACL语法。
例如,考虑一个简单的网络。客户端希望将TCP数据包发送到FTP服务器。下图显示了与以下内容匹配的ACL语法:
- 包含TCP标头的数据包。
- 从客户端子网发送的数据包。
- 数据包发送到服务器子网。
- 带有TCP目标端口21(FTP服务器控制端口)的数据包。
假设服务器使用众所周知的端口21(FTP控制端口),则数据包的TCP标头的目标端口值为21。ACL语法在目标IP地址之后包含eq 21参数。
请记住,标准ACL必须应用在距离目标节点最近的设备中,因为这种ACL无法根据目标地址过滤数据包。但是您可以在上图中红色箭头所暗示的四个位置中的任何一个中使用扩展ACL。
最好将扩展的ACL放置在尽可能靠近要过滤的数据包源的附近。靠近数据包源进行过滤可以减少带宽开销。
下面列出了许多流行的端口号的表和它们相关的传输层协议和应用程序。
命名ACL和ACL编辑
本节介绍命名的ACL以及如何通过处理序列号来编辑ACL行。尽管这两个功能都是可选的,但在需要更改ACL时,可以更轻松地找到ACL的用法并编辑现有的ACL。
命名IP访问列表
命名IP ACL与编号IP ACL有很多相似之处。它们可用于过滤
数据包以及其他许多目的。就像标准和扩展编号的ACL都在每个包可以匹配的方面有所不同一样,也有标准和扩展命名的ACL。
与编号的ACL相比,命名的ACL最初具有三大差异:
- 使用名称而不是数字来标识ACL,从而更容易记住ACL的原因。
- 使用ACL子命令而不是全局命令来定义操作和匹配参数。
- ACL编辑功能,可让您从ACL中删除个别行并
插入新行。
使用序号编辑ACL
ACL编辑功能使用添加到每个ACL允许或拒绝语句的ACL序列号,该数字代表ACL中语句的序列。ACL序列号为编号和命名ACL提供以下功能:
删除单行:可以使用no sequence-number子命令删除单个ACL允许或拒绝语句。
插入换行符: 可以使用序列号配置新添加的allow和deny命令,以指定该语句在ACL中的位置。