IP 地址规划方案怎么做:从需求统计到分配表的六个步骤
一份可执行的 IP 地址规划方案,交付物是一张写清每个网段用途、VLAN、网关和保留地址的分配表。本文按统计需求、划分区域、选地址空间、切分网段、约定网关、形成分配表六步讲产出过程,每步给判断标准和算例。
一份 IP 地址规划方案的产出过程分六步:统计设备数量和增长、按机房与业务类型划分区域、选择地址空间、切分网段、约定网关与保留地址、形成分配表。前五步是分析,第六步是交付物——一张写清每个网段“给谁用、网关是什么、哪些地址不能动”的分配表。没有这张表,规划只停留在做规划那个人的脑子里,换个人接手就要重来。
下面以一家有两个机房、约 400 台服务器的 IDC 服务商为例,把每一步的输入、判断标准和输出写清楚。
第一步:统计设备数量和三年增长
规划的输入是“需要多少地址”,而不是“有多少台设备”。同一台服务器往往要占 2~3 个地址:一个公网业务地址、一个 IPMI 管理地址,可能还有一个内网地址。先按设备类型列清单,再乘以每类设备的地址数。
| 设备类型 | 当前数量 | 每台地址数 | 当前需要 | 3 年后(按年增 30% 估算) |
|---|---|---|---|---|
| 服务器公网地址 | 400 | 1 | 400 | 约 880 |
| 服务器 IPMI 地址 | 400 | 1 | 400 | 约 880 |
| 服务器内网地址 | 400 | 1 | 400 | 约 880 |
| 交换机、路由器管理地址 | 30 | 1 | 30 | 约 66 |
| PDU、动环、门禁等设备 | 40 | 1 | 40 | 约 88 |
| 跳板机、监控、DNS 等基础服务 | 20 | 1 | 20 | 约 44 |
400 × 1.3³ ≈ 879,这就是“3 年后约 880”的来源。增长率用过去两年的实际上架速度推算,没有历史数据就按业务计划取一个偏保守的值。规划期取 3 年是常见做法:太短很快要重做,太长预测没有意义。
统计时要把两类需求分开:公网地址要向上游运营商或 APNIC 申请,稀缺且有成本;私网地址几乎没有成本,可以放开预留。两者的规划策略完全不同,后面分开处理。
第二步:按机房和业务类型划分区域
把统计结果按两个维度切开:物理位置(机房、楼层)和业务类型(安全等级)。每一个“机房 × 业务类型”的组合就是一个地址块,之后的网段都从对应的块里切出来。
| 业务类型 | 放什么 | 公网还是私网 | 安全要求 |
|---|---|---|---|
| 客户公网 | 出租服务器的业务地址 | 公网 | 客户之间隔离 |
| 客户内网 | 客户服务器之间的私网互联 | 私网 | 按客户划 VLAN |
| IPMI 管理网 | 服务器 BMC 管理口 | 私网 | 只允许管理系统和跳板机访问 |
| 设备管理网 | 交换机、PDU、动环设备 | 私网 | 同上,与 IPMI 网分开 |
| 基础服务 | DNS、监控、装机、跳板机 | 私网为主 | 允许被各区访问 |
| 互联与网关 | 设备之间的点对点链路、VRRP | 私网 | 只有网络设备使用 |
这里有两个原则:一是 IPMI 网和设备管理网要分开,两者的访问人员和风险不同;二是每个区域对应一组 VLAN,区域边界就是防火墙或 ACL 的边界,划得清楚,后面的策略才好写。
先按机房切一刀、再按类型切一刀的好处是路由可以汇总:机房 A 的所有私网地址都在同一个大块里,核心之间只需要一条汇总路由。
第三步:选择地址空间
私网用 RFC 1918 定义的三段:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。IDC 内部网络推荐用 10.0.0.0/8:空间大,能把机房编号、业务类型直接编进地址里。192.168.0.0/16 是家用路由器和办公网的常用段,客户通过 VPN 接入时容易重叠,尽量不要用于基础设施。
一种把信息编进地址的写法是 10.<机房号>.<类型块>.x:
| 地址块 | 用途 |
|---|---|
| 10.1.0.0/16 | 机房 A 全部私网地址 |
| 10.2.0.0/16 | 机房 B 全部私网地址 |
| 10.1.0.0/21 | 机房 A 设备管理网(10.1.8.0/21 留作扩容) |
| 10.1.16.0/21 | 机房 A IPMI 管理网(10.1.24.0/21 留作扩容) |
| 10.1.32.0/20 | 机房 A 基础服务(10.1.48.0/20 留作扩容) |
| 10.1.64.0/19 | 机房 A 客户内网(10.1.96.0/19 留作扩容) |
| 10.1.240.0/20 | 机房 A 互联与网关 |
| 其余 | 预留,锁定不用 |
每个块后面故意留了一个同样大小的空块,并且起始地址对齐到扩容后的边界:设备管理网 10.1.0.0/21 和紧随其后的 10.1.8.0/21 合起来正好是 10.1.0.0/20,客户内网 10.1.64.0/19 和 10.1.96.0/19 合起来正好是 10.1.64.0/18。将来把掩码改短一位就能翻倍,不用改任何已分配的地址。看到 10.1.16.x 就知道是机房 A 的 IPMI 地址,排障时省很多事。
公网地址由上游运营商或 APNIC、CNNIC 分配,没有选择余地,规划的重点是“怎么切”。互联网上通过 BGP 宣告的前缀一般不小于 /24,所以公网段以 /24 为基本单位:按线路(电信、联通、BGP)和机柜列分配整块的 /24,内部再切成更小的 VLAN 子网。
IPv6 由上游运营商或地址分配机构分配一个 /32 或 /48 的块。业界通行的划分是每个 VLAN 一个 /64;拿到 /32 时每个机房分一个 /48,只拿到一个 /48 时机房之间按 /52 或 /56 切开。给客户分配时,单台服务器给 /64,需要多个子网的客户给 /56。IPv6 的地址数量不是约束,规划的重点是层次清楚、便于汇总。
第四步:切分网段
切分的依据是第一步的 3 年需求数,对照下表选掩码:
| 掩码 | 地址总数 | 可用地址数 | 适合 |
|---|---|---|---|
| /21 | 2,048 | 2,046 | 大型管理网、客户内网块 |
| /22 | 1,024 | 1,022 | 中大型管理网 |
| /23 | 512 | 510 | 中型管理网 |
| /24 | 256 | 254 | 公网基本单位,单个 VLAN |
| /25 | 128 | 126 | 小型 VLAN |
| /26 | 64 | 62 | 小客户专属公网段 |
| /27 | 32 | 30 | 设备管理小段 |
| /28 | 16 | 14 | 单客户内网 |
| /29 | 8 | 6 | 单客户小段 |
| /30 | 4 | 2 | 点对点链路 |
可用地址数 = 总数 − 2(网络地址与广播地址)。选掩码的判断标准:3 年需求数 ÷ 可用地址数 ≤ 70%。以机房 A 的 IPMI 网为例,3 年需求约 880 个,/22 的 1,022 个可用地址使用率 86%,偏高;/21 有 2,046 个可用地址,使用率 43%,合适。私网地址不缺,放大一档没有成本。
公网段反过来:按 1 年需求分配,按 3 年需求预留。机房 A 当前 400 台服务器需要 2 个 /24,1 年后约 520 台需要 3 个 /24,那就先启用 3 个 /24,再把 4~5 个 /24 标记为预留,不要一开始就切碎分出去。
切分时把每个网段对齐到它的自然边界:/20 的起始地址第三段必须是 16 的倍数(0、16、32……),/21 是 8 的倍数,/22 是 4 的倍数。可以用 ipcalc 或 Python 自带的 ipaddress 模块验证,顺便检查有没有重叠:
# Debian/Ubuntu: apt install ipcalc
ipcalc 10.1.64.0/19
# 用 Python 检查规划表里的网段是否重叠
python3 - <<'PY'
import ipaddress
nets = ["10.1.0.0/21", "10.1.16.0/21", "10.1.32.0/20", "10.1.64.0/19", "10.1.240.0/20"]
nets = [ipaddress.ip_network(n) for n in nets]
for i, a in enumerate(nets):
for b in nets[i + 1:]:
if a.overlaps(b):
print("重叠:", a, b)
print("检查完成")
PY
一个网段对应一个 VLAN,VLAN 编号也一起规划:例如管理网用 100~199,客户内网用 200~999,公网用 1000 以上,与地址块的编号规则对应起来。
第五步:约定网关和保留地址
这些规则要写进制度,全公司统一,否则每个网段的网关都要查一遍:
- 网关位置:统一用第一个可用地址(
.1)或最后一个可用地址(.254),二选一,不混用; - 网关冗余:用 VRRP 时,虚拟地址是
.1,两台物理设备用.2和.3; - 保留段:每个网段的前 16 个地址(
.0~.15)留给网络设备和网关,最后 8 个(.248~.255)留给监控探针和临时用途,中间的才能分配; - DHCP 范围:装机网需要 DHCP 时,写清动态池的起止,静态地址不得落在池内;
- 整块预留:还没启用的地址块在表里标记“锁定”,任何人不得从中临时借用。
IPv6 的做法类似:网关用 ::1,::2~::ff 保留给设备,客户地址从 ::100 起分配。
以公网段 103.45.12.0/24(示例地址)为例:网关 103.45.12.1,.2~.15 保留,.16~.247 共 232 个地址可分配给客户,.248~.254 留给监控。分配表里要把“可分配范围”明确写成 .16~.247,而不是让每个人自己减。
第六步:形成分配表
分配表是整个方案的交付物,至少包含这些列:
| 列 | 说明 | 示例 |
|---|---|---|
| 网段 | CIDR 写法 | 10.1.16.0/21 |
| 机房 | 所属机房 | 机房 A |
| 类型 | 业务类型 | IPMI 管理网 |
| VLAN | 对应 VLAN 编号 | 110 |
| 网关 | 网关地址与所在设备 | 10.1.16.1,核心交换机 CORE-A |
| 保留范围 | 不可分配的地址 | 10.1.16.1~.15,10.1.23.248~.255 |
| 可分配范围 | 可分配起止 | 10.1.16.16~10.1.23.247 |
| 状态 | 在用 / 预留 / 锁定 / 回收中 | 在用 |
| 负责人 | 谁批准变更 | 网络组 |
| 备注 | 线路、客户、特殊说明 | 只允许跳板机访问 |
除了网段级的总表,还要有地址级的明细表:每个地址分给了哪台设备(资产编号)、哪个客户、什么时候分配的。两张表配合,才能回答“这个 IP 是谁的”和“这个段还剩多少”。
方案发布前对照下面的清单过一遍:
- 所有网段无重叠,且对齐到自然边界;
- 每个网段有且只有一个 VLAN、一个网关,网关位置全局一致;
- 同一机房的网段能汇总成一条路由;
- 公网预留块已在上游做好宣告准备,但不对内启用;
- 核心交换机、防火墙的路由表和 ACL 已按新表更新;
- 表的版本号、生效日期和修订记录写在首页。
分配表怎么维护才不会失效
规划做完的那天,分配表是准确的;三个月后,如果还是靠 Excel,它一定和现场对不上——有人临时借了地址忘了登记,有人下架了服务器没释放。维护规则有三条:地址的分配和回收必须先改表再操作,每季度用网段扫描结果和表对账,新增网段必须走审批。
更省力的做法是把表放进 IP 地址管理系统。在 IP 地址管理里按 CIDR 录入网段后,起止地址、掩码自动算出,网关可以选第一个或最后一个地址,大段可以自动拆成多个 /24;每个段能标记为公网 IP、IPMI、客户内网等类型并归属机房,开通服务器时自动从可用段取址,退订时释放,锁定的预留段不会被占用。段所在的 VLAN 和网关设备也记录在段上,与交换机的 VLAN 配置对应。规划方案六步的产出,正好对应系统里“段—类型—机房—VLAN—网关—用量”这几项字段。
常见问题
现有网络的地址已经乱了,能不能不停机重新规划?
可以分步做:先按新方案建好网段和 VLAN,新上架的设备直接用新地址;旧设备在维护窗口逐批迁移,迁移期间新旧网段之间用路由互通。旧网段在分配表里标为“回收中”,全部迁完再删除。
分配表里要不要记录 MAC 地址和交换机端口?
网段总表不用,地址明细表建议记录。IP、MAC、交换机端口三者对应之后,才能在交换机上做 ARP 绑定,地址被冒用时也能直接定位到机柜和端口。
回收的公网地址能马上分给新客户吗?
建议先隔离一段时间(例如 30 天)再重新分配:前一个客户的域名解析、邮件信誉、对端防火墙规则可能还指向这个地址,立即复用容易把问题带给新客户。分配表里用“回收中”状态标记,到期后再改为空闲。