概念
它是一种基于包过滤的流量控制技术。 控制列表以源地址、目的地址和端口号作为数据包检查的基本元素,可以规定是否允许符合条件的数据包通过。 ACL通常用于企业出口管制。 通过实施ACL,可以有效部署企业网络出局策略。
工作准则
ACL 的工作原理.png
ACL由一系列allow语句和deny语句组成
ACL按照自上而下的顺序执行(一般情况下,范围较小的条件在顶部,较大的条件在底部)
第一个匹配执行允许或拒绝操作,停止进一步的 ACL 匹配操作。
ACL 应至少包含一条语句,否则 ACL 将拒绝所有数据包
每个 ACL 末尾都有一个隐式的拒绝所有语句
ACL 语句以逻辑方式顺序运行。 这些语句从上到下评估数据包,一次一个语句。 如果数据包头与 ACL 语句匹配,则将跳过列表中的其他语句。 然后根据匹配语句允许或拒绝该数据包。 如果数据包标头与 ACL 语句不匹配,则使用列表中的下一个语句来测试数据包。此匹配过程将继续,直到到达列表末尾
ACL 通配符掩码
在处理 ACL 时,路由器需要一种机制来确定 IP 地址的哪些位必须匹配。通配符掩码描述了 IP 地址的哪些位必须与 IP 数据包匹配,以匹配或拒绝语句。
反掩码与子网掩码的关系
用 255 减去子网掩码的各个数字即可得到反掩码。
子网掩码:255.255.255.0...
取消屏蔽:0.0.0....
通配符屏蔽规则
通配符掩码 () 和子网掩码之间的区别在于它们匹配二进制 1 和 0 的方式。 通配符掩码使用以下规则匹配二进制 1 和 0:
• 通配符掩码位0:与地址中相应位的值匹配
• 通配符掩码位1:忽略地址中相应位的值
ACL通配符掩码.png
例子:
IP 子网 172.30.16.0/24 至 172.30.31.0/24 的过滤器
地址和通配符掩码:172.30.16.0 0.0.15.255
下图为IP子网通配符掩码流程
通配符屏蔽流程.png
从通配符掩码可以看出,前4位(0001)必须匹配,能满足这个条件的有16~31,匹配的主机有172.30.16.0/24~172.30.31.0/24
ACL 的两种主要类型 1. 标准 ACL(数字范围或标识符:1-99、1300-1999)
检查源IP地址
允许或拒绝整个协议系列
无法控制目标IP和应用程序
2.扩展ACL(数字范围或标识符:100-199、2000-2699)
检查源IP地址和目标IP地址
通常允许或拒绝特定协议和应用程序
可以匹配端口号
对于同一个协议,可以创建多个ACL。 在给定协议中,为每个新 ACL 选择不同的 ACL 编号。 但是,在接口上,每个协议和每个方向只能应用一个 ACL。
基于标准编号访问列表测试IP数据包.png
标准 IPv4 ACL 或命名 AXL,编号在 1 到 99 和 1300 到 1999 之间,根据源地址和掩码过滤数据包,还可以允许或拒绝整个 TCP/IP 协议套件
ACL 的工作原理
ACL 的工作原理.png
当 ACL 用于流量过滤时,它们可以运行入站或出站。此方向决定数据包在通过路由器时测试 ACL 的点。
出站ACL:传入的数据包被路由到出接口,然后由出站ACL进行处理。 如果报文匹配一条语句,则由接口转发。如果报文匹配拒绝语句或没有匹配的语句,则丢弃该报文
入站 ACL:传入数据包在路由到出站接口之前经过 ACL 处理。 入站 ACL 非常高效,因为如果过滤测试拒绝数据包,则会将其丢弃,从而节省路由查找的开销。如果测试允许数据包,则路由该数据包
例子
1. 标准ACL
要求:
• 拒绝特定主机 10.1.1.101 访问网络
• 允许所有其他 LAN 主机访问网络
access-list 1 deny 10.1.1.101
access-list 1 permit 10.1.1.0 0.0.0.255
interface GigabitEthernet 0/1
ip access-group 1 out
标准ACL示例.png
图中所示为ACL 1应用在路由器出方向提供流量过滤的场景。 ACL 1 包含一条拒绝语句,该语句匹配来自 IP 地址为 10.1.1.101 的特定主机的流量。 ACL 中的第二行允许来自网络 10.1.1.0/24 内的主机的流量。指定一条语句非常重要,因为 ACL 末尾有一个隐式的拒绝所有语句
或者,也可以将ACL应用在接口0/0的入方向。这种方案不仅阻止主机PC2访问网络,而且拒绝PC2与路由器之间的所有通信
2. 扩展ACL
要求:
• 阻止 PC2 仅访问网络上的一台服务器 (209.165.202.197)
• 仅允许其他用户访问网络
为了防止PC2与特定服务器通信,需要使用扩展ACL,将PC2的IP地址作为源地址,将服务器的IP地址作为目的地址。
access-list 110 deny ip host 10.1.1.101 host 209.165.202.197
access-list 110 permit tcp 10.1.1.0 0.0.0.255 any eq 80
ip access-group 110 in
选择数字 110 将 ACL 定义为扩展 ACL
第一条语句匹配两个特定主机之间的 IP 流量,因此请求被拒绝
第二条语句匹配来自网络 10.1.1.0/24 的 HTTP TCP 流量。 使用运算符 eq(等于)来匹配 TCP 端口 80
ACL 末尾有一个隐含的拒绝语句
在接口上激活扩展ACL与激活标准ACL相同。
扩展ACL示例.png