Cisco IOS Access-List (ACL) 是用来定义和控制网络流量的一种机制,一旦使用了ACL(访问控制列表),你可以实现很多对网络的控制。例如,你可以利用访问控制列表来允许、阻止、显示和限制路由更新。在本文,我们会介绍一下Cisco IOS Access-Lists的基本概念
我可以利用ACL做什么?
A Cisco IOS Access-list的简称是ACL,ACL通常读作A.C.L,但是有些人会都成“ankle”,事实上,我比较倾向于读作A.C.L。就好像你会读FBI和CIA,而不是像NASA或者是FEDEX这样的读法。ACL是用来定义和区分网络流量的,通过建立ACL,你仅仅是定义了网络类型,但是不会起任何实际作用。一旦建立了ACL,你还要对接口或者特定线路进行定义。
ACL有哪些类型?
访问控制列表有两种类型:标准或扩展。IP访问列表的编号属于下列数值范围: ?1至99——标准IP访问列表,100至199——扩展IP,1300到1999——标准IP访问列表,2000年至2699——扩展IP。其中标准IP访问列表只能定义源IP流量;一个扩展IP访问列表可以定义流量的源和目的地IP地址,以及源和目标端口号。另外,在标准访问列表中只能定义IP流量,而扩展访问列表可以定义TCP, UDP, ICMP, IP, AHP, EIGRP, IGRP, ESP, IGMP, OSPF和PIM流量。下面是一个最基本的标准IP访问列表可以定义的例子:
此访问列表编号为“1”,它允许源IP地址为1.1.1.1的流量。既然我们提出了访问列表的编号,让我指出,这些数字并不像是一个程序的行数。访问控制列表并不会根据这个编号进行优先处理顺序,而是处于同一个编号的访问控制列表里面的规则会同时执行。所有在标准访问列表1中定义的所有规则都会存在同一个列表中,并且同时被使用。
从上自下处理(Top down Processing)
访问列表的行是从上往下处理的,根据他们输入顺序进行排序。当网络数据包和该正在处理的访问列表中某条语句匹配,则该包的所有处理会停止,不继续进行向下匹配。让我们看一个例子。加入有这个访问列表:
假设这个访问列表被用来过滤绑定到路由器的流量。如果一个源IP地址为1.1.1.1的数据包进来,该包会被访问列表允许还是拒绝呢?因为访问列表是从上往下处理,该流量将被拒绝,即使它被下面的一条语句所允许。这是因为,当流量被拒绝后,访问控制列表对该包的处理将会停止。这里你需要知道的是语句的顺序是至关重要的,如果您正在使用访问列表过滤流量,那么你应该在最接近流量源的地方组织该流量,以节省广域网带宽。
访问控制列表和流量过滤的3个P
当过滤流量时,访问列表的规则是“three Pers”。规则是这样的:“你可以在每个协议,每个方向,每个接口配置访问控制列表”。所以,你可以为每个协议(IP, IPX, Appletalk, bridging等)配置访问列表。你可以在每个方向,IN或OUT方向设置访问列表。你可以在每个接口(FastEthernet0/0, Serial0/0, Serial1/0)配置访问控制列表。换句话说,你不能在同一接口上有两个绑定的IP访问列表。
通配符掩码(wildcard mask)
一个非常重要的事情是,在指定范围内的网络,或整个网络上的主机,配置ACL需要一些所谓的通配符掩码(wildcard mask)。通配符掩码是一个倒置的子网掩码。换句话说,网络的子网掩码(或范围)的主机,把它转换成二进制,翻转0和1,并转化为十进制。我不会在这篇文章解释如何进行计算,你可以在在线IP地址和子网掩码计算器计算你需要的通配符掩码。下面是一些例子:子网掩码255.255.255.0 =通配符掩码0.0.0.255;子网掩码为255.0.0.0 = 0.255.255.255通配符掩码;子网掩码255.255.0.0 = 0.0.255.255通配符掩码
隐含拒绝(Implied Deny)
关于访问列表的另一个非常重要的规则是,每个ACL总有一个“默示拒绝”。这意味着每一个访问列表,在它结束所有规则前有一个隐含的规则:?access-list X deny ANY(如果这是一个标准的访问列表)或?access-list X ip deny ANY ANY(如果这是一个扩展访问列表),这样,如果你的流量是没有在ACL中的语句中明确允许,那么你的流量被拒绝。如果您手动键入“deny any”规则,它会出现,但如果你不键入它,它仍然存在。下面是一个例子:通过此ACL允许的流量是什么?
答案是所有流量都不被这个访问控制列表所允许,因为唯一的规则是拒绝规则,而且最后存在隐含拒绝所有的规则。
总结
在刚开始了解ACL是如何工作的会存在一些困惑,但是我希望这篇文章能作为一篇对ACL的入门介绍。但实际应用中,Cisco IOS access-lists是每个网络工程师必须掌握的基础技能!
译自:petri
文章评论
我没有这么用过~
亲,你敢不敢写点我能看懂的东西?
应该说大家,大部分人~
@刘印博客 哥,我会的~慢慢转型~
主机的月流量限制,是不是也是这个道理啊。
@海纳百川 这个只是访问控制哦,流量控制应该是系统做的设置!