前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >了解ACL—通配符掩码「建议收藏」

了解ACL—通配符掩码「建议收藏」

作者头像
全栈程序员站长
发布2022-09-09 12:27:57
1.9K2
发布2022-09-09 12:27:57
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

学习ACL,搞懂ACL就不能不搞定wildcard mask,通配符掩码。说简单点,通配符掩码就是0为绝对匹配,必须严格匹配才行,而1为任意,从某种意义上讲,如果一个8位上有一个1字符,那也只有两种方式,0或者1,但是如果进行组合,那么方式就多了。 举例说明吧。 一般我们在应用上都是进行地址块的匹配,怎么讲呢?就是说: 1)对某个A B C类网进行匹配或者教通配符屏蔽 2)对某个子网应用ACL。 3)对特定主机应用ACL 4)对任意主机或者网络应用ACL 5)特殊情况的匹配 差不多就是以上五种情况,下面一一说明。 1)对某个有类网络进行ACL的通配符屏蔽。 这种情况很好解释。 例如:A类:10.0.0.0 0.255.255.255 先写成二进制形式: 00001010.00000000.00000000.00000000 00000000.11111111.111111111.11111111 可以看出,第一个字节需要严格匹配,也就是说必须为10.,后面的任意匹配。 得到的网络为10...* 如果我把这个改一下呢?10.0.0.0 0.0.3.255 同样写成二进制形式:00001010.00000000.00000000.00000000 00000000.00000000.00000011.111111111 前两个字节严格匹配为10.0,后面的同上题一个思路,0就严格匹配,1就任意。 在这里,后10个比特可以任意匹配,我们通过计算可以得到合适的结果: 10.0.0.* 10.0.1.* 10.0.2.* 10.0.3.* 这四个子网

2) 对某个子网应用ACL 还是举例说明,以C类网络192…168.1.0/24为例进行子网划分。 我们引入地址块的思想进行解释会好理解一些。因为子网一般都是以地址块形式存在的。 地址块为128,192.168.1.128 0.0.0.127 地址块为64,192.168.1.0 0.0.0.63 地址块为32,192.168.1.0 0.0.0.31 地址块为16,192.168.1.0 0.0.0.15 地址块为8,192.168.1.0 0.0.0.7 地址块为4,192.168.1.0 0.0.0.3 地址块为2,192.168.1.0 0.0.0.1

3)对特定主机应用ACL 通配符需要全匹配,例如:182.168.12.4 0.0.0.0 还有一种表示方法:host 182.168.12.4 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.00000001.00010111 00000000.00000000.00000000.00000101 接下来就是匹配计算了。前三个字节毫无疑问,严格匹配。最后一个字节逢0匹配,逢1任意。 00010111 00000101 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

如上就是我对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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161562.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先将这四个数换成二进制: 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
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档