← 返回文章列表

CIDR 与子网:看懂 192.168.1.0/24

IP网络入门

斜杠数字是什么

192.168.1.0/24 的 24 表示前 24 位是网络号,后 8 位是主机号,所以有 256 个地址(可用 254 个)。数字越小,网越大。

私有地址段

段范围
10.0.0.0/810.0.0.0 – 10.255.255.255
172.16.0.0/12172.16.0.0 – 172.31.255.255
192.168.0.0/16192.168.0.0 – 192.168.255.255

怎么判断同网段

把 IP 和子网掩码做按位与,结果相同即在同网段,否则要走网关。常见排障:两台机器配错掩码,看起来通实际不通。

实战案例:三次“看着通、其实不通”

  1. 掩码不一致:A 是 10.0.1.5/24、B 是 10.0.1.200/25。B 只把 10.0.1.0/25 当本网段,于是把 A 当外网、走网关;若网关没配回程路由,双向就都不通。
  2. 容器网段与办公网重叠:Docker 默认 172.17.0.0/16,若办公网也在 172.17.x.x,容器访问办公服务会被当成“本地直连”而失败。改 default-address-pools 换一段即可。
  3. 把 /32 当网段:云安全组写 203.0.113.7/32 只放行一个地址;想放行整段应写 /24,写错就会出现“明明加了白名单还是被拒”。

常见问题(FAQ)

为什么可用地址比总数少 2 个?第一个是网络号、最后一个是广播地址,不能分给主机(/31、/32 例外,用于点对点链路与单主机)。/24 一定是 256 个吗?是,主机位 8 位即 2⁸;同理 /16 是 65536 个。IPv6 也用 CIDR 吗?用,只是总长 128 位,常见子网是 /64。怎么快速算网段?按掩码逐位做与运算;工程上查表或写成脚本,别手动换算进制。

子网划分实操:从需求倒推掩码

划分网段不该先挑掩码,而要先数主机。假设一个机房要容纳 500 台主机、再留一倍余量:

  1. 算主机位:需要约 1000 个地址,2¹⁰=1024 刚好够,于是主机位留 10 位,掩码是 /22(32−10=22)。
  2. 对齐边界:/22 的网段起点必须落在 4 的倍数上,例如 10.10.0.0/22 覆盖 10.10.0.0–10.10.3.255;若写成 10.10.2.0/22,系统会把它对齐到 10.10.0.0,可用范围与直觉不符。
  3. 单独留互联段:网段之间用于路由的互联地址建议单独切 /30 或 /31,不要和业务段混用,否则扩容时容易冲突。
  4. 保持掩码梯度:接入层 /24、汇聚层 /22、核心 /16,统一梯度便于日后做路由聚合,避免路由表膨胀。

IPv6 划分子网的差异

IPv6 的习惯做法是给每个业务段分 /64:即使主机很少也留足 64 位主机位,因为 SLAAC 自动配置要求 /64,更大的主机位也为未来留出空间;/127 只用于点对点互联。常见约定是前 48 位标识站点、中间 16 位做子网编号、最后 64 位是接口标识。

常见误区

  • 按“能 ping 通”判断同网段:ICMP 可能被策略放行而 TCP 不通,必须按掩码逐位计算;
  • 把 /24 当作“一个 C 类网”:C 类是有类地址的历史概念,现代网络一律用 CIDR 前缀表示;
  • 忽略保留地址:127.0.0.0/8 回环、169.254.0.0/16 链路本地、224.0.0.0/4 组播都不应出现在业务规划中;
  • 把 /31 当普通网段:/31 只有两个地址、无网络号与广播地址,专为点对点链路设计。

广播域与 VLSM 速记

  • 广播域边界等于网段边界:同一网段内的广播会到达所有主机,网段过大(如 /16)会让广播噪声显著上升,生产建议控制在 /24 到 /22;
  • VLSM 就是变长掩码:同一个大网段里按需切成不同大小的小网段,互联链路只分 /30 或 /31,避免浪费;
  • 速记表:/24=256、/25=128、/26=64、/27=32、/28=16、/29=8、/30=4、/31=2;
  • 路由聚合方向:规划时让相邻网段地址连续,才能汇总成一条路由,否则会不断新增明细路由。

与云网络对接

规划云上 VPC 时最容易踩的坑是网段重叠:VPC、办公网、容器网与对端 VPC 只要有一段重叠,就无法建立对等连接或专线。建议在规划阶段就维护一张全局网段表,并为每个环境预留连续的地址块,避免后期无法拼接。

双栈环境下的规划

同时启用 IPv4 与 IPv6 时,应把两套网段规划各自独立完成,避免依赖“V4 是 V6 后 32 位”这类映射假设。此外要明确服务优先监听哪一种协议:只监听 IPv6 会因双栈实现的差异导致部分客户端不可达,实际部署中建议同时监听并显式声明优先级。