反掩码,英文名 wildcard-mask,也直译成inverse-mask

在介绍反掩码之前,我们先回顾一下掩码 mask 的相关知识点
1.掩码
掩码中有1有0,其中连续的1表示网络号,而连续的0表示主机范围,

举例:

255.255.255.0

转成二进制形式:

1111 1111 . 1111 1111 . 1111 1111 . 0000 0000

其中的1有24个,说明这个掩码有24位的网络号,也可以用 /24 表示

/24 是网络位,24个 比特(bit )位,且为连续的24个1,

子网掩码长度一共32个bit,由两部分组成,网络位+主机位,本例中,网络位有24bit,剩下的8个bit就是主机位,用二进制形式表示,其范围是:

0000 0000 ~ 1111 1111

转成十进制形式:

0~255,

主机编号从0到255,共256个

/24 的网段里, 0用来表示本网段,作为网段地址使用,255用于表示网段中的广播地址,所以可用于表示主机的主机地址有254个,

这就是子网掩码的作用,

请注意,子网掩码中的1是连续的,不能出现一堆1里面夹着0的情况,
子网掩码中的0也同理,不能出现一堆0里面夹着1的情况。

比如,1111 1111.1111 0000.1111 1111.0000 1100,这样的子网掩码是不合法的,

请注意,下面的斜线模式指的是连续的1连续的0,1是连续的,0也是连续的,不能出现断开的情况,
比如,/16 指的是连续的16个1再接着16个连续的0,是这样的 11111111.11111111.00000000.00000000
而不能出现类似 11111111.00000000.11111111.00000000,这样的虽然也是16个1和16个0,但是,1不连续了,0也不连续了,所以是错误的子网掩码,

所以子网掩码只能是如下的列表中的一个:


/1 128.0.0.0 10000000.0.0.0
/2 192.0.0.0 11000000.0.0.0
/3 224.0.0.0 11100000.0.0.0
/4 240.0.0.0 11110000.0.0.0
/5 248.0.0.0 11111000.0.0.0
/6 252.0.0.0 11111100.0.0.0
/7 254.0.0.0 11111110.0.0.0
/8 255.0.0.0 11111111.0.0.0

/9 255.128.0.0 11111111.10000000.0.0
/10 255.192.0.0 11111111.11000000.0.0
/11 255.224.0.0 11111111.11100000.0.0
/12 255.240.0.0 11111111.11110000.0.0
/13 255.248.0.0 11111111.11111000.0.0
/14 255.252.0.0 11111111.11111100.0.0
/15 255.254.0.0 11111111.11111110.0.0
/16 255.255.0.0 11111111.11111111.0.0

/17 255.255.128.0 11111111.11111111.10000000.0
/18 255.255.192.0 11111111.11111111.11000000.0
/19 255.255.224.0 11111111.11111111.11100000.0
/20 255.255.240.0 11111111.11111111.11110000.0
/21 255.255.248.0 11111111.11111111.11111000.0
/22 255.255.252.0 11111111.11111111.11111100.0
/23 255.255.254.0 11111111.11111111.11111110.0
/24 255.255.255.0 11111111.11111111.11111111.0

/25 255.255.255.128 11111111.11111111.11111111.10000000
/26 255.255.255.192 11111111.11111111.11111111.11000000
/27 255.255.255.224 11111111.11111111.11111111.11100000
/28 255.255.255.240 11111111.11111111.11111111.11110000
/29 255.255.255.248 11111111.11111111.11111111.11111000
/30 255.255.255.252 11111111.11111111.11111111.11111100
/31 255.255.255.254 11111111.11111111.11111111.11111110
/32 255.255.255.255 11111111.11111111.11111111.11111111

2.反掩码
反掩码也可以用来表示一个网段,比如:0.0.0.255 ,表示这个网段的网络号是 /24 ,从而判断出主机号有256个,
子网掩码 255.255.255.0 表示一个网段的网络号是 255.255.255/24,主机范围是 0~256 即2⁸ (256)个
这么看来,反掩码 0.0.0.255 =255.255.255.0
作用相同,为啥又弄出一个反掩码捏,多此一举?!

看个例子:
要创建一个acl,只允许两个网段通过,
1.192.168.10.0/24
2.192.168.14.0/24

先来试试用子网掩码来解决这个问题,

因为10和14是不连续的,所以无论我们怎么掩,都会把11、12、13放进来, 10到14有5个数,
为了便于说明和理解,咱们先看2台主机,a.b.c.10a.b.c.14
因为 10 和14 是不连续的,相差了3个数(11、12、13),
要想把这两个ip放到同一个网段中,就需要至少能容纳8台主机的子网掩码(用容纳4台主机的子网掩码/30是不行的,不能同时装下10和14,所以只能选用/29的子网掩码),255.255.255.248/29
这样的子网掩码下,a.b.c.10 和 a.b.c.14就能在同一个网段了,
网段的范围是: a.b.c.8 、a.b.c.9 、a.b.c.10 、a.b.c.11、a.b.c.12 、a.b.c.13 、a.b.c.14 、a.b.c.15

把这两个ip放到同一个网段中,就能使用一条路由来表示a.b.c.10a.b.c.14这两个主机地址了

通过上面的a.b.c.10a.b.c.14的例子我们可以类比出,
要想将192.168.10.0和192.168.14.0放到一个路由条目里,需要使用的子网掩码是 /21
255.255.248.011111111.11111111.11111000.0
路由如下:

192.168.10.0 /21
或者192.168.14.0 /21
表示 192.168.10.0和192.168.14.0在同一个子网里,

虽然用子网掩码能完成将192.168.10.0192.168.14.0放到一个子网里,
但同时问题也出现了,
就是,192.168.8.0192.168.9.0192.168.11.0192.168.12.0192.168.13.0192.168.15.0
这6个网段也被包括进来了,
而我们的需求是,一条路由中只有192.168.10.0192.168.14.0这两个网段,没有其他的网段。

那么,这时候就需要反掩码登场了,

我们先来观察一下,
192.168.10.0和192.168.14.0 在二进制下是什么样子,不同之处在哪里,

192.168.10.0:11000000.10101000.00001010.00000000
192.168.14.0:11000000.10101000.00001110.00000000

可见,192.168.10.0和192.168.14.0的二进制表示形式中,只有红色字符所在的位置不同,其他位置一摸一样,
那么,根据反掩码的规则,0表示精确匹配,1表示可以是任意数值,我们现在只保留红色字符的那一位为1,其他位都置为0,就可以生成一个反掩码,

00000000.00000000.00001000.00000000

它的点分十进制的表示是:

0.0.4.0

为了方便理解,我们给这个反掩码变个样子,

00000000.00000000.0000X000.00000000

X所在的位置上,可以是任意值,即,可以是0也可以是1

同时,我们知道反掩码是不能单独存在的,反掩码必须跟着一个ip,
所以我们让这个反掩码跟着192.168.10.0,让它们之间相互作用,
当这个反掩码中除了x所在的位置以外,其他的所有位置的值都与192.168.10.0一模一样的时候,
就有:

11000000.10101000.00001`X`10.00000000

192.168.(1010+0x00.0

x0时,


192.168.(1010+0000)₂.0,
192.168.(1010)₂.0,
即192.168.10.0

x1时,


192.168.(1010+0100)₂.0,
192.168.(1110)₂.0,
即192.168.14.0

同理,让这个反掩码跟着192.168.14.0
除了X位之外的其他位置和192.168.14.0一模一样的时候,也有

192.168.(1010+0X00.0

x0时,


192.168.(1010+0000)₂.0,
192.168.(1010)₂.0,

即192.168.10.0

x1时,


192.168.(1010+0100)₂.0,
192.168.(1110)₂.0,

即192.168.14.0

它的点分十进制的表示:

0.0.4.0

让反掩码0.0.4.0192.168.10.0或者192.168.14.0结合起来,就可以表示192.168.10.0192.168.14.0这两个网段了,
表示形式如下:

192.168.10.0 0.0.4.0
或者
192.168.14.0 0.0.4.0

反掩码0.0.4.0可以唯一的标识192.168.10.0192.168.14.0这两段网络,而不会出现把其他网段也包括进来的情况了,
因为,反掩码 0.0.4.000000000.00000000.00001000.00000000)跟着192.168.10.0的时候,只有1的位置是可以变换的,变成0,就是192.168.10.0本身,变成1就是192.168.14.0
所以 0.0.4.0作用于192.168.10.0上的时候, 只能标识两个网段,即192.168.10.0192.168.14.0这两个网段,

这就是反掩码精确匹配的作用,是用子网掩码无法办到的。

一定要明确一个根本点,在反掩码中,有0的位置表示必须精确匹配这一位,1表示不关心这一位(是0是1都行),

还有一个往往容易被忽视的地方,那就是反掩码不能单独存在,反掩码是要跟着一个ip地址的(这个ip地址是一个具体的主机地址也可以是一个网络号,它们是一个整体,
举例:192.168.1.1 0.0.0.0 ,表示我们期待一个ip地址,并且这个ip地址的32个bit必须在每个位置上都与192.168.1.1一致,达到精确匹配的要求,所以,192.168.1.1 0.0.0.0 就表示的是 192.168.1.1 这个主机地址),也就是我们期待的目标是 192.168.1.1 这台主机,
再举例:192.168.1.0 0.0.0.255,表示我们期待一些ip地址,并且这些个ip地址的前24位必须与192.168.1.0这个网络号一致,达到精确匹配的要求,剩余的其他位置是什么都无所谓,我们并不关心,所以最终符合我们要求的ip地址有,192.168.1.0、192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4、……、191.168.1.254、192.168.1.255,这么多个,用子网掩码的形式来表示就是 ,192.168.1.0/24这个网段里所有的主机,

对反掩码的一切解读,都离不开它所跟随的ip地址,总是以这个ip地址为依据以这个ip地址为参考的,单独拿出一个反掩码来是没有任何意义的,

June the 06th 2022

浅谈为何需要反掩码inverse-mask wildcard-mask相关推荐

  1. linux下反删除软件,浅谈Linux文件系统反删除方法(二)

    列出的档有很多(这里找到2692个),第一字段是档节点号,第二字段是档所有者,第三字段是读写权限,接下来是档大小,占用块数,删除时间.然后就可以根据档大小和删除日期判断那些是我们需要的.比如我们要恢复 ...

  2. python去水印如何制作mask_浅谈图像处理中掩膜(mask)的意义

    刚开始涉及到图像处理的时候,在opencv等库中总会看到mask这么一个参数,非常的不理解,在查询一系列资料之后,写下它们,以供翻阅. 什么是掩膜(mask) 数字图像处理中的掩膜的概念是借鉴于PCB ...

  3. QQ密码保护与反保护浅谈

    QQ密码保护与反保护浅谈 Leen  记得刚学vc的时候,了解了一点hook,就感觉无所不能,这偷个扣扣的小密码不是轻而易举    结果发现是异想天开.. 先说说一种常用的预防键盘钩子钩去密码的方法, ...

  4. 浅谈反编译在项目中的使用

    浅谈反编译在项目中的使用 什么是反编译 反编译的作用 反编译工具 动态编程 JavaSsist 源码安全 什么是反编译 将可读性较好的高级计算机语言(JAVA,C#,C)转换成计算机能解读.运行的低阶 ...

  5. opencv运动目标跟踪预测_浅谈多目标跟踪中的相机运动

    ©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士生 研究方向|多目标跟踪 之前的文章中我介绍了 Kalman 滤波器,这个算法被广泛用于多目标跟踪任务中的行人运动模型.然而实际场 ...

  6. 浅谈多目标跟踪中的相机运动

    ©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士生 研究方向|多目标跟踪 之前的文章中我介绍了 Kalman 滤波器,这个算法被广泛用于多目标跟踪任务中的行人运动模型.然而实际场 ...

  7. 浅谈VB6.0中的实用技巧

    浅谈VB6.0中的实用技巧 (一) VB6.0中文本框处理技巧 在Visual Basic中,文本框(TextBox)是最常用的控件,熟练运用文本框 是开发出高质量的应用程序的基础.笔者在从事应用程序 ...

  8. 形态学滤波:腐蚀与膨胀(浅谈)

    形态学滤波:腐蚀与膨胀(浅谈) 一 关于二值化.膨胀.腐蚀以及拟合椭圆中心的代码如下** 二 关于腐蚀和膨胀,在此做一些浅显的总结. 三 对于上述代码中所生成的图片,进行一些说明. 四 接下来谈谈自己 ...

  9. aes key长度_原创 | 浅谈Shiro反序列化获取Key的几种方式

    点击"关注"了解更多信息 关于Apache Shiro反序列化 在shiro≤1.2.4版本,默认使⽤了CookieRememberMeManager,由于AES使用的key泄露, ...

最新文章

  1. boost::container模块实现分配器参数的测试程序
  2. Keiichi Tsuchiya the Drift King
  3. Combox使用的一些技巧
  4. 工作203:实现预览效果
  5. (pytorch-深度学习系列)CNN中的池化层-学习笔记
  6. echarts 关系 两个多个关系_情感归宿:异性聊天时,常用这些结束语的两个人,关系很难清白...
  7. “编程能力差,90%输在了这点上!”阿里巴巴工程师:其实都是瞎努力!
  8. 小心!智能音箱正在监听你?| 极客头条
  9. 掌握rm命令删除文件
  10. python入门指南_Python中的逻辑门–入门指南
  11. @transactional 可以定义到controller_仿照源码,手写一个自定义 Spring MVC 框架
  12. R语言基于ggplot绘制多条ROC曲线
  13. 阵列卡PERCH330_H730配置手册
  14. 三星手机怎么看html5,三星手机查看硬件信息方法
  15. [魔改整合] [Mod整合包] [1.12.2][Mod整合包]幸运贪婪超级整合-超多好玩的mod
  16. (附源码)springboot宠物管理系统 毕业设计121654
  17. 5x2cv配对t检验(5x2cv paired t test)
  18. 为什么程序员喜欢在半夜写代码?
  19. unity3d俄罗斯方块源码教程+源码和程序下载
  20. CSDN会员他到底有什么用?

热门文章

  1. 服务器型号惠普RX3600,HP RX2800 I2机架式小型机服务器使用说明
  2. 信号完整性分析7——传输线的物理基础
  3. IOS风工作总结计划PPT模板
  4. 使用xgplayer视频播放器播放视频时不显示总时长
  5. tplink改无线打印服务器,tplinkwifiwdr7500怎么设置usb打印服务器 | tplogin.cn
  6. CSS在浏览器不能加载出来的解决方案
  7. wm8960驱动调试问题集合
  8. 哪些大学计算机科研实力强?看看ESI前1‰计算机学科的大学
  9. canvas绘制时钟表盘
  10. 非形式逻辑(02)类比推理