飞翔飞翔
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
  • 学习路径
  • IP协议

    • 认识 IP 协议与网络层定位
    • IPv4 编址体系与分类地址
    • CIDR 与子网划分实战
    • IPv6 编址体系
    • ARP 协议详解
    • NDP 协议详解
    • IGMP 与 MLD 组播侦听发现
    • VRRP 与网关冗余
    • IPv4 数据报首部解析
    • IPv6 数据报与扩展首部
    • IPsec 安全扩展
    • 分片、MTU 与路径发现
    • ICMP 与 Traceroute 原理
    • 路由基础与转发流水线
    • 动态路由协议
    • NAT 网络地址转换
    • DHCP 与自动配置
    • Wireshark 与命令行工具
    • IPv6 过渡技术
    • IP 协议栈排障与攻击防御
  • TCP协议

    • 认识 TCP 协议与传输层定位
    • TCP 报文段首部解析
    • 三次握手与连接建立
    • 四次挥手与连接释放
    • TCP 有限状态机
    • 序列号与确认机制
    • 超时重传与 RTO 计算
    • 滑动窗口与流量控制
    • 拥塞控制基础
    • 现代拥塞控制算法
    • TCP 选项与扩展
    • TCP 性能调优与内核参数
    • Nagle 算法与糊涂窗口综合征
    • TCP 定时器与 Keep-Alive 机制
    • TCP 安全与攻击防御
    • TCP 与上层/下层交互
    • TCP 综合实践与排障

CIDR 与子网划分实战

从分类编址到 CIDR:打破"阶级固化"

传统的 A/B/C 类地址就像计划经济时代的粮票:A 类一张票能买 1600 万斤粮,C 类一张票只能买 254 斤。问题是:

  • 一个小公司有 500 台电脑,给 A 类太浪费(1600 万个地址),给 C 类又不够(254 个)
  • 两个 C 类网络 192.168.1.0 和 192.168.2.0,路由器必须存两条路由表项

CIDR(Classless Inter-Domain Routing,无类域间路由,RFC 4632) 打破了 A/B/C 的阶级界限,允许任意长度的网络前缀。就像超市不再按"整箱卖",可以按"任意斤两"切分。

斜线记法:/24 是什么意思

CIDR 用 "IP 地址/前缀长度" 表示网络,如 192.168.1.0/24。

  • /24 表示前 24 位是网络位,后 8 位是主机位
  • 子网掩码 255.255.255.0 的二进制就是前 24 个 1:11111111.11111111.11111111.00000000

快速对照表:

CIDR子网掩码可用主机数常见场景
/30255.255.255.2522点对点链路
/29255.255.255.2486小型设备组
/28255.255.255.24014小型办公室
/24255.255.255.0254标准子网
/23255.255.254.0510中型子网
/16255.255.0.065,534大型企业
/8255.0.0.016,777,214超大型网络

VLSM:可变长子网掩码

VLSM(Variable Length Subnet Mask)允许在同一个网络内使用不同长度的子网掩码。就像一块蛋糕,先切成几大块,每块再按需切小。

实战场景:飞翔公司网络规划

假设公司拿到一段地址:192.168.10.0/24(共 256 个地址)。各部门需求如下:

部门主机数所需主机位掩码
技术部50 人6 位(2⁶-2=62)/26
产品部25 人5 位(2⁵-2=30)/27
运营部10 人4 位(2⁴-2=14)/28
服务器区5 台3 位(2³-2=6)/29
点对点链路2 端2 位(2²-2=2)/30

划分步骤

第一步:技术部 50 人,需要 /26

  • 主机位 6 位,网络位 26 位
  • 地址块大小 = 2^(32-26) = 64
  • 分配:192.168.10.0/26(0~63)
    • 网络地址:192.168.10.0
    • 广播地址:192.168.10.63
    • 可用范围:192.168.10.1 ~ 192.168.10.62(共 62 个)

第二步:产品部 25 人,需要 /27

  • 地址块大小 = 32
  • 从 64 开始分配:192.168.10.64/27(64~95)
    • 网络地址:192.168.10.64
    • 广播地址:192.168.10.95
    • 可用范围:192.168.10.65 ~ 192.168.10.94(共 30 个)

第三步:运营部 10 人,需要 /28

  • 地址块大小 = 16
  • 从 96 开始分配:192.168.10.96/28(96~111)
    • 可用范围:192.168.10.97 ~ 192.168.10.110(共 14 个)

第四步:服务器区 5 台,需要 /29

  • 地址块大小 = 8
  • 从 112 开始分配:192.168.10.112/29(112~119)
    • 可用范围:192.168.10.113 ~ 192.168.10.118(共 6 个)

第五步:点对点链路,需要 /30

  • 地址块大小 = 4
  • 从 120 开始分配:192.168.10.120/30(120~123)
    • 可用:192.168.10.121、192.168.10.122(两端路由器各一个)

剩余地址:192.168.10.124 ~ 192.168.10.255,留作未来扩展。

上图展示了 VLSM 的核心思想:按需切分,大块给大部门,小块给小部门,避免像分类编址那样"一刀切"造成浪费。

超网聚合:把多条路由压成一条

CIDR 的另一大威力是路由聚合(Route Aggregation / Summarization)。

假设某 ISP 有 8 个 C 类网络:

  • 200.100.0.0/24
  • 200.100.1.0/24
  • ...
  • 200.100.7.0/24

这 8 个网络的前 21 位相同(200.100.00000),可以聚合成一条:200.100.0.0/21。对外宣告时,其他 ISP 只需存 1 条路由,而不是 8 条。

生活比喻:8 个相邻的小区(0~7 号楼)共用一个大门口,快递员只需要记住"送到 0-7 号楼小区",不用记每栋楼单独的门牌。

路由聚合(Route Summarization)是 CIDR 的核心价值之一。ISP 对外只需宣告一条聚合路由,其他运营商的路由表规模大幅减小,互联网才能承载数百万条前缀。

快速计算技巧

技巧 1:256 减法

子网掩码最后一段不是 0 时,用 256 减去它,得到块大小:

  • 掩码 255.255.255.192 → 256 - 192 = 64,块大小 64
  • 掩码 255.255.255.224 → 256 - 224 = 32,块大小 32

技巧 2:主机数公式

可用主机数 = 2^(主机位数) - 2(减去网络地址和广播地址)

主机位可用主机数
8254
7126
662
530
414
36
22

技巧 3:借位口诀

从 /24 开始,每借 1 位,子网数翻倍,每网主机数减半:

  • /24 → 1 个子网,254 台主机
  • /25 → 2 个子网,126 台/网
  • /26 → 4 个子网,62 台/网
  • /27 → 8 个子网,30 台/网
  • /28 → 16 个子网,14 台/网

本篇小结

  • CIDR 用 /n 表示网络前缀长度,打破 A/B/C 类限制
  • VLSM 允许在同一网络内使用不同掩码,高效利用地址
  • 子网划分三步走:定需求 → 算块大小 → 依次分配
  • 路由聚合把多条小前缀合并成一条大前缀,减少路由表规模
  • 记住公式:可用主机 = 2^(主机位) - 2

动手实践

  1. 给定 172.16.0.0/16,为 4 个部门划分子网:

    • 部门 A:1000 人
    • 部门 B:500 人
    • 部门 C:200 人
    • 部门 D:50 人 写出每个子网的网络地址、掩码、可用范围。
  2. 以下 4 条路由能否聚合?如果能,聚合后的前缀是什么?

    • 10.1.0.0/24
    • 10.1.1.0/24
    • 10.1.2.0/24
    • 10.1.3.0/24
  3. 访问 https://www.subnet-calculator.com/,验证你的计算结果。

上一页
IPv4 编址体系与分类地址
下一页
IPv6 编址体系