反掩码与通配符掩码[通俗易懂]

反掩码与通配符掩码[通俗易懂]掩码我们学数通的应该都很熟悉,我们刚刚学习IP的时候肯定都学过,这里就不在叙述。今天我们要说的是反掩码和通配符掩码,反掩码相信大家也都不陌生,我们配置OSPF的时候都能用的到但是很多网工也就知道配置OSPF就要那么配置,用255.255.255.255减去正掩码就是反掩码,但是反掩码是啥却说不出来。反掩码掩码顾名思义就是正掩码反过来,正掩码是连续的1和0构成,用来…

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

   掩码我们学数通的应该都很熟悉,我们刚刚学习IP的时候肯定都学过,这里就不在叙述。

   今天我们要说的是反掩码和通配符掩码,反掩码相信大家也都不陌生,我们配置OSPF的时候都能用的到但是很多网工也就知道配置OSPF就要那么配置,用255.255.255.255减去正掩码就是反掩码,但是反掩码是啥却说不出来。


 

 反掩码

 掩码顾名思义就是正掩码反过来,正掩码是连续的1和0构成,用来区分网络部分和主机部分,1对应网络位,0代表主机位。

反掩码与通配符掩码[通俗易懂]

而反掩码正好相反,由连续的0和1组成,0必须匹配,1无需匹配一般用在路由协议中,比如我们最熟悉的OSPF宣告网段时

反掩码与通配符掩码[通俗易懂]‘’

这就表示宣告了一个掩码前缀为24的网段,用我们的计算公式255.255.255.255-255.255.255.0=0.0.0.255,一般来说大家都是这么配置的,也没什么问题,但是一旦别人问你,特别是你的客户问你什么是反掩码,你总不能说,“不用知道什么是反掩码,只要会用就行了。”这句话的吧,所以我们在会用的同时也要知道它是什么。

反掩码与通配符掩码[通俗易懂]

如上面我们在OSPF中宣告的这个网段,按照0必须匹配,1无需匹配的规则,我们可以知道红线左边都是0也就是说192.168.1被0匹配不能改变,而红线右边全为1,意思就是把IP地址写成二进制后,后8位可以为任意的0和1,因为通配符1无需匹配的,它并不关心你对应的IP地址到底是1还是0。也就是说你IP地址是192.168.1.15也行,是192.168.1.200也行都能被0.0.0.255匹配上。

 


通配符

在说通配符之前我们先看几张图

反掩码与通配符掩码[通俗易懂]

反掩码与通配符掩码[通俗易懂]

很显然我们在配IP地址的时候,红圈里提示我们的是“IP ADDRESS MASK”IP地址的掩码

而我们在配ACL的时候,红圈里显示的是WILDCARD,就是通配符的意思。

通配符是由任意的0和1组成,一般用于ACL中,和反掩码一样也是按照0必需匹配,1无需匹配的原则来进行匹配的。

这个任意的0和1组成是什么意思?我们来通过几条ACL语句来感受一下:

通配符我可以这样写:

反掩码与通配符掩码[通俗易懂]

也可以这样写

反掩码与通配符掩码[通俗易懂]

还能这么写

反掩码与通配符掩码[通俗易懂]

如果说前面的你都能理解的话,那还有更花里胡哨的,我还能这么写:

反掩码与通配符掩码[通俗易懂]

这下就不好理解了吧,通配符难就难在这个地方。

我们来看下ACL 2001里的配置

反掩码与通配符掩码[通俗易懂]

大家此时会发现我们写的ACL语句到了ACL配置里就变了,怎么回事呢,我们把它们化成2进制就能看清楚了。

拿rule permit source 2.2.2.2 1.2.3.4这条语句为例;

反掩码与通配符掩码[通俗易懂]

由0必须匹配,1无需匹配的原则,我们可以看出把2.2.2.2化成二进制后首尾8位有个1被匹配了也就是说这个值不能改变,所以这条ACL匹配的对应IP地址可以为2.0.0.2也可以为3.0.0.2,也可以是3.2.3.6。

 

如何匹配192.168.10.0/24这个网段里所有的奇数主机?

根据上面所叙述的,0必须匹配1无须匹配的原则,我们只要保证把地址化成八位二进制后最后一位固定为1就行了

反掩码与通配符掩码[通俗易懂]

写成ACL的话就是 rule per so 192.168.0.1 0.0.0.254


总结

反掩码与通配符掩码[通俗易懂]

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/161516.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • ES6数组去重的三个简单办法

    ES6数组去重的三个简单办法ES6数组去重的三个简单办法简单说一下利用ES6实现数组去重的三个办法。第一种:利用Map对象和数组的filter方法贴上相关代码打印后的结果通过打印我们发现,确实实现了我们想要的效果。那么下面简单来解释一下。1.Map对象是ES6提供的一个新的数据结构,其中has的办法是返回一个布尔值,表示某个值是否存在当前的Mp对象之中,set的办法是给Map对象设置key/value。2…

  • 虚拟机vmware workstation安装_linux安装出现dracut

    虚拟机vmware workstation安装_linux安装出现dracut在VMwareWorkstation中安装了RedFlagLinuxDesktop觉得界面以及操作与Windows没什么两样。那末他的优点在哪里呢?我为什么要放弃用了几年的MSWindows来使用这个系统呢? 转载于:https://blog.51cto.com/89000/11249…

  • python 去除字符串中指定字符[通俗易懂]

    python 去除字符串中指定字符[通俗易懂]python中的strip()可以去除头尾指定字符ss=’我的电话是18827038663,也是微信号,\n请加入,谢谢\n\n\n’print(ss.strip(‘\n’))结果:我的电话是18827038663,也是微信号,请加入,谢谢可以看到只能删除头尾指定字符。想要去除中间字符,可以使用replace()函数ss=’我的电话是188270386…

  • zencart模板如何设计「建议收藏」

    zencart模板如何设计「建议收藏」ZenCart的模板设计比较复杂,需要一定的时间来熟悉。一旦你了解了它的结构,就会慢慢习惯了。  首先要阅读常见问答部分的:如何添加、制作新模板。ZenCart的设计没有什么特别,与以前设计HTML页面是一样的。只是整个页面分成了好几个部分,并加入了PHP代码。  通常,页面分为页眉(header),页脚(footer),边框(sideboxes)。所以设计页面的时候

  • c语言字符串去重_putchar输出字符串

    c语言字符串去重_putchar输出字符串输入一串字符,然后去重。如:输入aaabbbbd;输出应为abd;#include<iostream>#include<string>usingnamespacestd;intmain(){intn;cin>>n;//n表示你要处理多少组stringa;//定义字符串for(inti=0;i<n;…

    2022年10月31日
  • 完美解决C#中拖动splitContainer分割线时显示虚线问题

    完美解决C#中拖动splitContainer分割线时显示虚线问题完美解决C#中拖动splitContainer分割线时显示虚线问题

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号