华为云实践:实现多VPC跨账户与IDC网络打通

时间:2024-03-29 09:08:40


前言

本文的主要目的,是记录在华为云中,通过内网NAT(当前处于公测阶段), VPC及IPSecv*n等实现多个账户下的VPC经由统一的v*n网关与数据中心互通。由于保密原因,部分IP地址进行了对应的改动。
华为云实践:实现多VPC跨账户与IDC网络打通


一、前置条件

本文的实现主要基于华为云,需要在华为云上拥有两个或以上的子账户。主账户TenantAccount 创建v*n网关与数据中心的互通。子账户SubAccountA下连接内网NAT及VPC 对等连接,间接实现与数据中心的互通。整体结构示例如下图中绿色线框标示。

二、实现步骤

1.主账户配置

a. 公共VPC创建

公共VPC的网段10.124.228.0/24属于内部网段,用于与v*n网关连通。在【虚拟私有云】控制台下创建VPC,并同时创建一个子网10.124.228.0/26。
华为云实践:实现多VPC跨账户与IDC网络打通

华为云实践:实现多VPC跨账户与IDC网络打通

b. v*n网关创建

在华为云的【虚拟专用网络】下创建v*n网关,指定VPC为刚创建的vpc-public

华为云实践:实现多VPC跨账户与IDC网络打通
创建VPC连接,本端子网配置为网段为10.124.228.0/24以及10.124.229.0/24。这两个网段作为规划的公共内网IP段。远端网段配置为10.0.0.0/16(IDC),10.138.118.4/24(办公),即为我们的目标内网网段。
华为云实践:实现多VPC跨账户与IDC网络打通关于v*n的连接策略,这个需要根据IDC网络支持的方式配置,保持一致即可。

在v*n网关创建后,VPC下的路由表中会默认添加规则,将远端的网段路由至v*n网关。
华为云实践:实现多VPC跨账户与IDC网络打通


2. 子账户配置

a. 公共VPC创建

如主账户中配置类似,创建10.124.229.0/24的公共网段vpc-public,以及用于某个内部VPC映射的子网10.124.229.0/26。
华为云实践:实现多VPC跨账户与IDC网络打通

华为云实践:实现多VPC跨账户与IDC网络打通

b. 与主账户的VPC对等连接

本步骤需要创建子账户下的vpc-public与主账户中的vpc-public之间的对等连接。关于创建跨账户的VPC对接连接,主要参考官方文档

华为云实践:实现多VPC跨账户与IDC网络打通
初始创建的时候,需要在主账户中接受。VPC对接连接创建成功后,需要配置路由。

在子账户vpc-public的路由表中,配置将对端子网10.124.228.0/26转发至VPC对等连接。
华为云实践:实现多VPC跨账户与IDC网络打通
在主账户vpc-public的路由表中,配置将对端子网10.124.229.0/26转发至VPC对等连接。
华为云实践:实现多VPC跨账户与IDC网络打通

c. 私有VPC创建

在子账户中创建一个私有VPC 172.16.0.0/16,并创建若干子网,用于安装不同的组件,如CCE, ELB等。

华为云实践:实现多VPC跨账户与IDC网络打通
如下图的示例中,子网172.16.3.0/25用于k8s集群的节点,子网172.16.4.0/25用于ELB、NAT等。
华为云实践:实现多VPC跨账户与IDC网络打通

d. 内网NAT创建

在【虚拟私有云】的内网NAT网关控制台,创建用于公用IP段的子网,直接使用公共VPC的已创建的子网即可(不同的VPC可以创建不同的子网)。
华为云实践:实现多VPC跨账户与IDC网络打通
并根据实际需要,申请若干公用IP。

华为云实践:实现多VPC跨账户与IDC网络打通

在私有VPC下创建一个NAT网关,并指定子网为172.16.4.0/25。
华为云实践:实现多VPC跨账户与IDC网络打通
按需要配置SNAT/DNAT规则。我们配置SNAT规则,用于云端访问内网。
华为云实践:实现多VPC跨账户与IDC网络打通
配置DNAT规则,用于内网访问云端。我们将k8s集群的ELB的开放给内网访问。
华为云实践:实现多VPC跨账户与IDC网络打通

e. 私有VPC路由配置

创建好内网NAT后,需要配置路由规则,将访问需要访问的内网地址段(即v*n网关的远端IP段)的下一跳设置了内网NAT。华为云实践:实现多VPC跨账户与IDC网络打通

3. 测试验证

a. 通过内网访问ELB

我们的DNS解析,将应用的域名映射为ELB的内部IP 10.124.229.18。可以正常访问。
华为云实践:实现多VPC跨账户与IDC网络打通

b. 云端访问IDC主机

华为云实践:实现多VPC跨账户与IDC网络打通


总结

以上主要记录在华为云中实现跨账户通过统一的v*n网关访问IDC的过程。其主要流程如下:

  1. 账户A下的私有VPC-A里的通过NAT路由至公用VPC-A
  2. 账户A下的公用VPC-A,与账户B下的公用VPC-B建对等连接
  3. 账户B下的公有VPC-B通过v*n 网关与IDC互通

有关ACL及安全组的配置不在此文范围内,具体明细请参考华为云官方文档,此内容供个人参考!