华为云VPC建议使用网段解析
建议使用网段:
10.0.0.0/8-24
172.16.0.0/12-24
192.168.0.0/16-24
我们来解析这条建议背后考量。
1. 规避与本地网络和公网的路由冲突
云上网络(VPC)必须被视为您企业整体网络的一个延伸部分,而不是一个孤岛。因此,在规划其网段时,必须确保它不会与您已有的本地数据中心网络或办公室网络的IP地址范围发生重叠。想象一下,您的办公室网络使用的是 192.168.1.0/24
网段,而您恰巧在VPC中也使用了相同的网段。当您通过专线或VPN建立“云-地”混合云连接时,网络路由器会收到去往 192.168.1.0/24
的路由信息,但有两个来源:一个指向本地网络,一个指向云上VPC。这将导致路由混乱,数据包不知道应该发往何处,造成网络中断,这是灾难性的。
同时,IP冲突的考量并不仅限于硬件网络层面,还要深入到软件和基础设施的默认行为。Docker就是一个经典的例子:其默认创建的网桥(bridge)网络使用的正是 172.17.0.0/16
网段。想象一下这个场景:您因为在VPC中使用了 172.16.0.0/12
网段而感到安心,并在某台云服务器上部署了Docker。当Docker引擎启动时,它会自动创建一个虚拟网卡,并分配一个 172.17.0.1
的IP地址。瞬间,您的云服务器内部就出现了一个与您VPC大网重叠的IP路由。这会导致容器无法访问VPC内其他 172.17.x.x
地址的资源,或者引发各种难以捉摸的网络路由异常。
这种冲突异常隐蔽,因为它并非由网络工程师的错误配置直接导致,而是由应用层软件的默认约定引发的。因此,在选择VPC网段时,主动规避这些众所周知的“软件默认领地”(如Docker的 172.17.0.0/16
、Kubernetes的常用网段等),是一种防患于未然的资深做法。
- 为什么是这三个网段?
10.0.0.0/8
,172.16.0.0/12
, 和192.168.0.0/16
是IANA专门保留的私有IP地址段(RFC 1918)。这些地址在任何公网上都不会被路由,只允许在私有网络内部使用。
2. CIDR掩码:/8, /12, /16 与 /24 的含义
/8-/24
定义了您选择网段的“大小”或“容量”,这体现了可扩展性和灵活性的考量。
-
起始范围要足够大(/8, /12, /16):
/8
(如10.0.0.0/8
) 提供了超过1600万个IP地址,是最大的私有网段。/12
(如172.16.0.0/12
) 提供了约100万个IP地址。/16
(如192.168.0.0/16
) 提供了6.5万多个IP地址。- 建议从这么大的范围开始规划,是为了给未来留下充足的扩展空间。 一个VPC创建后,其主网段是无法修改的。如果您一开始只规划了一个小小的
/24
(256个IP),未来业务增长需要在这个VPC内创建更多子网或容纳更多云服务器时,您将无地址可用,只能重建整个VPC环境,成本极高。选择一个大的父网段,就像圈了一块大地皮,未来可以在上面灵活地划分多个“小区”(子网)。
-
子网划分要合理(建议掩码不超过/24):
- 虽然VPC的主网段要大,但实际使用时,我们会将其划分为更小的子网(Subnet),并部署在不同的可用区(AZ)以实现高可用。
/24
掩码(255.255.255.0)是一个业界公认的最佳实践尺寸。它提供256个IP地址,这个规模:- 与管理效率相匹配:对于大多数应用和服务而言,这个大小的网络既不会太小导致很快用尽,也不会太大导致广播域过于庞大(虽然云网络已经通过技术手段很大程度上抑制了广播问题)。
- 与 quotas 限制相契合:云服务商对子网、路由表、网络ACL等资源都有数量限制。使用
/24
掩码可以在VPC内创建数量合适的子网,更好地匹配这些限制。
你或许会觉得 /12
“别扭”,这种“别扭”感源于 /12
在“易于理解”和“计算便利性”上的双重劣势。
/8
(255.0.0.0): 极其简单。它的含义是:第一个字节是网络位,后三个字节都是主机位。10.x.x.x
整个都是你的,超过1600万个IP,一眼到底,非常易于理解和记忆。/16
(255.255.0.0): 也非常简单。它的含义是:前两个字节是网络位,后两个字节是主机位。192.168.x.x
整个都是你的,6.5万个IP,毫无理解障碍。/12
(255.240.0.0): 这里就开始“别扭”了。它的含义是:前12位是网络位。这跨越了第一个字节和第二个字节的一部分。第二个字节的掩码是240
(二进制11110000
),这意味着第二个字节只有前4位属于网络部分,后4位属于主机部分。
这种“劈开”一个字节的方式,大大增加了心算和规划的难度。 比如,我问你:172.16.0.0/12
这个网段里,包含哪些具体的 /16
网段?它并不是从 172.16.0.0
到 172.31.0.0
这么简单(那是 /12
的边界),而是要计算第二个字节的变化,其范围实际是 172.16.0.0
到 172.31.255.255
。对于不常接触的人来说,立刻在脑子里画出这个边界远不如 /8
和 /16
来得直接。
再从使用频率和场景上来说,
/24
(255.255.255.0): 这是终端网络的绝对王者。无论是你家中的路由器、小型办公室网络,还是云中的一个子网,绝大多数局域网都使用这个掩码。我们每天都会接触它,已经形成了强大的“肌肉记忆”,觉得它无比自然。/8
和/16
: 虽然不会用于终端,但作为汇总路由或超级网段的概念,在网络规划和核心路由中非常常见。网络工程师也经常与之打交道。/12
: 它的应用场景相对狭窄。它主要的价值就在于 “为172.16.0.0/12
这个特定的私有地址段提供一个恰到好处的概括” 。RFC 1918定义了172.16.0.0
到172.31.255.255
是私有地址,而精确概括这一整个范围的掩码就是/12
。它更像是一个遵循标准的、不得已而为之的“规定动作”,而非一个因其本身优雅而产生的“常用动作”。
3. 实践中的选择
- 如果您需要巨大的空间(成千上万的子网和实例):直接选择
10.0.0.0/8
。这是最安全、最省心的选择。它的巨大容量意味着您几乎永远不用担心IP耗尽的问题,并且极其易于理解和沟通。 - 如果您需要一个中等偏大的环境:选择
192.168.0.0/16
或从10.0.0.0/8
里切出一块,例如10.1.0.0/16
。这样您得到的是一个干净的、易于计算的/16
块,管理起来心智负担更小。或者使用172.16.0.0/12
,同时做好子网切分计算并避免冲突。
- 点赞
- 收藏
- 关注作者
评论(0)