cisco的访问控制列表ACL的基本使用(大白话版)(基于cisco packet tracer)

最近在写计算机网络的课设,碰到了这个问题,打算把它写下来,以便以后参考。

一,ACL有啥用?

百度百科上的解释:访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层交换机。

它可以控制用户对于网络的访问,可以被用在路由器或者交换机上。可以在路由器上设置一个访问控制列表,使得与这个路由器相连的某个主机或者某个地址范围内主机不能访问该路由器。打个不恰当的比喻,把路由器当做一个关卡,把与它相连的主机看做一个城市,设置访问控制列表就是告诉这个关卡里的守卫--哪些城市的人可以通过,哪些不可以。

二,如何设置ACL?

1,语法:

Access-list access-list-number {deny | permit} source [source-wildcard] [log]

access-list命令参数的含义如下:

(1) access-list-number:访问控制列表号,标准访问控制列表的号码范围是1~99。

(2) deny:如果满足条件,数据包被拒绝从该入口通过。

(3) permit:如果满足条件,数据包允许从该入口通过。

(4) source:数据包的源网络地址,源网络地址可以是具体的地址或any(任意),如果源地址是单个IP地址时,将"source"改成"host",后再写IP地址即可。

(5) Source-wildcard:源地址通配符掩码,可选项。通配符掩码是一个32比特位的数字字符串,使用1或0来表示,它被用"."分成4组,每组8位。在通配符掩码位中,0表示"检查相应的位",而1表示不检查相应位。通配符掩码相当于子网掩码的反码。

(6) Log:可选项,生成日志信息,记录匹配permit或deny语句的包。

可以通过在"access-list"命令前加"no"的形式,来删除一个已经建立的标准ACL。

2,实例:

单看语法有点懵,下面就通过一系列实例来说明它的基本使用。

cisco的访问控制列表ACL的基本使用(大白话版)(基于cisco packet tracer)_第1张图片

 

如图,在这个网络里有4个部门(车间部门,研发部门,收费部门,行政部门),这四个部门各有自己的一些电脑(每个部门的所有电脑仅用一台主机表示)。它们通过交换机与路由器Router0相连。这个路由器是这个网络通向外界(外界互联网用cloud-pt表示)的唯一通道。

我想实现“只有收费部门的所有电脑(它们的IP地址范围是192.168.1.48--192.168.1.63)可以与外界相连,其余部门的电脑都不能与外界相连,但是整个网络内的所有主机或者服务器之间都可以相连。”的目标。接下来就说说如何实现这个目标。

第一步,按照如图的图形结构连好这些设备,并设置好IP地址,网关等基本参数。

检验第一步:在各个设备之间发送数据包(在“cisco packet tracer”软件中点击下图中不带纸张的信封按钮,按提示操作即可)测试连接是否成功:

cisco的访问控制列表ACL的基本使用(大白话版)(基于cisco packet tracer)_第2张图片

列表的第二项均为successfu,说明它们之间互连是成功的。 

第二步,设置ACL。

点开Router0,并进入命令行界面并进入全局模式,如图:

cisco的访问控制列表ACL的基本使用(大白话版)(基于cisco packet tracer)_第3张图片

 

然后输入代码:access-list 1 permit 192.168.1.48     0.0.0.15

这句话的意思是建立一个名为“1”的ACL (也即:access-list),它允许192.168.1.48--192.168.1.63的IP地址(至于为什么是这个范围,还要看本文章的第3点--ACL的源地址通配符掩码的具体使用(包括子网划分))通过路由器的X端口。但是这个X端口还没确定。

第三步,应用ACL:

要确定X端口的话,应该采用语句:interface fastethernet 0/0 进入路由器的fastethernet 0/0端口。然后,再输入语句ip access-group 1 in,表示让access-list组里面的1号ACL应用到fastethernet 0/0端口的in方向(也即,接口流入方向)。这里面的语法是:

ip access-group access-list-number {in|out}

(1) Ip:定义所用的协议。

(2) access-list-number:访问控制列表的号码。

(3) in |out:定义ACL是被应用到接口的流入方向(in),还是接口的流出方向(out)。

3,ACL的源地址通配符掩码的具体使用(包括子网划分):

设有如下的语句:

access-list 1 permit 192.168.1.48     0.0.0.15

关于这条语句,它的前半部分的含义我们已经了解了(在第2点里面有讲),关键是后面两组数字的含义是啥。

首先,你需要知道的是,第一组数字代表一个网址,后面的一组数字代表其前面网址的一个匹配。它们结合起来就能匹配一组IP地址,这组IP地址就是这条ACL语句适用的IP范围。

其次,将第一组数据按二进制展开得:

1100 0000 .  1010 1000 .  0000 0001  .  0011 0000

将第二数据按二进制展开得:

0000 0000  . 0000 0000 .  0000 0000 .  0000 1111

将第二组数所有的0  都与  第一组数据的对应位置上的数  “按位异或”,也即:填原数

其余位置可以任意填0或1(规则就是碰到0就填原数,碰到1就任意)。

那么就得到了如下的数:

1100 0000 .  1010 1000 .  0000 0001  .  0011 XXXX(其中X代表任意的0或者1)

那么这组数表示的范围就是前面那个ACL的语句作用的IP地址范围,也即:

192.168.1.48--192.168.1.63。

为了熟练地使用这个源地址通配符掩码,我们来做几个练习题:

写出下列ACL语句的作用范围:

1,access-list 1 permit 192.168.1.0    0.0.0.7

2,access-list 1 permit 192.168.1.8    0.0.0.7

3,access-list 1 permit 192.168.1.8    0.0.0.63

4,access-list 1 permit 192.168.1.64    0.0.0.63

5,access-list 1 permit 192.168.1.1     0.0.0.0

6,access-list 1 permit 192.168.0.0    0.0.7.255

7,access-list 1 permit   192.168.1.23   0.0.0.5

答案:

1, 192.168.1.0--192.168.1.7

2, 192.168.1.8--192.168.1.15

3, 192.168.1.0--192.168.1.63

4, 192.168.1.64--192.168.1.127

5, 只表示192.168.1.1一个IP

6, 192.168.0.0--192.168.7.255

7, 只表示192.168.1.23 , 192.168.1.22 , 192.168.1.18 , 192.168.1.19

三,参考资料:

通配符及反掩码的详解 (网络中ACL )_冷鞘-的博客-CSDN博客_0.0.254.255反掩码

如有错误,敬请指正。

你可能感兴趣的:(网络)