2. VCN规划与设计实战
在上一节中,我们已经理解了VCN是Oracle Cloud Infrastructure中区域级的软件定义网络边界。本节不再停留在概念层面,而是直接进入一个可落地的规划任务:假设一家中型企业要在OCI上部署一套三层Web应用,我们需要为它规划CIDR块、划分子网、设计路由表与安全列表,最终形成一张多层级VCN拓扑。
先明确业务需求。该企业应用包含三个层次:面向公网的Web前端、仅内网访问的应用服务、以及只允许应用层访问的数据库。此外还需要一个用于运维跳板和堡垒机的管理子网。企业希望未来能扩展到多可用域,并保留与本地数据中心通过FastConnect或Site-to-Site VPN互联的能力。这些需求直接决定了VCN的地址规划不能随意,必须预留足够的扩展空间。
一、CIDR块规划:从企业地址空间出发
CIDR规划的第一步不是打开控制台,而是先确定VCN的地址范围。OCI允许VCN使用RFC 1918私有地址,也支持部分公有地址段,但企业内网通常使用10.0.0.0/8、172.16.0.0/12或192.168.0.0/16。考虑到未来与本地数据中心互联,必须避免地址重叠。假设企业本地数据中心已使用10.0.0.0/16,那么OCI侧应选择不冲突的地址段,例如10.10.0.0/16。
这里有一个关键判断:VCN的CIDR块一旦创建,虽然可以添加辅助CIDR,但主CIDR不能修改。因此规划时要为未来留出余量。10.10.0.0/16可提供65536个地址,足够支撑多个子网和后续扩展。如果企业规模更大,也可以直接使用10.10.0.0/14,但要注意子网划分时的粒度。
接下来是子网划分。OCI子网是区域级或可用域级的,分为公共子网和私有子网。公共子网中的资源可以拥有公网IP,并通过Internet Gateway访问互联网;私有子网中的资源默认不能直接访问互联网,但可以通过NAT Gateway出站,或通过Service Gateway访问OCI服务。对于三层应用,建议按功能划分四个子网:
- 公共Web子网:10.10.1.0/24,用于负载均衡器和Web服务器,允许来自互联网的HTTP/HTTPS流量。
- 私有应用子网:10.10.2.0/24,用于应用服务器,只接受来自Web子网的流量。
- 私有数据库子网:10.10.3.0/24,用于数据库,只接受来自应用子网的特定端口。
- 私有管理子网:10.10.4.0/24,用于堡垒机或运维跳板,通过VPN或FastConnect访问。
每个子网使用/24,可提供251个可用地址(OCI会保留前三个和最后一个地址)。如果未来需要跨可用域部署,可以在每个可用域中重复划分子网,例如10.10.11.0/24、10.10.12.0/24等,但要注意保持地址规划的可读性。
二、路由表设计:控制流量走向
路由表决定了子网内流量的下一跳。OCI中每个子网必须关联一个路由表,默认路由表只允许VCN内部通信。我们需要为不同子网创建不同的路由表,实现最小权限的流量控制。
公共Web子网的路由表需要一条默认路由指向Internet Gateway,使Web服务器可以响应公网请求。私有应用子网和数据库子网不需要直接访问互联网,但应用服务器可能需要下载补丁或调用外部API,因此可以配置一条指向NAT Gateway的默认路由,实现单向出站访问。管理子网则需要指向VPN或FastConnect的路由,以便与本地数据中心通信。
此外,所有子网都需要一条本地路由,用于VCN内部子网之间的通信。OCI会自动添加这条路由,但我们需要通过安全列表和NSG来控制具体哪些流量被允许。
三、安全列表与NSG:定义访问边界
安全列表作用于子网级别,是子网内所有实例的默认防火墙规则;NSG作用于VNIC级别,可以更精细地控制实例之间的访问。对于三层应用,建议采用“安全列表做粗粒度隔离,NSG做细粒度控制”的组合策略。
公共Web子网的安全列表应允许来自0.0.0.0/0的TCP 80和443入站,以及来自VCN内部的SSH或管理端口。私有应用子网的安全列表应拒绝所有来自互联网的入站流量,只允许来自Web子网CIDR的特定应用端口,例如8080。数据库子网的安全列表只允许来自应用子网CIDR的1521端口(Oracle数据库)或3306端口(MySQL)。管理子网则只允许来自本地数据中心CIDR的SSH端口。
出站规则同样重要。默认安全列表允许所有出站流量,但为了安全,可以限制数据库子网只能向应用子网发起响应流量,禁止主动外联。NSG可以进一步细化到具体实例,例如只允许Web服务器实例访问应用服务器实例的8080端口。
四、多层级VCN拓扑设计示例
下面这张SVG图展示了完整的VCN拓扑结构。图中包含一个VCN(10.10.0.0/16),四个子网分别位于不同的可用域或同一可用域内,通过Internet Gateway、NAT Gateway、Service Gateway和VPN Gateway与外部网络连接。路由表和安全列表的关联关系也在图中标注。
这张拓扑图清晰地展示了四个子网的功能定位、地址范围、安全策略和路由指向。公共Web子网通过Internet Gateway暴露服务,私有应用子网通过NAT Gateway实现出站访问,数据库子网完全封闭在VCN内部,管理子网通过VPN与本地数据中心打通。每个子网的安全列表和NSG规则都遵循最小权限原则,形成层层递进的访问控制。
五、规划检查清单与常见陷阱
在实际操作中,建议在创建资源前完成以下检查:VCN CIDR是否与本地数据中心或其他VCN重叠;子网CIDR是否在VCN范围内且不重叠;每个子网是否关联了正确的路由表和安全列表;公共子网是否只放置必须暴露的资源;私有子网是否配置了NAT Gateway或Service Gateway以满足出站需求;安全列表的入站和出站规则是否成对考虑。
常见的陷阱包括:将数据库子网错误地关联到公共路由表,导致数据库意外暴露;安全列表只配置入站规则而忽略出站规则,导致响应流量被阻断;子网CIDR划分过小,后续无法扩展;以及忘记为管理子网配置VPN路由,导致运维通道不通。这些问题在规划阶段通过表格和拓扑图逐一核对,可以大幅降低后期返工成本。