计算机基础百科-彻底搞懂子网掩码(Subnet Mask)与CIDR的地址掩码(Address Mask):从困惑到清晰

在我之前的博文中网络基础科普:IP地址是什么?MAC地址是什么?它们如何协同工作?,我们了解到,IP地址的编址方式经历了有类IP,子网划分,CIDR三个阶段。而对于其中的网掩码(Subnet Mask)与CIDR的地址掩码(Address Mask),有些人可能会感到困惑,两者到底有什么区别?

很多初学者会有这样的困惑:255.255.255.0/24 看起来就是一回事,那么"子网掩码"和"CIDR的地址掩码"到底有什么区别?

CIDR(无分类域间路由选择),我们通常说的无类域间路由,是目前互联网IP地址编址的基石。你现在见到的几乎所有IP编址方式,本质上都属于CIDR。

可以明确的一点是,在计算和使用方式上,两者确实完全等效。它们的核心区别,源于分类IP的"网络号"与CIDR的"网络前缀"这两个概念的根本不同。

核心区别:网络号 vs. 网络前缀

区别总结如下(个人总结,可能不完整):

  1. 有类vs无类:子网掩码是依附于分类IP地址(A、B、C类)的补充,它本身不改变IP的分类结构;而CIDR则彻底抛弃了A、B、C类的概念,是一种全新的、无类的编址方案。

  2. 地址结构不同 :子网掩码将分类IP的二级结构网络号.主机号细化为三级结构网络号.子网号.主机号,增加了一定的灵活性,但仍有局限。CIDR则回归二级结构,但将其定义为(网络前缀.主机号),带来了极大的灵活性。

  3. 掩码长度的设定:在传统子网划分中,一个网络内所有子网的掩码长度通常是相同的(固定长度子网)。CIDR则支持变长子网掩码(VLSM),可以根据需要灵活使用不同长度的前缀。

  4. 路由寻址逻辑不同 :传统路由依赖网络号进行查找,而CIDR路由则基于网络前缀,并采用最长前缀匹配原则,这使得路由聚合和精细控制成为可能。

  5. 特殊地址的使用:在早期有类子网划分中,为了避免歧义,子网号全0和全1的网段通常被保留不可用,这导致了IP地址的浪费。CIDR则允许使用全0和全1的子网(需谨慎,取决于具体实现),甚至可以使用32位掩码(如192.168.1.1/32)来表示一个特定主机地址。

  6. 表示法:CIDR使用斜杠(/)加前缀长度的表示法(如192.168.1.0/24),比点分十进制掩码更简洁、更直观。

  7. 路由聚合:CIDR的一个核心优势是支持路由聚合(也称超网),能将多个连续的小网段合并成一个大的路由条目,从而大幅缩小互联网的路由表。这是传统有类网络无法做到的。

简单来说:CIDR彻底抛弃了A、B、C的分类枷锁。你永远不需要再问"这是B类IP吗?",只需要问"这个IP的掩码/前缀是多少?"

透过现象看本质:两个例子让你彻底理解

示例1:路由聚合(超网)

假设你有一家公司,需要两个连续的C类地址(192.168.0.0 和 192.168.1.0)来容纳300台设备。

复制代码
有类网络+子网掩码的视角:192.168.0.0 和 192.168.1.0 是两个独立的C类网络。在传统的网络观念里,它们天生就是隔离的,必须通过路由器三层设备才能互通。因此,你需要在外部的路由器上配置两条路由,分别指向这两个网络。

CIDR的视角:既然没有了网络号的限制,我们可以将这两个连续的网段看作一个整体。只需使用192.168.0.0/23(掩码为255.255.254.0)这个新网络,就能把两个C类地址无缝合并。对外部路由器来说,它只需要知道一条指向192.168.0.0/23的路由即可。如果你还用传统有类的眼光看255.255.254.0,会觉得它"不伦不类",但在CIDR的世界里,这是完全合法且高效的。

示例2:

使用有类子网掩码时,子网数是根据子网号subnet-id计算出来的。若subnet-id有n位,则共有2n种可能的排列。除去全0和全1这两种情况,就得出表中的子网数。

让我们以C类网络 192.168.1.0 为例,看看使用掩码 255.255.255.192(即借2位作为子网号)时,传统与现在的区别。

对于C类IP 192.168.1.0,它拥有1个网络号192.168.1.0和广播地址192.168.1.255

使用传统子网掩码时

在早期的RFC标准中,为了避免歧义,规定子网号部分不能全为0或全为1。

无论使用任何掩码划分子网,所有子网,都共用这个C类IP的1个网络号和广播地址。

例如使用掩码255.255.255.192划分网络时,向网络号借了2位,即最后一段掩码是xx000000,这两位可以是00,01,10,11,即:

子网 借位 IP范围 子网地址 子网广播地址 状态与原因
1 00 000000 0-63 192.168.1.0 192.168.1.63 不可用(与主网络号冲突)
2 01 000000 64-127 192.168.1.64 192.168.1.127 可用
3 10 000000 128-191 192.168.1.128 192.168.1.191 可用
4 11 000000 192-255 192.168.1.192 192.168.1.255 不可用(子网与主网络广播地址冲突)

正是因为这两个特殊子网(全0和全1)被禁用,虽然划分出了4个子网,但实际能用的只有中间的2个,浪费了一半的IP地址。在当时,这种"浪费"是为了避免路由歧义和广播泛滥,保证网络的稳定。

使用CIDR无类编址

在CIDR的世界里,192.168.1.0 这个C类网络的概念已经不存在了。我们面对的是一个可以自由切割的地址空间192.168.1.0/24

当我们用/26掩码去划分它时,它被分成了4个独立的、地位平等的网络:

子网 网络前缀 IP范围 网络地址 广播地址 状态
1 192.168.1.0/26 0-63 192.168.1.0 192.168.1.63 可用
2 192.168.1.64/26 64-127 192.168.1.64 192.168.1.127 可用
3 192.168.1.128/26 128-191 192.168.1.128 192.168.1.191 可用
4 192.168.1.192/26 192-255 192.168.1.192 192.168.1.255 可用

因为没有了那个唯一的"主网络号"和"主广播地址",这4个网段各自拥有独立的网络地址和广播地址,彼此之间泾渭分明,互不冲突。因此,在支持CIDR的现代网络中,全0和全1的子网都是可以正常使用的(通常需要通过命令如 ip subnet-zero 来启用,现代设备往往默认支持)。

通过这个对比,相信你能更清晰地看到:子网掩码是在有类框架下"打补丁",而CIDR则是从根本上重构了IP地址的哲学。


参考

计算机网络(第6版)》------谢希仁编著

相关推荐
haosend6 天前
【练习版】使用paramiko批量的查询,管理,配置路由器交换机
python·路由器·交换机·网络自动化
haosend7 天前
极简小白Python教程-实现能基本看懂和简单编写代码
python·路由器·交换机·网络自动化
Trouvaille ~14 天前
【Linux】网络层与IP协议详解:从地址到路由的完整指南
linux·运维·服务器·网络·tcp/ip·路由器·网络层
希赛网18 天前
2026华为认证数通HCIA备考知识:生成树协议的原理、选举过程与配置要点
服务器·网络·stp·交换机·2026华为认证数通考试·stp生成树的概念·stp常用配置
那就回到过去23 天前
交换机特性
网络·hcip·ensp·交换机
崎岖Qiu25 天前
【计算机网络 | 第二篇】三种交换方式和互联网的核心部分
网络·笔记·计算机网络·路由器
碎梦归途1 个月前
思科网络设备配置命令大全,涵盖从交换机到路由器的核心配置命令
linux·运维·服务器·网络·网络协议·路由器·交换机
交换机路由器测试之路1 个月前
交换机专题:什么是ALS(激光器自动关断)
运维·网络·以太网·交换机·节能
xixixi777771 个月前
无网通信——不依赖传统集中式蜂窝网络(如4G/5G基站)或互联网基础设施(如光纤、路由器) 的通信方式
网络·路由器·数据安全·通信·卫星通信·无网通信