通配符及反掩码的详解 (网络中ACL )

article/2025/9/2 4:18:38
       在我们学习ACL中,在搞懂ACL的同时也要搞定通配符掩码(wildcard mask)。说简单点,通配符掩码就是0为绝对匹配,必须严格匹配才行,而1为任意,从某种意义上讲,如果一个8位上有一个1字符,那也只有两种方式,0或者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.*

这四个子网

在例如这道题(华为认证中的某到题)
在这里插入图片描述

10.1.1.0 0.0.254.255
写成二进制
0000 1010 . 0000 0001 . 0000 0001 .0000 0000
0000 0000 . 0000 0000 . 1111 1110 . 1111 1111
根据0就严格匹配,1就任意,可得到结果 (注意:这里X代表任意填充 )
10.1.xxxx xxx1.xxxx xxxx
即匹配到了 10.1.1.1(10.1.0000 0001.0000 0000) 10.1.3.1(10.1.0000 0011.0000 0000)
所以选AC

(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

通配符需要全匹配,例如: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.00000001.00010111
00000000.00000000.00000000.00000101

接下来就是匹配计算了。前三个字节毫无疑问,严格匹配。最后一个字节逢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)


http://chatgpt.dhexx.cn/article/pvadYwUe.shtml

相关文章

反掩码与通配符掩码

掩码我们学数通的应该都很熟悉,我们刚刚学习IP的时候肯定都学过,这里就不在叙述。 今天我们要说的是反掩码和通配符掩码,反掩码相信大家也都不陌生,我们配置OSPF的时候都能用的到但是很多网工也就知道配置OSPF就要那么配置&#x…

掩码、通配符与反掩码

掩码 采用按位与运算,计算一个ip地址的网络号0 & 0 0  1 & 0 0  即:x & 0 00 & 1 0  1 & 1 1  即:x & 1 xip地址的结构 网络号 主机号若要得到网络号,掩码的结构必然为前面是连续的1&am…

ACL 通配符掩码 匹配的范围计算及理解

例题 access-list 120 permit ip 10.0.0.0 0.0.0.191 any 这条ACL看似简单,却又复杂,因为正常我们见到的通配符掩码都是诸如0.0.0.255(255.255.255.0)/0.0.255.255(255.255.0.0)/0.0.0.127(255…

UDF和GenericUDF区别

目录 UDF GenericUDF Java开发转了大数据,竟然被拉去做了非结构的ETL抽取,真的是比做后端伤脑筋,没有可借鉴的框架,只能根据数据进行抽取,第一份大数据实习,写完抽取代码后,需要写成UDF和UDTF进行使用。 …

URDF教程

创建自己的URDF文件 1.1创建树形结构文件 在这部分教程中要创建的将是下面的图形所描述的机器人的urdf文件 图片中这个机器人是一个树形结构的。让我们开始非常简单的创建这个树型结构的描述文件,不用担心维度等的问题。创建一个my_robot.urdf文件,…

UDF 提权

肚子难受了两天,躺了两天 关于 UDF ,我当时第一想到的是 sqlmap 里的 -os-shell 这两者之间又有怎么样的区别? 经过我查了一番资料 UDF 全称为 User Defined Functions ,翻译过来就是用户可自定义函数. UDF 适用于只知道root 账户密码&a…

MySQL UDF 提权

概述 UDF 全称 User Defind Function(用户自定义函数),用户通过自定义函数可以实现在 MySQL 中无法方便实现的功能,其添加的新函数都可以在 SQL 语句中调用,就像调用本机函数 version () 一样方便。 UDF 提权是通过这…

udf提权

udf提权 什么是udf udf “user defined function”,即‘用户自定义函数’。是通过添加新函数,对MYSQL的功能进行扩充,性质就像使用本地MYSQL函数如abs()或concat()。udf在mysql5.1以后的版本中,存在于’mysql/lib/plugin’目录下&#xff…

URDF

Solidworks模型转化为URDF文件格式三连杆机械臂示例逆运动学 https://blog.csdn.net/gpeng832/article/details/73917487 关于SolidWorks导出URDF模型的总结 https://blog.csdn.net/mt_lixinzeng/article/details/80268572 Rviz: RobotModel --Status: Error :如果关节是活动…

Mysql之UDF提权

前言 mysql提权的几种方式 udf提权(常用)mof提权开机启动脚本(启动项提权) 提权目的:mysql权限 —> 操作系统权限 UDF提权 有时候我们通过一些方式获取了目标主机mysql的用户名和密码,并且可以远程连…

UDAF和UDF的介绍

目录 UDF介绍 UDAF简介 关于UDAF的一个误区 使用UDF 在SQL语句中使用UDF 直接对列应用UDF(脱离sql) UDAF使用 继承UserDefinedAggregateFunction 继承Aggregator UDF介绍 UDF(User Define Function),即用户自…

FLUENT UDF并行化(1)

来源:ANSYS FLUENT UDF帮助文档,翻译自用,如有错误,欢迎指出! 本章概述了并行ANSYS Fluent的用户定义函数(UDF)及其用法。有关并行UDF功能的详细信息,请参见以下部分,本…

FLUENT UDF并行化(2)

来源:ANSYS FLUENT UDF帮助文档,翻译自用,如有错误,欢迎指出! 本章概述了并行ANSYS Fluent的用户定义函数(UDF)及其用法。有关并行UDF功能的详细信息,请参见以下部分,本…

udf开发入门(python udf、hive udf)

开发前的声明 udf开发是在数据分析的时候如果内置的函数解析不了的情况下去做的开发,比方说你只想拆分一个字段,拼接一个字段之类的,就不要去搞udf了,这种基本的需求自带函数完全支持,具体参数可参考文档: …

UDF的入门科普

新入门的小伙伴们好像对udf有一些疑问,那么今天就给大家整理一些udf的学习资料供大家参考。(公众号:刘华强仿真笔记) 01 UDF的基本概念 UDF的定义? UDF 是用户自己用C语言写的一个函数,可以和FLUENT动态链接 用UDF…

FLUENT中初识UDF——UDF的简单使用(1)

FLUENT中初识UDF——UDF的简单使用(1) 注意:不包含其他ANSYS基本操作流程!!!1:UDF的编写:2:ANSYS中导入UDF函数:2.1:首先打开Fluent,导…

对window的注册表进行优化

Regclean pro是一款优秀的注册表扫描、清理工具,由微软金牌合作伙伴Systweak开发。 它具有强大的Windows注册表检测及修复功能,可以帮助用户轻松而有效的清理、修复Windows 系统注册表中缺省的、被破坏的或残缺的系统参数,轻松提升系统性能。…

Windows注册表基本管理配置

一.注册表优化 注册表的优化分为几点: 1.系统安装是产生的无用信息 (1) 删除多余的时区 路径:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones 删除除了China Standard Time中国时区以外的其他时区…

Windows与网络基础-19注册表维护与优化

目录 一、注册表维护 1.1注册表被破坏后的常见现象 1.2注册表被破坏的原因 1.3备份注册表 1.4恢复注册表 1.5锁定和解锁注册表 二、注册表的优化 2.1删除多余的DLL文件 2.2安装卸载应用程序的垃圾信息 2.3系统安装时产生的无用信息 2.3.1删除多余时区(必…

Win7注册表优化工具箱

软件名称:Win7注册表优化工具箱 软件版本:1.0.0.0 软件大小 1.04MB 适用环境: win7 软件性质: 国产软件 - 系统工具 - 优化设置 下载地址 http://pan.baidu.com/share/link?shareid104303&uk4160867570# 本文转自hai…