子网掩码和通配符掩码的区别

子网掩码和通配符掩码的区别子网掩码子网掩码,官方的定义是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。说白了子网掩码的工作原理就是,它拥有和主机IP地址一样的位数,每一位与对应的ip地址位进行“与”操作,得出的结果就是主机所在的子网,打个比方,…

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

子网掩码

子网掩码,官方的定义是

一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

说白了子网掩码的工作原理就是,它拥有和主机IP地址一样的位数,每一位与对应的ip地址位进行“与”操作,得出的结果就是主机所在的子网,打个比方,192.168.1.1 255.255.255.0这是一个标准的C类网络,子网掩码/24,所以它的网络位也就是所在的子网就是192.168.1.0,计算过程如下:

首先将192.168.1.0 和 255.255.255.0 转换成二进制,然后一位一位的上下进行与操作,很显然我们得出的结果为

1100 0000. 1010 1000.0000 0001.0000 0001:192.168.1.1

1111 1111.1111 1111.1111 1111.0000 0000 :255.255.255.0

1100 0000.1010 1000.0000 0001.0000 0000:192.168.1.0

子网掩码有一个最基本的要求,1和0必须连续,也就是说不能出现1111 1111.1111 0011.0000 0000.0000 0000这种情况。

而根据上面的计算,我们可以看出,子网掩码后面的0的个数就是IP地址主机位的个数,抛去网关使用(1个到3个根据不同的冗余配置),组播(全1),网段(全0)后剩下的就是实际子网中能容纳的主机数(再说细致就是划分子网的知识了,在这里不多赘述)。

综上所述,子网掩码的作用就是让我们知道IP地址所属的网段。我们来实际看一下子网掩码出现的位置:

  1. 设备端口ip地址配置:ip add 192.168.1.1 255.255.255.0

  2. 路由汇总中,如将下面四个地址汇总:192.168.20.0 255.255.252.0

    192.168.20.1/24

    192.168.21.1/24

    192.168.22.1/24

    192.168.23.1/24

  3. 在前缀列表中,如:ip prefix-list 1 permit 192.168.1.0/24,意为我只关心192.168.1.0/24网段的路由。

  4. 其他一些需要限制具体网段的时候

通配符掩码

通配符掩码,很多人认为通配符掩码只是子网掩码的相反,如:192.168.1.1 子网掩码255.255.255.0,它的通配符掩码就是0.0.0.255,其实不是。官方对通配符掩码给的定义是:

路由器使用的通配符掩码与源或目标地址一起来分辨匹配的地址范围,它与子网掩码不同。它不像子网掩码告诉路由器IP地址的哪一位属于网络号一样,通配符掩码告诉路由器为了判断出匹配,它需要检查IP地址中的多少位。

换句话说,子网掩码更像是我们了解的正则表达式,它是将IP地址看成一个二进制字符串,而我们只关心其中几位,它的计算方式与子网掩码也有不同,通配符掩码是0的位置使我们必须要确定相同的,而通配符掩码是1的位置使我们不关心的,如在路由协议中我们想将192.168.1.0网段的所有主机都宣告进入路由协议中,我们使用的语句是:

network 192.168.1.0 0.0.0.255

这里的计算方法是:

1100 0000. 1010 1000.0000 0001.0000 0000:192.168.1.0

0000 0000.0000 0000.0000 0000.1111 1111:0.0.0.255

所以我们关心的只是前几位,只要IP地址是为192.168.1.x格式的就宣告进路由协议。说到这里通配符掩码和子网掩码可能最本质的一点不同就是通配符掩码不需要1和0必须连续,就比如192.168.0.0 通配符掩码是0.0.2.255

我们转换成二进制:

1100 0000. 1010 1000.0000 0000.0000 0000:192.168.0.0

0000 0000.0000 0000.0000 0010.1111 1111:0.0.2.255

注意这里通配符掩码是不连续的,所以这个通配符掩码代表的意思是匹配192.168.1.0/24和192.168.2.0/24两个网段的所有主机。

我们来看一下通配符掩码出现的场合:

  1. 将IP地址宣告进路由协议:network 192.168.1.0 0.0.0.255

  2. ACL访问控制列表:ip access-list 1 permit 192.168.0.0 0.0.2.255

这里和前缀列表中的ip prefix-list 1 permit 192.168.1.0/24做一下比较,ACL访问控制列表的意思是我抓取一切IP地址满足192.168.0.x和192.168.1.x格式的无论它的掩码是/24,/25,/30我都感兴趣,但前缀列表中192.168.1.0/24得意思是我只关心192.168.1.0/24网段的路由,所有不属于这个网段的比如IP地址也是192.168.1.x格式但掩码是/25的IP地址我也不感兴趣。

相信经过这么一番解释,大家能对子网掩码和通配符掩码有了写基本的区分。总结一下,就是说,子网掩码是用来区分网络位和主机位,而通配符掩码是IP地址的正则表达式。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 细粒度图像分析_图像分类研究现状

    细粒度图像分析_图像分类研究现状一、概述什么是细粒度图像分类细粒度图像分类问题是对大类下的子类进行识别。细粒度图像分析任务相对通用图像(General/GenericImages)任务的区别和难点在于其图像所属类别的粒度更为精细。以图1为例,通用图像分类其任务诉求是将“袋鼠”和“狗”这两个物体大类(蓝色框和红色框中物体)分开,可见无论从样貌、形态等方面,二者还是很容易被区分的;而细粒度图像的分类任务则要求对“狗”该类类别……

    2022年10月4日
    2
  • CentOS如何增加虚拟内存?「建议收藏」

    CentOS如何增加虚拟内存?「建议收藏」swap分区的创建1、查看磁盘使用情况2、添加Swap分区使用dd命令创建名为swapfile的swap交换文件(文件名和目录任意):3、对交换文件格式化并转换为swap分区4、挂载并激活分区5、查看新swap分区是否正常添加并激活使用6、修改fstab配置,设置开机自动挂载该分区7、查看是否已经使用了交换内存更改Swap配置查看当前的swappiness数值…

    2022年9月27日
    4
  • pycharm中彻底删除一个工程的步骤_ios已购项目永久删除

    pycharm中彻底删除一个工程的步骤_ios已购项目永久删除第一步    File——>CloseProject找到要关闭的项目,点击×。第二步    找到该项目保存的路径,shift+del永久删除。

    2022年8月28日
    9
  • Java工程师自我评价(软件工程师自我评价)

    JAVA工程师简历自我评价无论在学习、工作或是生活中,我们都可能会使用到自我评价,自我评价具有重要的社会功能,它极大地影响人与人之间的交往方式。那要怎么写好自我评价呢?以下是小编收集整理的JAVA工程师简历自我评价,仅供参考,希望能够帮助到大家。JAVA工程师简历自我评价11、有较强的分析、解决问题的能力,具有较强逻辑思维能力和表达能力。2、性格开朗,积极乐观,能以极大的’热情投入工作。3、具…

    2022年4月15日
    47
  • PhpStorm中如何使用Xdebug工具,入门级操作方法

    PhpStorm中如何使用Xdebug工具,入门级操作方法

    2021年10月14日
    47
  • 缓存穿透、缓存击穿、缓存雪崩区别和解决方案[通俗易懂]

    一、缓存处理流程   前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。     二、缓存穿透    描述:    缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导…

    2022年4月3日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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