首页 > 编程知识 正文

通配符及反掩码的详解 网络中ACL,acl通配符掩码计算

时间:2023-05-03 18:49:04 阅读:186159 作者:704

在我们学习ACL的过程中,在理解ACL的同时也必须完成通配符掩码(wildcard mask )。 简单来说,通配符掩码0必须是绝对一致且严格一致的,而1是任意的,从某种意义上说,8位有一个字符,就只有0或1两种方式,组合起来方式就多了。 请记住。 0——严格匹配的话,1——任意配置原则是任何反口罩都是纸老虎。 让我举例说明一下。

我们一般通过APP软件进行地址块匹配,该怎么说呢? 也就是说:

)1)匹配某个等级a、b、c的网络,或者教授通配符进行屏蔽

)2)对某个子网应用ACL。

)3)将ACL应用于特定主机

)4)将ACL应用于任何主机或网络

)5)特殊情况匹配

会出现以上5种情况。 以下,逐一说明。

)1)对某类网络进行ACL通配符掩码。 这种情况很能说明。

例如,10.0.0.0 0.255.255.255

首先用二进制格式写。 00001010.00000000.000000000.000000000.0000000000

00000000.111111111.111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

我知道第一个字节需要严格匹配。 也就是说,10 .必须是后面的任意一致。

得到的网络是10.*

如果换了这个呢? 10.0.0.0 0.0.3.255

同样用二进制格式写。 00001010.00000000.00000000.0000000000.0000000000

000000000.000000000000000000000000000000000000000011111111111110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

前两个字节严格匹配10.0,以后同上问题的一个思路是,0严格匹配,1是任意的。

这里,后10位任意一致,可以通过计算得到适当的结果:

10.0.0.*

10.0.1.*

10.0.2.*

10.0.3.*

这四个子网

例如,这个问题(华为认证的问题) ) ) ) ) ) ) )。

10.1.1.0 0.0.254.255

写成二进制

00001010.000000001.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

00000000.0000000.111111110.1111111111

0严格匹配,1是任意的,可以得到结果(

10.1.xxxx xxx1.xxxx xxxx

即10.1.1.1 (10.1.000000001.00000000 ) 10.1.3.1 ) 10.1.000000011.00000000000 )一致

所以选择AC

)2)要么对某个子网应用ACL,要么举例说明,要么以C类网络192…168.1.0/24为例进行子网划分。

引入地址块的思想进行说明会更容易理解。 因为子网一般以地址块的形式存在。

地址块是128、192.168.1.1280.0.0.127

地址块为64,192.168.1.0.0.0.63

地址块为32、192.168.1.0.0.0.31

地址块为16、192.168.1.0.0.0.15

地址块为8,192.168.1.0.0.0.7

地址块为4,192.168.1.0.0.0.3

地址块为2,192.168.1.0.0.0.1

)3)要将ACL通配符应用于特定主机,必须完全匹配。 例如192.168.13.3 0.0.0.0

另一种表示方法是host 192.168.13.3

Host在此是关键字,用于代替0.0.0.0,用于源地址和目标地址字段。

)4)对任何主机或网络应用ACL,这是任何匹配的情况。 主机是任意的,通配符是任意的。 0.0.0.0 255.255.255.255,此处有时也简称为——any

)5)比较特殊的情况。 用我的话来说,这种情况是不按规则出牌的情况,很有趣。

我不想用通配符屏蔽某个子网或某个网络。 我只是想切断一些主机,但这部分主机也要有规律。 管理员一定是疯了。 哈哈。

为了说明,列举两个例子。

随便写一个,计算切断了什么样的网络。

192.168.1.23自由写作0.0.0.5

怎么了? 傻眼睛? 哈哈哈哈哈哈,这是不按规则出牌的情况。 在CCNA自学指南中,不能从11.0或12.0等网络开始。 必须是2的乘方。 虽然忽略这个规则,但是会详细说明。 大家细细品味的,还是使用最原始的方法一个个匹配。

写成二进制格式: 11000000.10101000.000000001.00010111

000000000.000000.00000000.00000000.000000000.0000000101

接下来是匹配计算。 前三个字节毫无疑问是严格匹配的。 最后一个字节都是0匹配,都是1任意的。

0001 0010

0000 0011

0000 0110

0000

0111
000101

如上的公式,我们看到有星号的位置是可以任意匹配的,这样我们就可以算出:

①00010010——18

②00010011——19

③00010110——21

④00010111——23

这样就很明显了,得到的结果就是
192.168.1.18

192.68.1.19

192.168.1.21

192.168.1.23 都被0.0.0.5这个通配符掩码给屏蔽了。

怎样,这个不按规则出牌的通配符掩码是不是也愚弄了你一次?

备注:只要严格按照0——严格匹配,1——任意配置的原则不管什么反掩码都是纸老虎。

写第二个,我需要匹配一个网络里面奇数IP的主机或者偶数IP的主机(或者的路由过滤中需要奇数网络)

还是看例子:

192.168.1.1

192.168.1.2

192.168.1.3

192.168.1.4

192.168.1.5

192168.1.6

192.168.1.7

192.168.1.9

……………

192.168.1.254

思路都是一样的,条条道路通罗马,这里条条道路通配符

我还是要写成二进制形式

前面的三个字节就省略了,只写后面的一个字节的:

00000001

00000010

00000011

00000100

00000101

00000110

00000111

…………

看出规律了么? 什么?没有啊,仔细瞧瞧么!奇数IP的最后一位都是1,而偶数IP的最后一位都是0。这就是规律啊。

那么怎么写呢?这个就比较简单了吧,奇数IP的:192.168.1.1 0.0.0.254 ;偶数IP的呢——192.168.1.2 0.0.0.254

再例如 192.168.1.0 0.0.0.254 (抓到了192.168.1.2 192.168.1.4 192.168.1.6 192.168.1.8 ………等等)

如上就是我对ACL的理解,有说错的,做错的,还望大家指正,所谓三人行必有我师,你有什么更好的办法别忘记跟帖。

ACL主要难点是在通配符的计算,如有这么一道题:

已知子网,求通配符掩码。

例:允许199.172.5.0/24

199.172.10.0/24

199.172.13.0/24

199.172.14.0/24网段访问路由器。要求写出ACL来,但只能用两条ACL代替。

先将这四个数换成二进制:
5.0 0 1 0 1

10.0 1 0 1 0

13.0 1 1 0 1

14.0 1 1 1 0

观察可以看到5.0和13.0

10.0和14.0有共同点。

2.将不相同的部分(变换的数字)用Z表示

5.0和13.0

Z 1 0 1

10.0和14.0

1 Z 1 0

3.将Z换成1,不变换(相同部分)换成0。可以得出:

5.0和13.0

Z 1 0 1 ------------ 1 0 0 0

10.0和14.0

1 Z 1 0 ------------ 0 1 0 0

4.最后将二进制换成十进制:

5.0和13.0

Z 1 0 1 ------------ 1 0 0 0 -------- 8

10.0和14.0

1 Z 1 0 ------------ 0 1 0 0 -------- 4

最后得出:

access-list 10 permit 199.172.5.0 0.0.8.0

access-list 11 permit 199.172.10.0 0.0.4.0

举个例子:
比如:控制192.168.1.40/24-192.168.1.70/24这一段IP地址能访问server,如何设置通配符掩码?

只能分段完成,这里我分四段。(也可以分五段,自己想)

192.168.1.40—47 192.168.1.40 0.0.0.7

192.168.1.48—63 192.168.1.48 0.0.0.15

192.168.1.64—71 192.168.1.64 0.0.0.7

外加一条deny 192.168.1.71 0.0.0.0

也可以五段:

00101000 192.168.1.40 0.0.0.7(192.168.1.40-47)

00101111

00000111

00110000 192.168.1.48 0.0.0.15(192.168.1.48-63)

00111111

00001111

01000000 192.168.1.64 0.0.0.3 (192.168.1.64-67)

01000011

01000100 192.168.1.68 0.0.0.1 (192.168.1.68-69)

01000101

01000110 192.168.1.70 0.0.0.0 (192.168.1.70)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。