上面我们学习了交换的基础知识,也接触过一些基本的实验了,现在再学习下交换中的下一个重点:访问控制列表(ACL=access control list)
ACL(access control list)
也叫访问控制列表
1、什么是ACL?
答:ACL(access control list)也叫访问控制列表,主要是路由器与交换机接口的指令集(用于接口),主要是控制接口间数据包进出的。(以我们通俗的话来说,它就是一个过滤器,那些数据可以出去,那些可以进来)
2、为什么要用到ACL?
答:它的功能就如上面的说的,流量控制、匹配感兴趣流的控制。之所以用到它一方面是因为安全方面的考虑,把不是自己需要的流量控制在网外。另一方面是因为企业方面的原因:如企业里各部门是不可以互相访问,不同VLAN间数据不方便共享,某些用户只允许访问特定的网络资源等等。
ACL可以控制网络流量,提高网络的性能。
ACL可以提供网络安全访问的基本手段。(如企业中有些人只能访问特定的网络资源)
ACL可以在路由器或者交换机的端口处控制某些数据可以通过或者某些数据包会被阻塞。
3、ACL的原则:
1、ACL的列表号表明指出是那种协议(1-99是标准类型、100-199是扩展类型、以名字命名的是命名类型),所以我们在接口宣告ACL时,要注意列表号的正确。
2、一个ACL的配置是每个协议、每个接口、每个方向的,路由器的每个人接口、每种协议上可以配置进方向与出方向二个ACL.
3、ACL的语种顺序决定了数据包的控制顺序,当路由器的决定某一数据是被转发或者被告阻塞时,会按照ACL的语句顺序,根据语句的描述去对数据进行一条一条的检测,若检测到数据与ACL的语句匹配,它会结束执行,不会再管ACL下面的描述,直接阻塞或者转发。
4、把最有限制的语句放在最前面。把最有限制权限的语句放在ACL描述的最前面或者靠前的位置,允许所有或者拒绝所有的语句放在ACL语序的最后面,这样既可以有利的控制数据包,也防止数据全部允许而导致后面的语句不起作用。
5、在接口宣告ACL前,首先要在全局的模式下建立ACL,再把ACL应用于(宣告)接口的进入或者流出处。不能在接口处宣告无用的ACL。
6、ACL不能删除其中一条不需要的规则,如果要更改的话,只能是把这条ACL直接删除再重建。
7、ACL在默认的情况下,会在最后一次后面加有一条 deny any any 所以我们在ACL中最少要有一条permint any any.
8、ACL只能过滤穿该路由器的数据流量,而不能对本路由器所发出的数据流量进行过滤。
9、ACL 若是应用于接口的进入(in)时,应该是靠近源端(离源数据最近的相邻路由器入接口处宣告)
10、ACL 若是应用于接口的流出(out)时,应该远离源端(离源数据最近的相邻路由处的出接口处宣告)
4、ACL规则类型:
A、标准访问列表:
它是通过源IP的IP数据包进行过滤。使用的控制列表号是:1-99
配置命令如下:
router(config)#access-list 1{permint / deny } host ip ip反码 //配置ACL规则
router(config)#int f0/0 //进入靠近离源 ip最近的端口
router(config-if)#ip access-group 1 {in / out} //对ACL进行宣告
router(cofig)#no access-list 列表号 //删除已存在的access-list
例如:
1、禁止 192.168.13.0网段访问 192.168.34.0网段
根据上面的要求,我们来配置标准ACL,测试禁止R1不能访问 R4 ,但是 R2网段可以正常访问。
上图是R1的基本配置
由于上面的拓扑涉及:
单臂路由的配置(要看详细的配置,请到上一章查看)
EIGRP (相关的配置也请查阅上面的章节)
上面完成基本的配置后,我们就试下线路的连通性。
下面我们再来写ACL,实现上面的要求:(我们是在R3上面配置ACL)
记得要在靠近源的端口处应用(宣告)。下面我们再来测试下效果:
上面测试了我们的标准 ACL ,我们知道标准的ACL是最简单的,基于IP的过滤,占用的系统资源也少,但是功能简单,但是我们在日常的情况下,要求相对复杂了些,所以我们就要使用:扩展访问控制列表了。
B、扩展访问控制列表。
扩展IP访问控制列表比标准IP访问控制列表具有更多的匹配项,包括协议类型、源地址、目的地址、源端口、目的端口、建立连接的和IP优先级等。
配置方式如下:
Router(config)#access-list access-list-number {permit | deny} protocol {source source-wildcard destination destination-wildcard} [operator operan]
access-list-number 访问控制列表表号;范围是:100~199、2000~2699;
{permit | deny} 满足条件后,执行的结果允许或拒绝;
protocol 用来指定协议的类型,如IP、TCP、UDP、ICMP;
source-ip 数据包源地址;
source-wildcard 通配符掩码,也叫反码;
destination 数据包目的地址;
destination-wildcard通配符掩码,也叫反码;
operator operan ―lt(小于)、gt(大于)、eq(等于)、neq(不等于)和一个端口号;
router(config-if)#access-list 101 {in/out}
例如:
我们要控制 R1去 telnet R4,别的放行。
拓扑图:
基本的配置:
router1(config)#no ip domain lo
router1(config)#int f0/0
router1(config-if)#ip add 192.168.123.1 255.255.255.0
router1(config-if)#no sh
------------------------------------------------------
router2(config)#no ip domain lo
router2(config)#int f0/0
router2(config-if)#ip add 192.168.123.2 255.255.255.0
router2(config-if)#no sh
-------------------------------------------------------
router3(config)#int f0/0
router3(config-if)#ip add 192.168.123.3 255.255.255.0
router3(config-if)#no sh
router3(config-if)#int s0/0
router3(config-if)#ip add 192.168.34.3 255.255.255.0
router3(config-if)#no sh
router3(config-if)#ex
router3(config)#router eigrp 100
router3(config-router)#net 192.168.123.0
router3(config-router)#net 192.168.34.0
--------------------------------------------------------
router4(config)#int s0/0
router4(config-if)#ip add 192.168.34.4 255.255.255.0
router4(config-if)#no sh
router4(config-if)#ex
router4(config)#router eigrp 100
router4(config-router)#net 192.168.34.0
=============================================================
我们先试下Telnet看情况如何?
下面我们开始配置 ACL 。要在R3上面进行配置:
上面已经配置好,并在R3的S1/0接口上面进行宣告,下面我们看结果吧。
C、命名访问控制列
什么是命名ACL?
答:就是用列表命名与代替列表编号的方式来定义ACL。
命名访问列表:
1、可以删除ACL列表中的任何一条列表,方便管理。
2、分为标准型与扩展型。
命名访问列表的配置方式:
Router(config)#ip access-list {standard | extended} access-list-name
standard 标准的命名ACL:
Router(config-ext-nacl)#[sequence-number] {permit|deny} source-ip source-wildcard
extended 扩展的命名ACL:
Router(config-ext-nacl)#[sequence-number] {permit|deny} protocol {source source-wildcard destination destination-wildcard} [operator operan]
sequence-number 参数是可选的,用来表明配置的ACL再ACL列表中所处的位置,默认情况下,第一条为10,第二条为20,以此类推
例如:使用扩展的命名ACL来完成上面的问题。
基本的配置,我这里也就不重复啦,检查下相关的连通性后,我们直接的就开始吧。
看到上面我们知道基本配置已经完成,下面我们试下使用 命名的扩展ACL:
上面可以看到 命令的扩展列表配置方式了,并在 S1/0上面进行应用,那我们来检查下结果吧!!
现在我们可以看到除了不能 TELNET 进 R4外,PING 是正常的。
D、时间访问控制列
由于这个时间实在是不好弄,所以这个就不在这里记录了,直接给个我找到的链接吧
http://wenku.baidu.com/link?url=5KJFuRQ9c1qwjYlQvzk_FAOKeVzilsqLdAtiBy7lCN750goWXWqdk0CAweOmmnKfKbhXh1GKlb_jVBSDXdpD7ZSq_trnuf0l3KWGgQFgoPy
这章就写到这里吧!
祝大家好运!!!