1. 概述

上一篇《TCP/IP 协议栈》把应用数据、端口、IP、MAC、路由和 ARP 放在同一条通信链路里理解。本文继续向网络层的核心能力深入:IP 地址如何标识主机,子网如何划分边界,掩码如何决定一台主机是直接发送还是交给网关

很多网络故障看起来像“服务不通”“交换机不通”“防火墙拦截”,实际根因却是地址规划错误:两台主机看似在同一个业务区,掩码却不同;服务器地址和网关不在同一网段;DHCP 地址池覆盖了静态服务器地址;VPN 地址段和总部网段重叠;临时加一个 VLAN 时随手用了 /24,半年后地址不够又只能迁移。IP 地址与子网划分不是纸面计算题,而是网络设计、VLAN 规划、路由汇总、ACL、安全域划分和故障定位的共同基础。

本文的目标是让你能在真实环境中完成三件事:

  • 看懂 IPv4 地址、子网掩码、CIDR 前缀、网络地址、广播地址和可用主机范围。
  • 根据终端数量、业务边界和未来扩展选择合适的网段,而不是机械套用 /24
  • 使用 Linux、Windows 和常见网络设备思路验证地址配置是否正确,并能定位常见的子网规划错误。

本文以 IPv4 为主,原因是企业内网、工控网络、虚拟化平台、容器网络和网络设备管理平面仍大量使用 IPv4。IPv6 会在后续网络基础或云网络文章中单独展开。阅读本文前建议已经理解 IP、ARP、默认网关和路由表的基本概念。

2. IP 地址解决的不是“名字”,而是“位置与路径”

在 TCP/IP 网络里,MAC 地址用于本地链路的下一跳转发,端口用于定位主机上的应用进程,IP 地址则用于定位网络层的主机或接口。一个 IPv4 地址由 32 位组成,通常写成四段十进制数字,例如:

text
192.168.10.25

每一段是 8 位,取值范围是 0 到 255。把它拆成二进制就是:

text
192        168        10         25
11000000 . 10101000 . 00001010 . 00011001

单独一个 IP 地址并不足以判断它属于哪个网络。必须同时知道子网掩码CIDR 前缀长度。例如 192.168.10.25/24 表示前 24 位是网络部分,后 8 位是主机部分。网络部分决定“这个地址属于哪个网段”,主机部分决定“它是这个网段里的哪一台主机”。

这张图的关键点是:IP 地址本身只是 32 位数字,前缀长度才把它切成“网络”和“主机”两部分。后续所有子网计算,都是围绕这条分界线展开。

地址规划时不要只问“给这台设备分什么 IP”,更要问:

  • 它属于哪个业务区域或安全区域?
  • 它所在网段有多少当前设备和未来设备?
  • 它需要和哪些网段互通,哪些网段隔离?
  • 这个网段是否需要被汇总到上级路由?
  • 是否会和 VPN、云上 VPC、容器网络、实验网络发生地址重叠?

如果这些问题没有答案,IP 地址就会变成零散分配的编号,后续网络策略、资产管理和故障排查都会变得困难。

3. 子网掩码与 CIDR

3.1 子网掩码的作用

子网掩码用于标识 IP 地址中哪些位属于网络部分,哪些位属于主机部分。掩码中连续的 1 对应网络位,连续的 0 对应主机位。

常见掩码如下:

CIDR 子网掩码 网络位 主机位 地址总数 常见可用主机数
/8 255.0.0.0 8 24 16,777,216 16,777,214
/16 255.255.0.0 16 16 65,536 65,534
/24 255.255.255.0 24 8 256 254
/25 255.255.255.128 25 7 128 126
/26 255.255.255.192 26 6 64 62
/27 255.255.255.224 27 5 32 30
/28 255.255.255.240 28 4 16 14
/29 255.255.255.248 29 3 8 6
/30 255.255.255.252 30 2 4 2
/32 255.255.255.255 32 0 1 1 个主机路由

“常见可用主机数”通常等于 2^主机位 - 2,因为全 0 主机位是网络地址,全 1 主机位是广播地址。/31 在点到点链路中有特殊用途,很多现代设备和系统支持把两个地址都用于点到点接口,但入门阶段先掌握 /30 更稳妥。

3.2 CIDR 为什么比 A/B/C 类地址更重要

早期 IPv4 有 A 类、B 类、C 类地址的分类说法,例如:

传统类别 首段范围 默认掩码 地址规模
A 类 1-126 /8 很大
B 类 128-191 /16 中等
C 类 192-223 /24 较小

今天实际工程中更重要的是 CIDR,也就是用 /前缀长度 表示网络边界。10.10.20.0/2410.10.20.0/2510.10.20.0/26 都可以存在,不能因为 10.x.x.x 曾经属于 A 类就认为它必然是 /8。企业内网规划、云 VPC、Kubernetes Service CIDR、Docker bridge、VPN 地址池和路由汇总都使用 CIDR 表示。

CIDR 的优势是灵活:

  • 可以把一个大网段拆成多个小网段,例如把 192.168.10.0/24 拆成四个 /26
  • 可以把连续小网段汇总成一个大路由,例如把 10.20.0.0/2410.20.3.0/24 汇总为 10.20.0.0/22
  • 可以按业务规模分配地址,减少浪费。
  • 可以让路由表更简洁,避免每个小网段都逐条发布。

4. 从一个地址算出完整网段

学习子网划分最实用的方法是从一个具体地址开始,推导出网络地址、广播地址和可用范围。

假设主机地址是:

text
192.168.10.25/24

/24 表示前 24 位是网络位,因此网络地址是:

text
192.168.10.0

广播地址是主机位全 1:

text
192.168.10.255

可用主机地址通常是:

text
192.168.10.1 - 192.168.10.254

如果前缀变成 /26,计算就不同:

text
192.168.10.25/26

/26 表示最后一段有 2 位网络位、6 位主机位。每个子网包含 64 个地址,边界分别是:

text
192.168.10.0/26       地址范围 192.168.10.0   - 192.168.10.63
192.168.10.64/26      地址范围 192.168.10.64  - 192.168.10.127
192.168.10.128/26     地址范围 192.168.10.128 - 192.168.10.191
192.168.10.192/26     地址范围 192.168.10.192 - 192.168.10.255

192.168.10.25 落在第一个范围,所以:

项目
IP/前缀 192.168.10.25/26
子网掩码 255.255.255.192
网络地址 192.168.10.0
广播地址 192.168.10.63
可用主机范围 192.168.10.1 - 192.168.10.62
地址总数 64
常见可用主机数 62
从一个 IP 地址算出完整网段

块大小方法能把前缀、掩码、网络地址、广播地址和可用主机范围串成一条可复算路径。 这套流程适合快速心算。只要前缀在 /24/30 之间,大多数办公网、服务器网、管理网和点到点链路都可以用“块大小”方法快速判断。

4.1 块大小心算法

当掩码不是 /24,可以用“块大小”判断子网边界:

text
块大小 = 256 - 掩码中发生变化的那一段

例如 /26 的掩码是 255.255.255.192,变化段是最后一段:

text
256 - 192 = 64

因此子网边界按 64 递增:0、64、128、192。

再看 /20

text
/20 = 255.255.240.0
变化段是第三段
块大小 = 256 - 240 = 16

所以 172.16.35.10/20 的第三段按 16 递增:

text
172.16.0.0/20
172.16.16.0/20
172.16.32.0/20
172.16.48.0/20
...

35 落在 32-47,所以该地址所属网段是:

项目
IP/前缀 172.16.35.10/20
子网掩码 255.255.240.0
网络地址 172.16.32.0
广播地址 172.16.47.255
可用范围 172.16.32.1 - 172.16.47.254

4.2 为什么默认网关必须在同一网段

主机访问目标地址时,先用自己的 IP 和掩码判断目标是否在同一网段:

  • 同一网段:直接 ARP 解析目标 IP 的 MAC,然后发送帧。
  • 不同网段:ARP 解析默认网关的 MAC,把 IP 包交给网关转发。

如果默认网关不在主机自己的网段内,主机连网关的 MAC 都无法正常解析。比如:

text
主机 IP:192.168.10.25/26
网关:192.168.10.254

192.168.10.25/26 的网段是 192.168.10.0-63,而 192.168.10.254192.168.10.192-255,不属于同一子网。主机会认为网关不在本地链路上,通信自然异常。许多“配置了 IP 但不能上网”的问题,根因就是掩码和网关不匹配。

默认网关必须在同一子网

这张图说明了一个容易混淆的点:默认网关不是随便写一个三层设备地址,而必须落在本机直连子网内。否则主机连网关的 MAC 都无法正常解析,更谈不上把远端流量交给下一跳。

5. 常见私有地址、特殊地址与文档地址

企业内网通常使用 RFC 1918 定义的私有地址段:

私有地址段 CIDR 地址规模 常见使用场景
10.0.0.0 - 10.255.255.255 10.0.0.0/8 很大 大中型企业、集团、多园区、云 VPC
172.16.0.0 - 172.31.255.255 172.16.0.0/12 中等 数据中心、容器、VPN、隔离业务区
192.168.0.0 - 192.168.255.255 192.168.0.0/16 较小 小型办公网、家庭网络、实验环境

私有地址不能直接在公网路由,需要通过 NAT、代理、VPN、专线或其他网关机制访问外部网络。规划私有地址时要特别注意重叠。例如总部使用 192.168.1.0/24,分支机构和家庭宽带路由器也常用这个网段,远程 VPN 接入时就容易发生冲突。

还有一些常见特殊地址:

地址或网段 用途
127.0.0.0/8 本机回环,常见 127.0.0.1
169.254.0.0/16 IPv4 链路本地地址,常见于 DHCP 失败后的自动地址
0.0.0.0 未指定地址;路由表中 0.0.0.0/0 表示默认路由
255.255.255.255 受限广播地址
192.0.2.0/24 文档示例地址
198.51.100.0/24 文档示例地址
203.0.113.0/24 文档示例地址

写技术文档、培训材料和示例配置时,建议使用 192.0.2.0/24198.51.100.0/24203.0.113.0/24 这类保留文档地址,避免误用真实公网地址。本文涉及公网示例时也采用这些文档网段。

6. 子网划分的真实设计方法

子网划分不是为了把题目算对,而是为了让业务边界、广播域、路由、安全策略和地址容量保持一致。一个可维护的地址方案至少要考虑以下维度:

维度 需要回答的问题 规划影响
业务边界 办公网、服务器网、管理网、访客网、生产网是否隔离 决定 VLAN 和子网数量
地址容量 当前多少终端,三年后多少终端 决定前缀大小
安全策略 哪些网段之间需要 ACL、防火墙或零信任控制 决定网段是否拆分
广播控制 二层广播是否可能过大 决定单个子网不宜过大
路由汇总 是否需要按园区、楼层、业务汇总路由 决定地址块是否连续
运维识别 地址是否能从数字上看出位置和用途 决定编码规则
外部互联 是否有 VPN、云 VPC、合作方专线 避免地址重叠

6.1 示例:把一个 /24 拆给四类办公终端

假设有一个小型办公室,可用地址块是 192.168.50.0/24,需要划分:

  • 办公终端:约 80 台
  • 无线终端:约 60 台
  • 打印与 IoT:约 25 台
  • 网络设备管理:约 10 台

如果全部放在一个 /24,配置简单,但安全边界差,广播域大,后续 ACL 也不清晰。可以按容量拆分:

用途 预计规模 推荐网段 地址总数 常见可用主机
办公终端 80 192.168.50.0/25 128 126
无线终端 60 192.168.50.128/26 64 62
打印与 IoT 25 192.168.50.192/27 32 30
网络设备管理 10 192.168.50.224/28 16 14
预留 未来扩展 192.168.50.240/28 16 14
把一个 /24 拆给四类办公终端

这个方案不是唯一答案,但它体现了几个工程原则:

  • 大规模终端给更大的地址块,小规模设备给更小的地址块。
  • 管理网不要和普通用户终端混放。
  • IoT、打印机、摄像头等弱管理设备应独立成网,便于限制访问方向。
  • 留出预留空间,避免一上线就把 /24 用满。

6.2 示例:按园区和楼层规划地址

中型企业更适合先按地点分大块,再按业务拆小块。假设企业拿 10.20.0.0/16 做内网,可以这样规划:

地址块 用途
10.20.0.0/20 总部园区
10.20.16.0/20 制造工厂
10.20.32.0/20 研发中心
10.20.48.0/20 灾备机房
10.20.64.0/20 云上 VPC 互联

总部园区内部再拆:

网段 用途
10.20.0.0/24 核心网络设备管理
10.20.1.0/24 服务器管理
10.20.2.0/23 办公终端
10.20.4.0/23 无线员工
10.20.6.0/24 访客无线
10.20.7.0/24 打印与会议设备
10.20.8.0/22 预留

这样做的好处是上级路由可以把总部汇总为 10.20.0.0/20,制造工厂汇总为 10.20.16.0/20。当分支和总部通过 WAN 或 SD-WAN 互联时,路由表比逐条发布几十个 /24 更简洁。

6.3 地址编码要服务于运维

地址规划可以适度编码,但不要过度复杂。一个可读的编码方式可能是:

text
10.<地点>.<业务>.<主机>

例如:

text
10.20.1.0/24    总部网络设备管理
10.20.2.0/23    总部办公终端
10.30.1.0/24    工厂网络设备管理
10.30.10.0/24   工厂 MES 服务器区
10.30.20.0/24   工厂 OT 采集区

编码的价值是让运维人员看到地址就能大致判断位置和用途。但编码不能牺牲路由汇总和容量扩展。如果为了“好看”把同一园区的地址分散在多个不连续区间,后续路由、ACL 和 IPAM 都会更难维护。

7. 地址配置与验证

7.1 Linux 查看与临时配置地址

查看地址:

bash
ip -br addr
ip addr show dev eth0

查看路由:

bash
ip route show
ip route get 8.8.8.8

临时添加地址:

bash
sudo ip addr add 192.168.10.25/24 dev eth0
sudo ip link set eth0 up

临时添加默认路由:

bash
sudo ip route add default via 192.168.10.1

这些命令重启后通常不会保留。生产环境应通过 Netplan、NetworkManager、systemd-networkd、发行版网络配置文件或网络自动化工具固化配置。

验证网关是否在同一网段:

bash
ip route get 192.168.10.1
ping -c 3 192.168.10.1
ip neigh show 192.168.10.1

如果 ip route get 显示网关走本地接口,ping 正常,邻居表能看到 MAC,说明至少本机到网关的二三层基础是成立的。

7.2 Windows 查看地址与路由

查看地址:

powershell
ipconfig /all

查看路由:

powershell
route print

测试连通性:

powershell
ping 192.168.10.1
tracert 203.0.113.10
Test-NetConnection 203.0.113.10 -Port 443

Windows 环境常见问题包括 DHCP 获取到错误地址池、虚拟网卡优先级影响路由、VPN 客户端下发路由覆盖本地网段、无线和有线同时连接导致源地址选择异常。

7.3 用 Python 或 ipcalc 辅助计算

如果需要批量计算,可以使用系统工具或脚本。Linux 上常见工具包括 ipcalcsipcalcpython3 标准库 ipaddress

Python 示例:

python
import ipaddress

iface = ipaddress.ip_interface("192.168.10.25/26")
net = iface.network

print("network:", net.network_address)
print("broadcast:", net.broadcast_address)
print("netmask:", net.netmask)
print("hosts:", net.num_addresses)
print("first:", next(net.hosts()))
print("last:", list(net.hosts())[-1])

在自动化脚本、IPAM 校验、地址规划评审中,不建议手工维护大量网段表。更稳妥的方式是把网段、VLAN、站点、用途、网关、DHCP 范围、保留地址和负责人登记到 NetBox 或类似 IPAM 系统中,再由脚本做一致性检查。

8. 子网规划中的常见错误

8.1 掩码不一致导致“同地址不同世界”

两台主机配置如下:

text
主机 A:192.168.10.25/24
主机 B:192.168.10.200/25

主机 A 认为 192.168.10.200 和自己同网段,会直接 ARP 主机 B。主机 B 认为 192.168.10.25 不在自己的 192.168.10.128/25 网段内,回包要交给网关。结果可能出现单向通信、ARP 异常或路径绕行。

处理方式:

  • 同一 VLAN 内的终端应使用一致的掩码和网关。
  • DHCP 作用域、静态地址模板、服务器配置和网络设备 SVI 要统一。
  • 排障时同时检查通信双方的 IP、掩码、网关,而不是只看一端。

8.2 网关地址不在本机网段

前文已经举过例子。这个问题常出现在把 /24 改成 /26/27 后,忘记同步调整网关地址。处理原则很简单:默认网关必须是本机直连网段内可达的三层接口地址。

验证命令:

bash
ip addr show dev eth0
ip route show
ip route get <网关IP>
arping -I eth0 <网关IP>

如果网关不在直连网段,先修正地址规划,不要试图通过添加静态路由绕过这个基础错误。

8.3 地址池和静态地址冲突

DHCP 地址池覆盖服务器、打印机、网关、交换机管理地址,会导致偶发冲突。典型表现是:

  • 某台终端上线后,服务器突然不可达。
  • arpip neigh 中同一 IP 对应不同 MAC。
  • 日志出现 duplicate address 或 address conflict。

建议做法:

  • 网关、网络设备、服务器、打印机、摄像头、AP 控制器等使用固定保留区。
  • DHCP 地址池只覆盖动态终端范围。
  • 在 IPAM 中登记静态地址、保留地址和 DHCP 范围。
  • 网络设备侧启用 DHCP Snooping、IP Source Guard、动态 ARP 检测等能力时,要先确认维护能力和误拦截风险。

8.4 地址重叠

地址重叠是 VPN、云互联、容器网络、并购整合和合作方专线中最麻烦的问题之一。两个网络都使用 192.168.1.0/24 时,路由器无法只凭目的地址判断该发往哪个网络。

常见重叠场景:

  • 员工家用网络与公司 VPN 地址重叠。
  • Docker 默认 bridge 网络与企业内网某段重叠。
  • Kubernetes Pod CIDR 或 Service CIDR 与数据中心地址重叠。
  • 云上 VPC 与本地 IDC 地址重叠。
  • 合作方专线双方都使用常见私网段。

处理方向:

  • 新项目规划时优先避开常见家庭网段,如 192.168.0.0/24192.168.1.0/24
  • 云、容器、VPN 地址池在上线前纳入统一 IPAM。
  • 已经重叠时,优先做地址迁移;临时方案可以使用 NAT、代理或特定路由策略,但复杂度和排障成本会上升。
地址重叠导致路由冲突

这棵排查树适合 VPN 和云互联场景。地址重叠不是单点配置错误,而是规划层问题;临时绕行越多,后续故障定位越难。

8.5 把广播域做得过大

有些环境为了省事,会把大量终端放进一个 /16 或大 /22 网络里。这样做可能带来:

  • 广播和未知单播范围过大。
  • 故障或环路影响面扩大。
  • 终端之间横向访问难以控制。
  • DHCP、ARP、安全审计和资产定位更困难。

并不是所有大网段都错误,但大网段必须有设计理由。例如云 VPC 内部的某些地址段可以较大,但办公接入、IoT、生产终端、服务器管理网通常应按安全域和广播域拆分。

9. 路由匹配与子网边界

理解子网还必须理解路由表的匹配规则。大多数 IP 路由遵循最长前缀匹配:当多条路由都能匹配目标地址时,选择前缀最长、也就是范围最小的那条。

假设路由表有:

text
10.20.0.0/16      via 10.1.1.1
10.20.30.0/24     via 10.1.1.2
10.20.30.128/25   via 10.1.1.3
0.0.0.0/0         via 10.1.1.254

访问不同地址时:

目的地址 匹配结果 原因
10.20.40.10 10.20.0.0/16 只命中 /16
10.20.30.20 10.20.30.0/24 /24/16 更具体
10.20.30.200 10.20.30.128/25 /25/24 更具体
8.8.8.8 0.0.0.0/0 其他都不匹配,走默认路由
路由匹配与子网边界:最长前缀优先

最长前缀匹配决定实际路径,默认路由只会在没有更具体路由命中时生效。 这个规则解释了很多“为什么路由明明有默认网关却没走默认网关”的问题。只要有更具体路由,默认路由就不会被选中。VPN 客户端、容器平台、云主机和安全代理经常动态下发更具体路由,因此排障时必须查看实际路由表,而不能只看静态配置预期。

10. 生产地址规划建议

10.1 先定边界,再定大小

不要从“每个 VLAN 都给 /24”开始。更好的顺序是:

  1. 列出地点:总部、分支、工厂、机房、云上区域。
  2. 列出业务域:办公、无线、访客、服务器、管理、存储、备份、监控、OT、IoT。
  3. 列出安全边界:哪些流量必须经过防火墙,哪些只需要三层交换。
  4. 估算容量:当前终端数、三年增长、临时峰值、预留比例。
  5. 分配连续地址块:尽量让同地点、同业务的网段可汇总。
  6. 登记 IPAM:记录网段、VLAN、网关、DHCP、责任人、备注和变更历史。

10.2 常用前缀选择

场景 常见前缀 说明
小型管理网 /28 或 /27 网络设备、带外管理、少量固定地址
点到点互联 /30 或支持时 /31 路由器、防火墙、专线互联
小型服务器区 /27 或 /26 便于 ACL 和安全策略控制
办公终端 VLAN /24 或 /23 取决于终端数量和广播控制要求
无线终端 /23 或更大 需结合控制器、漫游、DHCP 租约和接入规模
云 VPC 子网 /24 到 /20 需考虑云厂商保留地址和扩缩容
容器 Pod CIDR 按集群规模规划 避免和内网、VPN、云网络重叠

前缀选择没有绝对标准。关键是能解释为什么这样分,并且能在安全、容量、路由和运维之间取得平衡。

10.3 保留地址策略

一个简单可执行的 /24 地址分配模板:

范围 用途
.1 - .9 网关、冗余网关、核心设备
.10 - .49 服务器、网络设备、关键固定地址
.50 - .99 打印机、摄像头、AP、IoT 或保留
.100 - .199 DHCP 动态地址池
.200 - .239 临时保留、项目测试
.240 - .254 运维预留或特殊用途

这只是模板,不必机械套用。更重要的是在一个组织内保持一致,让网络、系统、安全和桌面团队都知道地址段含义。

10.4 变更前检查清单

调整子网或地址规划前,至少检查:

  • 是否影响 DHCP 作用域、租约时间和保留地址。
  • 是否影响默认网关、VRRP/HSRP 地址和三层接口。
  • 是否需要更新静态路由、OSPF/BGP 发布、路由汇总。
  • 是否需要更新防火墙地址对象、ACL、NAT、VPN 加密域。
  • 是否需要更新 DNS、监控、CMDB/IPAM、备份策略和日志采集。
  • 是否存在硬编码 IP 的应用、脚本、摄像头、PLC、打印机或第三方系统。
  • 是否有回滚地址、回滚网关和变更窗口。

地址变更通常牵涉多个系统。真正困难的不是改一个 IP,而是找到所有依赖这个 IP 或网段的地方。

11. 排障 runbook:从地址到路径逐层验证

当一台主机配置了 IP 但无法访问目标时,可以按以下顺序排查。

地址到路径排障 Runbook

对应命令:

bash
# 1. 本机地址
ip -br addr

# 2. 路由表
ip route show
ip route get <目标IP>

# 3. 网关连通性
ping -c 3 <默认网关>
ip neigh show <默认网关>

# 4. 目标连通性
ping -c 3 <目标IP>
traceroute <目标IP>

# 5. 端口测试
nc -vz <目标IP> 443
curl -vk https://<目标域名或IP>/

# 6. 抓包验证
sudo tcpdump -i eth0 -nn host <目标IP>

排查时要避免两个误区:

  • ping 不通不一定代表业务不通,可能 ICMP 被限制;但网关都 ping 不通时,通常要先检查本地链路和地址。
  • 端口通不代表应用正常,端口之后还有 TLS、HTTP、认证、反向代理和业务逻辑。

地址和子网排障的重点是确认本机如何判断目标是否本地、下一跳是谁、回包是否能回来。只要这三件事清楚,很多复杂故障都会变简单。

12. 自测练习

练习 1:计算 /27 网段

主机地址:

text
192.168.12.77/27

/27 的掩码是 255.255.255.224,块大小是 256 - 224 = 32。最后一段边界是:

text
0, 32, 64, 96, 128, 160, 192, 224

77 落在 64-95,所以:

项目 结果
网络地址 192.168.12.64
广播地址 192.168.12.95
可用范围 192.168.12.65 - 192.168.12.94
可用主机数 30

练习 2:判断网关是否正确

配置如下:

text
IP:10.10.8.130/25
网关:10.10.8.1

/25 的块大小是 128。10.10.8.130 属于 10.10.8.128/25,可用范围是 10.10.8.129-10.10.8.254。网关 10.10.8.1 属于 10.10.8.0/25,不在同一子网,因此这个网关配置不正确。

可选修正方式:

  • 把主机改到 10.10.8.0/25 内,例如 10.10.8.20/25,继续使用 10.10.8.1
  • 或把网关改成 10.10.8.12910.10.8.25410.10.8.128/25 内的三层接口地址。
  • 或重新评估是否应使用 /24,但不能只为掩盖错误而扩大网段。

练习 3:为 45 台设备选择前缀

45 台设备需要至少 45 个可用地址。常见前缀:

前缀 可用主机数
/27 30
/26 62
/25 126

因此 /26 是较合适的起点。如果该业务预计很快增长到 100 台,应考虑 /25;如果这是固定数量的摄像头或门禁设备,且未来增长有限,/26 更节省地址。

13. 从地址规划落到运维治理

网络初学者常把子网划分理解成计算题,实际生产里更常见的问题是“算对了,但管不住”。一个地址方案上线后会被 DHCP、DNS、防火墙、交换机、无线控制器、监控系统、资产系统、堡垒机、日志平台、VPN、云网络和容器平台共同使用。如果这些系统各自维护一份地址表,几年后几乎必然出现信息不一致。

因此,IP 地址管理需要形成一套轻量但稳定的治理流程。

13.1 每个网段都应该有明确元数据

建议每个生产网段至少记录以下信息:

字段 示例 作用
网段 10.30.20.0/24 明确地址边界
VLAN ID 320 关联二层广播域
网关 10.30.20.1 关联三层接口或防火墙子接口
用途 工厂 OT 数据采集区 判断是否允许终端接入
位置 苏州工厂一号车间 定位现场责任人
安全域 OT-采集 关联 ACL 和防火墙策略
DHCP 范围 10.30.20.100-10.30.20.199 防止静态地址冲突
保留范围 10.30.20.1-10.30.20.49 网关、交换机、采集网关、PLC
负责人 网络组/自动化组 故障和变更时快速协同
上联设备 Core-SW01 Vlanif320 方便排障定位
路由发布 OSPF area 0 / 静态发布 防止漏发布或误汇总
备注 不允许普通办公终端接入 保留业务约束

没有这些元数据,地址本身只是数字。排障时看到 10.30.20.45,没人知道它是 PLC、工控机、边缘网关还是临时笔记本;安全团队也很难判断某条放通策略是否合理。

13.2 IPAM 不是只给网络团队用

IPAM 的价值不只是“查哪个 IP 被谁用了”。更好的做法是把 IPAM 当作网络事实源,至少服务以下场景:

  • 网络团队用它规划网段、VLAN、网关、路由汇总和设备管理地址。
  • 系统团队用它申请服务器地址,避免手工挑选冲突地址。
  • 安全团队用它生成或校验防火墙地址对象。
  • 运维团队用它关联监控对象、告警归属和资产责任人。
  • 自动化脚本用它校验配置是否与标准一致。
  • 项目团队用它在上线前确认新系统是否会造成地址重叠。

例如一个服务器上线流程可以这样设计:

IPAM 作为网络事实源

这个流程的重点不是引入复杂审批,而是让地址分配、网络连通、安全策略和运维监控用同一份数据。否则服务器已经上线,监控系统不知道它属于哪个业务;防火墙策略写了网段对象,半年后地址迁移没人更新;VPN 侧又手工添加一条路由,最终每个系统都“局部正确、全局混乱”。

13.3 DHCP 与静态地址的边界要提前写清楚

很多办公网故障不是路由器坏了,而是地址边界没有管理好。推荐把一个终端网段拆成几个固定用途范围:

text
10.40.8.0/24 办公终端 VLAN

10.40.8.1-10.40.8.9      网关、冗余网关、网络服务
10.40.8.10-10.40.8.49    保留给固定终端或特殊设备
10.40.8.50-10.40.8.99    打印机、会议终端、门禁等
10.40.8.100-10.40.8.219  DHCP 动态地址池
10.40.8.220-10.40.8.239  临时项目测试
10.40.8.240-10.40.8.254  运维预留

同时,DHCP 服务器应该配置:

  • 正确的子网掩码和默认网关。
  • 正确的 DNS、NTP、搜索域等选项。
  • 合理的租约时间:办公终端可长一些,访客无线可短一些。
  • 排除网关、服务器、打印机、网络设备等固定地址。
  • 对关键设备使用 DHCP reservation 时,要登记 MAC、责任人和用途。

如果无线访客网络租约过长,大量临时设备会占住地址池;如果工厂采集终端使用动态地址而上层系统又绑定 IP,设备重启后可能导致采集平台找不到设备;如果打印机既被手工静态配置,又落在 DHCP 池里,地址冲突会以非常随机的方式出现。

13.4 子网边界与安全策略要同步设计

网络安全策略通常按源网段、目的网段、协议和端口编写。如果地址规划没有体现安全边界,后续策略就会非常难写。

反例:

text
10.50.1.0/24 同时包含:
- MES 应用服务器
- 数据库服务器
- 运维跳板机
- 厂商远程维护终端
- 临时测试服务器

这种混放会导致防火墙策略很尴尬。为了让 MES 应用访问数据库,可能不得不放通整个 10.50.1.0/24 到数据库端口;为了让厂商远程维护某台服务器,策略又很容易扩大到同网段其他主机。短期看省了 VLAN,长期看增加了横向移动风险。

更合理的划分是:

网段 用途 默认策略
10.50.10.0/24 MES 应用区 只访问数据库、接口服务和必要中间件
10.50.11.0/24 MES 数据库区 只接受应用区和备份区访问
10.50.12.0/24 运维管理区 只允许堡垒机、监控、备份访问
10.50.13.0/24 厂商维护区 默认不通,按工单临时开通
10.50.14.0/24 测试区 不允许直接访问生产数据库

这样安全策略可以围绕业务边界表达,而不是围绕零散 IP 打补丁。地址规划越清晰,防火墙对象越稳定,审计和变更越容易。

13.5 路由汇总和安全边界有时会冲突

地址连续有利于路由汇总,但安全边界也可能要求拆分。比如一个工厂希望把所有地址汇总成 10.60.0.0/16 发布到总部,这对路由很友好;但工厂内部的办公、OT、访客、视频监控、MES、PLC、设备维护网络不能因为汇总而互相任意访问。

解决方法是区分“路由可达”和“策略允许”:

  • 在 WAN 或骨干层可以发布汇总路由,减少路由条目。
  • 在防火墙或三层网关处继续保留细分安全域。
  • ACL 和策略对象使用更具体网段。
  • 对高风险区域,例如 OT、访客、厂商维护,默认拒绝跨域访问。
  • 对日志和监控保留足够标签,避免汇总后看不清来源。

不要把“有路由”误认为“应该放通”。路由只说明包知道往哪里走,安全策略才说明包是否应该被允许。

13.6 地址变更要像应用变更一样管理

地址变更经常被低估。一个网段从 /24 调整成 /23,看起来只是掩码变化,实际可能影响:

  • DHCP 作用域和租约。
  • 网关接口掩码。
  • 二层 VLAN 和三层 SVI。
  • 防火墙地址对象。
  • 静态路由和动态路由发布。
  • 监控系统的自动发现范围。
  • 扫描器、备份软件、堡垒机和日志采集器。
  • 应用白名单、数据库访问控制和第三方接口。
  • 文档、资产台账、应急预案和交接材料。

一个可执行的地址变更模板可以包含:

阶段 动作 验证
变更前 导出当前地址、路由、DHCP、策略和监控范围 确认有回滚配置
评审 检查地址重叠、容量、网关、广播影响和安全策略 IPAM 中无冲突
实施 调整网关、DHCP、路由、防火墙和相关系统 分阶段验证网关、DNS、端口
观察 监控地址冲突、DHCP 告警、业务连通性 关键业务无异常
收尾 更新 IPAM、拓扑、应急文档和变更记录 文档与配置一致

这类流程看起来比直接改配置慢,但能显著降低“改完能通,第二天另一个系统坏了”的概率。

13.7 与后续网络主题的关系

IP 地址和子网划分会贯穿后续章节:

  • 学习常见网络设备时,要理解交换机主要处理二层广播域,路由器和三层交换机处理不同子网之间的转发。
  • 学习 VLAN 时,要理解一个 VLAN 通常对应一个 IP 子网,但大型或特殊场景中也可能有例外。
  • 学习路由时,要理解路由条目的前缀长度、下一跳、管理距离和最长前缀匹配。
  • 学习 ACL 和防火墙时,要理解源地址、目的地址和网段对象如何表达访问边界。
  • 学习网络排障时,要先确认地址、掩码、网关、ARP 和路由,再分析 TCP、DNS 和应用层。
  • 学习网络自动化时,要把 IPAM 作为输入,而不是让脚本在配置里硬编码地址。

换句话说,子网划分是网络知识体系中的“坐标系统”。坐标系统不清楚,后续所有拓扑、路由、策略和排障都会缺少共同语言。

14. 总结

IP 地址与子网划分是网络层最基础、也是最容易影响生产稳定性的知识。掌握它不只是会做二进制计算,更重要的是理解地址边界如何影响 ARP、默认网关、路由匹配、广播域、安全策略和后续扩展。

本文的核心结论:

  • IPv4 地址必须和掩码或 CIDR 前缀一起理解,单独一个地址无法判断网段。
  • 子网掩码把 32 位地址切成网络部分和主机部分。
  • 网络地址、广播地址和可用主机范围都由前缀长度决定。
  • 默认网关必须位于主机的直连子网内。
  • 私有地址规划要避免和 VPN、云、容器、合作方网络重叠。
  • 子网划分要服务业务边界、安全策略、路由汇总和运维识别。
  • 排障时先确认本机地址、掩码、网关和路由选择,再进入端口和应用层。

下一篇《常见网络设备介绍》会从主机视角扩展到设备视角,梳理交换机、路由器、防火墙、无线 AP、负载均衡、网关和光模块等常见网络组件的职责边界。

参考资料