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

子网掩码和通配符掩码的区别子网掩码子网掩码,官方的定义是一种用来指明一个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地址的正则表达式。

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

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

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

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

(0)


相关推荐

  • acwing-170. 加成序列(迭代加深)「建议收藏」

    acwing-170. 加成序列(迭代加深)「建议收藏」满足如下条件的序列 X(序列中元素被标号为 1、2、3…m)被称为“加成序列”:X[1]=1X[m]=nX[1]<X[2]<…<X[m−1]<X[m]对于每个 k(2≤k≤m)都存在两个整数 i 和 j (1≤i,j≤k−1,i 和 j 可相等),使得 X[k]=X[i]+X[j]。你的任务是:给定一个整数 n,找出符合上述条件的长度 m 最小的“加成序列”。如果有多个满足要求的答案,只需要找出任意一个可行解。输入格式输入包含多组测试用例。每组测试用例占据一行,包含

  • python py2exe_编写简单网页

    python py2exe_编写简单网页简介py2exe是 Python Distutils 的一个外部扩展,它可以把Python脚本转为可执行的Windows程序,无需安装Python即可运行.你可以在主页 SourceForge 得到更多资源. 说明py2exe可以把Python程序转为包,能够在其他没有安装Python 的电脑上运行。Pythonisneede

  • 新的Oracle网站登录界面

    新的Oracle网站登录界面

  • 常见的兼容性问题解决「建议收藏」

    常见的兼容性问题解决「建议收藏」所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的

  • 【STM32】HAL库 STM32CubeMX教程十—DAC「建议收藏」

    【STM32】HAL库 STM32CubeMX教程十—DAC「建议收藏」前言:本系列教程将对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用所用工具:1、芯片:STM32F407ZET6/STM32F103ZET62、STM32CubeMx软件3、IDE:MDK-Keil软件4、STM32F1xx/STM32F4xxHAL库知识概括:通过本篇博客您将学到:DAC工作原理STM32CubeMX创建…

  • 使用Exhibitor管理Zookeeper

    使用Exhibitor管理ZookeeperExhibitor是什么Exhibitor是一个为zookeeper而设计的管理工具,主要是以共享的方式管理zoo.cfg和myid文件,具体介绍参考:https://github.com/soabase/exhibitor/wiki本文中还涉及一个JavaServiceWrapper工具,它可以将java应用注册为Unix的守护进程,官网:https://wrapper.tan…

    2022年10月21日

发表回复

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

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