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

子网掩码和通配符掩码的区别子网掩码子网掩码,官方的定义是一种用来指明一个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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 指针函数到函数指针作为函数的返回值

    指针函数到函数指针作为函数的返回值转载自:https://www.cnblogs.com/yangjiquan/p/11465376.html首先说一下指针函数:1.指针函数的定义顾名思义,指针函数即返回指针的函数。其一般定义形式如下:类型名*函数名(函数参数表列);其中,后缀运算符括号”()”表示这是一个函数,其前缀运算符星号”*”表示此函数为指针型函数,其函数值为指针,即它带回来的值的类型为指针,当调用这个函数后,将得到一个”指向返回值为…的指针(地址),”类型名”表示函数返回的指针指向的类…

    2022年6月22日
    24
  • Python与数据库之学员管理系统「建议收藏」

    Python与数据库之学员管理系统「建议收藏」学院管理系统:一、系统需求二、准备程序⽂件1.分析2.创建程序⽂件三、书写程序1.main.py2.student.py3.managerSystem.py四.总结一、系统需求使⽤⾯向对象编程思想完成学员管理系统的开发,具体如下:系统要求:学员数据存储在MySQL数据库中系统功能:添加学员、删除学员、修改学员信息、查询学员信息、显示所有学员信息、保存学员信息及退出系统等功能。保存学院信息功能可以实现将学员信息每秒自动保存至数据库中。二、准备程序⽂件1.分析为了⽅便维护代码,⼀般⼀个⻆⾊

    2022年9月2日
    6
  • c语言fread6,c语言中fread的用法「建议收藏」

    c语言fread6,c语言中fread的用法「建议收藏」fread是以记录为单位的i/o函数,fread和fwrite函数一般用于二进制文件的输入输出。下面小编就跟你们详细介绍下c语言中fread的用法,希望对你们有用。c语言中fread的用法如下:#includesize_tfwrite(constvoid*ptr,size_tsize,size_tnmemb,file*stream);返回值:读或写的记录数,成功时返回的记录数等…

    2025年8月31日
    4
  • Java SSM练手小项目-手把手带你搭建一个基于SSM框架的人力资源管理后台系统

    Java SSM练手小项目-手把手带你搭建一个基于SSM框架的人力资源管理后台系统前言相信很多小伙伴在学习完SSM三大架构以后,不知道该如何找到一个简单容易上手的项目进行实战训练,经常在博客上看到一个不错的项目下载下来以后全部都是代码,无处下手。因此本文力求以最简单易懂的项目结构和代码搭建一个还较为完整(即从登录到退出的整个流程)的后台系统。(适合新手)整个项目的操作流程动态图如下(由于CSDN对上传图片大小有限制,这里录制的gif画面很不清晰,点击图片查看更清晰):…

    2022年6月15日
    30
  • List转set_JAVA数组转set内容不一致

    List转set_JAVA数组转set内容不一致list集合和set集合的相互转化

    2022年10月9日
    3
  • php页面最大执行时间 set_time_limit函数不起作用

    php页面最大执行时间 set_time_limit函数不起作用

    2021年10月18日
    36

发表回复

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

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