《IP地址相同、子网掩码不同的主机能够同时存在于一个局域网吗?》

一、提出问题

  1. 10.10.10.1/24 与10.10.10.1/25 能够同时存在于一个局域网吗?

二、阅读建议

  1. 如果您对“基于类别的IP地址分配”、“CIDR技术的出现”、“路由表及最长前缀匹配原则”等知识均已了解,那么可跳转至结论(3.4 理论分析结果)。
  2. 如若您对上述三部分知识较为生疏,那么笔者建议您顺序阅读。下面将从基于类别的IP地址分配出发,简要介绍CIDR技术的出现,紧接着介绍路由表及最长前缀匹配原则,最后分析问题、得出结论。

三、理论分析

3.1 基于类别的IP地址分配

3.1.1 IP地址结构与标准IP地址分类

IP地址结构
标准IP地址分类

3.1.2 三种主要标准分类IP地址的结构

  1. A类地址
    A类地址
  2. B类地址
    B类地址
  3. C类地址
    C类地址

3.1.3 常用三种类别IP地址的使用范围汇总

常用三种类别IP地址的使用范围汇总

3.1.4 专用IP地址

专用IP地址

3.1.5 IP地址的特点

IP地址的特点

3.1.6 基于类别的IP地址分配的缺点

  1. 如果一家公司需要超过254台但少于65534台的设备,那么他们只需申请一个B类网络。
  2. 由上述知识可知,一个B类网络能用于标识65534台主机,因此,该公司得到一个B类IP地址块后,只使用了其中的一部分IP地址,剩余的IP地址不能被其他人使用只能保持待使用状态,这就导致了大量IP地址资源的浪费。
  3. 由于上述基于类别的IP地址分配的缺点再加上互联网接入设备指数性增长,IP地址数量逐渐不够使用。为了解决IP地址不够使用的问题,在IPv6出现前,我们必须充分利用IPv4的IP地址资源以避免出现上述IP地址资源浪费问题,由此产生了CIDR技术。

3.3 CIDR:无分类域间路由技术

  1. 下面我将从自身理解出发,通俗化介绍CIDR技术。
    1. 首先,采用CIDR技术后,互联网不再使用“基于类别的IP地址分配”,即IP地址不再有A类、B类、C类的区分。所有的IP地址由某个IP地址管理机构负责分配(分配方法见下文)。
    2. 假如我要创办一个组织,组织内需要联网的设备数量大致在1000台,需要向IP地址管理机构(可能是ISP:因特网服务提供商)申请IP地址用于标识我创建的组织内的网络设备在互联网上的通信地址。
    3. IP地址管理机构收到请求后,依据我创建的组织规模(1000人左右),将例如10.10.2.0/23(00001010.0001010.0000010.00000001)分配给我创办的组织。其中,IP地址的后缀“/23”标识IP地址中网络位的个数,那么主机位所占位数为:32 - 23 = 9(位),可分配主机IP地址个数为:2^10 - 1 = 1023(个),满足我创建的组织内部设备联网需求。由此,一个笼统简易的CIDR技术使用过程便得以描述。
    4. 有人可能会问:“假如IP管理机构把10.10.2.0/23”分给了你,那万一有机构把10.10.0.0/16全部拿走了呢?你的IP地址不就被包含了吗?那互联网中岂不是会出现两个10.10.2.0?”
      1. 答:IP地址管理机构之所以叫做管理机构,就是因为它能对已使用的IP地址块进行记录。
      2. 如果有另一家机构申请到了10.10.0.0/16,尽管从逻辑上看,我的机构IP地址块10.10.2.0/23确实被包含了,但我的组织机构与被分配到IP地址块对应信息也是完整地被记录在IP地址管理机构中的,因此,申请到了10.10.0.0/16的另一家机构是不能使用10.10.2.0/23地址块的,这就保证了组织机构被分配到的IP地址在互联网中的唯一性。
    5. 有人可能又会问了:“另一家机构申请到了10.10.0.0/16,你的机构申请到的是10.10.2.0/23地址块,从逻辑上看,你的组织机构IP地址块10.10.2.0/23是在10.10.0.0/16较低层级的,如果你们两个机构不在同一片物理区域,一个在东北,一个在新疆,假设一个从海南出发的目的地址是10.10.2.1的数据包想到达你的组织机构,按照IP地址是分层的特性,也就是好像先要找到10.0.0.0的路由器,再找到10.10.0.0的路由器,这样的话会不会你的组织机构接收不到信息呢?也就是本来要发到你的机构的信息全都发到申请到了10.10.0.0/16的机构去了?”
      1. 答:要解释这个问题,我们就得知道路由器是怎么决定将数据包发送到哪个端口的,这里将概述路由表及最长前缀匹配原则。
        1. 借用一张参考资料中的图:图中最右侧的表格即为简易的路由表,其中“dest”即destination(目的网络地址),link为路由器的转发端口,我们以图中左侧的序号B目的地址171.15.15.0为例,讲解最长前缀匹配原则
          alt text
        2. 当携带着目的地址为171.15.15.0的数据包到达该路由节点后,路由器将依据数据包中的目的IP地址及路由器中的路由表选择该数据包下一个转发的端口。
        3. 路由表中的目的网络地址均带有网络位标识后缀“/k”,为了确定携带目的IP地址数据包应该发往哪个端口,就必须确定目的IP地址属于哪个端口对应的目的网络,而要判断是否属于同一网络,我们就需使用子网掩码来计算。
          1. 子网掩码是由连续的1和连续的0构成32位二进制数(与IPv4的IP地址位数相同),其中1表示该位为网络位,0表示该位为主机位,如11111111.00000000.00000000.00000000(255.0.0.0)即表示与该子网掩码搭配的IP地址的前8位是网络位,后24位是主机位。
          2. 在前文中我们讲过,CIDR分配IP地址时,使用“x.x.x.x/k”的格式,其中k表示该IP地址的网络位数量。以171.165.32.24/8为例,8代表171.165.32.24对应二进制格式10101011.10100101.00100000.00011000的前8位为网络位,后24位为主机位,我们如果只想知道171.165.32.24/8这个IP地址对应的是哪个网络,只需要得到其网络位171,其余主机位“置零”即可,因此,我们可利用逻辑“与”运算。
          3. 171.165.32.24/8(10101011.10100101.00100000.00011000)的子网掩码为11111111.00000000.00000000.00000000(255.0.0.0),对子网掩码和IP地址每位相“与”运算即可提取到171.0.0.0的网络地址10101011.00000000.00000000.00000000(171.0.0.0)。
          4. 因此,我们想判断两个IP地址是否属于同一网络(子网),只需使用该网络对应的子网掩码与两个IP地址分别做每位逻辑“与”运算,如果运算结果相同,即说明两个IP地址处于同一网络。
        4. 回到上文路由表的图,当路由器接收到目的地址为171.15.15.0的数据包后,依次将171.15.15.0和路由表中每一项网络地址对应的子网掩码做逻辑“与”运算。
        5. 经过运算,我们可以得出171.15.15.0同时满足171.0.0.0/8和171.0.0.0/10两个网络(读者需自行尝试计算),那么到底该发送到2号还是4号端口呢?
        6. 我们规定,路由表内使用最长前缀匹配原则。这里所说的前缀即网络位,那么“最长前缀匹配”翻译过来就是逻辑“与”运算后,得到的网络位数最多的那个网络,也就是该数据包将被发往的网络。
        7. 171.15.15.0和171.0.0.0/8的子网掩码的逻辑与结果为:10101011.00000000.00000000.00000000;171.15.15.0和171.0.0.0/10的子网掩码的逻辑与结果为:10101011.00000000.00000000.00000000(注意:加粗表示网络位)。
        8. 因此,171.15.15.0和171.0.0.0/10的子网掩码的逻辑与结果更长,即目的地址为171.15.15.0的数据包应当在该路由器内转发到4号端口,由此完成了数据包的路由工作。
      2. 回到问题中来,如果一个从海南出发的目的地址是10.10.2.1的数据包想到达我的组织机构,该数据包会一路进行最长匹配原则路由,如果一个路由节点中同时存在10.10.0.0/16和10.10.2.0/23,依照最长匹配原则,读者认为目的地址是10.10.2.1的数据包会被发送到哪个网络呢?
    6. 在上文中,我们曾提到过“基于类别的IP地址分配的缺点”,应用CIDR技术后,我们便可大幅度减少大量IP地址资源的浪费的问题。
  2. 为了更加充分利用IPv4中的IP地址资源,我们还可在CIDR基础上应用NAT技术,下面将在此基础上继续概述NAT。
    1. 上述CIDR技术描述过程中,我们申请了一个10.10.2.0/23地址块用于组织内部联网设备的IP地址分配。事实上,IPv4的IP地址资源0.0.0.0~255.255.255.255如果按照上述方式分配,虽然“IP地址资源的浪费”的问题能够得以解决,但IP地址不够用的问题该怎么解决?
    2. 在此,我们可利用NAT(Network Address Translation网络地址转换)技术。
    3. 我们可向管理机构申请一个x.x.x.x/32的IP地址,如10.10.10.10/32,即IP地址中所有位均为网络位,该IP地址唯一标识我们创建的组织(即该IP地址指向我们创建的组织机构网络的网关)。
    4. 虽然申请到的IP地址10.10.10.10/32均为网络位,即该IP地址块没有可划分的空间,但我们可以换个角度思考,我们所创建的组织内部是一个子网系统,子网内所有的设备若想要和互联网进行数据交互必须经过网关的路由处理,也就是说,对于互联网而言,互联网并不需要知道我所创建的组织机构内部是怎么分配IP地址的,互联网只需要将组织内部申请的资源交付到组织机构的网关即可,剩下的“最后一公里”由网关负责转运。那么我们可以思考,既然互联网只需要找到我们所在组织机构的网关,而不关心组织机构内部的网络,那么组织内部是不是相当于一个私域呢?我们是否可以在组织机构内部建立一个“小互联网”呢?
    5. 答案是肯定的,运用NAT技术,我们只需在NAT中将10.10.10.10/32转换为子网内网关接口IP地址192.168.0.0/16(或172.16.0.0/20或10.0.0.0/8),那么,在我们的组织机构网络私域中,我们相当于可以分配216个IP地址,这216个IP地址就叫做所谓的“私有IP地址”,而10.10.10.10/32便叫做“公有IP地址”。在私有IP地址下,我们便可对子网按照自己的需求进行进一步划分。
    6. 通过NAT方式,我们便可充分节省IP地址(公有),从而缓解当下IP地址不够用的问题。
  3. 综上,我们概述了“基于类别的IP地址分配”、“CIDR技术的出现”、“NAT技术”、“路由表及最长前缀匹配原则”,下面,我们将重回起始问题,进行分析解答。

3.4 理论分析结果

  1. 由题目描述可见,两个IP地址使用的是CIDR的IP地址划分方法(x.x.x.x/k)。
  2. 10.10.10.1/24:00001010.0001010.0001010.00000001(加粗为网络位、其余为主机位)
  3. 10.10.10.1/25:00001010.0001010.0001010.00000001(加粗为网络位、其余为主机位)
  4. 我们将从三个角度去看这个问题~
  5. 一、从互联网向局域网方向看:
    1. 假设该局域网内存在上述两类IP地址,
    2. 首先从互联网发送一个目的地址为10.10.10.1的数据包,经过路由后到达该局域网网关。
    3. 假设网关路由表中存有两项路由,一项通往10.10.10.1/24,另一项通往10.10.10.1/25。
    4. 由最长前缀匹配原则知,我们的目的IP地址10.10.10.1和10.10.10.1/25的匹配前缀更长,所以转发到对应端口,即10.10.10.1/24属于无效匹配项。
    5. 因此,假设10.10.10.1/24和10.10.10.1/25均处于该局域网,10.10.10.1/24主机永远接收不到目的IP地址为10.10.10.1的数据,那么对互联网来说相当于不存在。
  6. 二、从局域网内部看:
    1. 假设该局域网内存在上述两类IP地址,
    2. 局域网内另一台主机10.10.10.2/25想给10.10.10.1/25发数据。
    3. 经过网络层IP地址检查,发现自己和对方处于同一子网,因此开始分析ARP表项。
    4. 假设没有找到10.10.10.1对应的MAC地址,因此向子网内发送询问10.10.10.1的MAC地址广播。
    5. 广播经过交换机转发后,10.10.10.1/25和10.10.10.1/24均收到广播(我们已假设10.10.10.1/25和10.10.10.1/24处于同一子网),两个主机解包后均发现询问的是自己的MAC地址,两个主机查询10.10.10.2/25发现均和自己处于同一子网,因此均返回ARP响应并附带自己的MAC地址。
    6. 经过以上过程,10.10.10.2收到了一个10.10.10.1对应的两个不同MAC地址(分别是10.10.10.1/25主机和10.10.10.1/24主机的MAC地址),由此产生错误(可能是丢弃、可能是报错,总之ARP缓存表中一定存在查错机制使得一个IP地址只能对应一个MAC地址)。
    7. 因此,10.10.10.1/25无法与10.10.10.1/25取得联系,即10.10.10.1/25和10.10.10.1/24不能同时存在于局域网中。
  7. 三、从CIDR划分角度看
    1. 假设一个组织或机构被允许拥有10.10.10.x/24地址块。
    2. 如果该组织机构没有对10.10.10.x/24地址块进行更进一步划分,那么仅有10.10.10.1/24存在于该局域网,即局域网内不会存在拥有/25后缀的IP地址。
    3. 如果该组织机构借用了一个主机位用于10.10.10.x/24地址块内的子网划分,即划分为10.10.10.0/25(00001010.0001010.0001010.00000000)和10.10.10.128/25(00001010.0001010.0001010.10000000),那么仅有10.10.10.1/25存在于该局域网,即局域网内不会存在拥有/24后缀的IP地址(注意:10.10.10.0/24是网关连接外部互联网的接口的IP地址,用于标识10.10.10.x/24地址块,该接口不属于/25的子网)。
    4. 因此,该组织机构是否对地址块进行划分这个条件是互斥的,即“10.10.10.1/24存在于该局域网内”和“10.10.10.1/25存在于该局域网内”这两个事件是互斥的(互斥即不可能同时发生),可见伪代码表述:
if(该组织机构没有对10.10.10.x/24地址块进行更进一步划分)仅有10.10.10.1/24存在于该局域网;
else if(该组织机构借用了一个主机位用于10.10.10.x/24地址块内的子网划分)仅有10.10.10.1/25存在于该局域网;

四、实验验证

PC0分配IP地址成功
PC1分配IP地址失败

五、得出结论

  1. 因此:10.10.10.1/24 与10.10.10.1/25 不能同时存在于一个局域网。

六、参考文章

  1. CSDN:CIDR地址块及其子网划分
  2. CSDN:无类别域间路由(Classless Inter-Domain Routing, CIDR):理解IP网络和子网划分(传统的IP地址类ABCDE:分类网络)子网掩码
  3. 计算机网络(4) 最长前缀匹配(路由转发表)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/826789.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HDFS-HA搭建

一、进行准备工作 1、防火墙 service firewalld stop2、时间同步 yum install ntp ntpdate -u s2c.time.edu.cn或者 date -s 201805033、免密钥 (远程执行命令) 在两个主节点生成密钥文件 ssh-keygen -t rsa ssh-copy-id ipmaster-->master,node1,node2 node1-->master…

HDFS 高可用集群的搭建

HDFS 高可用集群的搭建 由于条件限制,电脑只够我开3台虚拟机,所以我们就用这3台虚拟机搭建一个HDFS的高可用。 在搭建之前我们先来理清一下3台虚拟机master,node1,node2分别会有哪些进程在高可用集群中会有2个NameNode,一个是活跃的(ANN),一个是备用的(SNN),每一个N…

高级语言程序设计课程第六次个人作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/2024C/ 这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/2024C/homework/13303 学号:102400121 姓名:林永庆 12345678 把二维数组转换为一维数组91011 多个函数返回值判断12总结:菜就多练 反思:菜就多练…

DNA Subway:一个综合性的生物信息学资源平台

DNA Subway 是一个综合性的生物信息学资源平台,由 CyVerse 开发,旨在提供一个教育性的生物信息学平台,通过将研究级的生物信息学工具、高性能计算和数据库整合到工作流程中,使得用户能够通过一个易于使用的界面进行基因预测、基因注释、基因组分析、系统发育分析和下一代测…

CapsLock+,Windows 上的快捷键神器

提高你 20% 的效率​ 我们在文字编辑时,经常会遇到一个问题:键盘的方向键「上下左右」离主键位区挺远的,如果要移动光标的方向就得挪右手过去操作方向键(或者用鼠标)。 对于经常码字(或敲代码)的人来说,这其实是非常麻烦的一件事。因为大多数时候,一篇文章或代码不是一…

学习思维导图和AI的记录

mermaid代码为:graph LRA --> A1[《Head First 嗨翻C语言》第九章]A1 --> B[函数指针]A1 --> C[动态内存分配]A1 --> D[结构体]A1 --> E[联合体]B --> B1[声明]B --> B2[使用]B --> B3[回调函数]C --> C1[malloc]C --> C2[calloc]C --> C3[f…

Windows-DHCP

AppSrv、RouterSrv 服务 DHCP(AppSrv) 安装和配置dhcp服务,为办公区域网络提供地址上网。 创建地址池名为inside_pool,地址池范围:192.168.0.1-192.168.0.100。 根据题目要求正确配置网关和dns信息。 配置故障转移 设置为“热备用服务器”模式。 伙伴服务器“DC2”为“待机…

本地调试远程服务

1、场景 ​ 通常来说我们的服务都是部署在各种远程服务器上的,本地开发完成部署到服务器长期运行。当线上出现问题的时候,或者远程出现问题的时候我们经常需要打印一些日志来判断问题所在。还有一种情况是本地开发环境正常,但是部署到远程环境就会出现各种神奇的问题,这个…

把握人工智能行业脉搏!全球最值得关注的7大AI资讯平台

序言:全球顶级的人工智能资讯网站都是以英文语言为主,如果大家看不懂,没关系,作者教大家一个技巧,用人工智能直接帮您看,然后直接让AI解析出您关注的重点内容给您,如果想了解详细信息,让人工智能一字不漏的翻译给你,就这么简单粗暴。在瞬息万变的人工智能领域,获取最…

Hadoop高可用搭建

搭建前准备(检查是否满足以下条件) 1、关防火墙 service firewalld stop2、时间同步 yum install ntp ntpdate -u s2c.time.edu.cn 或者 date -s 201805033、免密钥 (远程执行命令) 在两个主节点生成密钥文件 ssh-keygen -t rsa ssh-copy-id ipmaster-->master,node1,no…

【bypass系列】绕过命令过滤器:探索Unix/Linux中的Bypass技术

原创 visionsec 安全视安免责声明 该公众号分享的安全工具和项目均来源于网络,仅供安全研究与学习之用,如用于其他用途,由使用者承担全部法律及连带责任,与工具作者和本公众号无关。在Unix或Linux系统的安全测试和网络防御中,了解如何绕过命令过滤器是非常重要的。今天,我…

群晖数据自动同步百度云盘

1、在群晖后台打开应用 Cloud Sync应用(没有需自己安装)。 2、选择百度云 3、这里需要注意下,同步实际上是以下这两个文件夹同步,并不是百度云的根目录, 1、群辉nas:/homes/zhanglei/百度网盘 2、百度网盘:我的应用数据 ->Cloud Sync 另外建议:设置中的同步方向修改…