在过去的几十年中,站点到站点虚拟专用网络(VPN)被广泛用于连接分布式网络。本文将介绍如何使用VPC VPN网关将本地(企业)网络连接到IBM Cloud VPC,采用中转中心-辐射结构(transit hub-and-spoke architecture)进行操作。
什么是中转中心-辐射结构?
在这种架构中,每个辐射(spoke)可以由不同的业务单元或团队操作。团队可以通过VPN网关允许企业访问VPC资源,例如运行应用程序的虚拟服务实例或VPC RedHat OpenShift IBM Cloud集群。此外,通过VPN网关,还可以安全访问启用VPE的服务,例如数据库。使用这种方法,您可以享受云资源的易用性和弹性,并按需支付,只需通过VPN安全访问所需资源。
设计多区域(MZR)架构
中转中心设计与IBM多区域(MZR)集成,VPN网关是区域特定的。经过仔细研究,实施了如下的区域架构。虽然图中仅显示了两个区域,但可以扩展到三个区域:
注意事项:
- 每个区域连接一个VPN网关。企业CIDR块连接到特定的云区域VPN网关。注意,企业CIDR块较窄:192.168.0.0/24,而云CIDR块则较宽,覆盖整个云(所有VPC和所有区域):10.0.0.0/8。
- 一个表示企业区域的VPC地址前缀被添加到中转VPC中。请参阅教程中如何使用幻影地址前缀允许辐射路由流量到企业。
- 一个VPC入口路由表被添加到中转VPC中,如示例所述。它将自动路由所有来自辐射的入口流量,经过VPN网关设备,前往企业。
配置步骤
请根据配套的GitHub存储库中的TLDR部分进行操作。在编辑config_tf/terraform.tfvars
文件时,请确保以下变量已配置:
plaintext
enterprise_phantom_address_prefixes_in_transit = true
vpn = true
firewall = false
同时,考虑将make_redis = true
设置为允许为中转和辐射配置Redis实例,并与相关的虚拟专用端点网关连接。如果配置正确,即使是在辐射中的私有Redis实例也可以从企业访问。有关私有DNS配置和转发的详细信息,请参阅教程第二部分的这一部分。
当所有层级应用完毕后,运行测试(如有需要,请参阅GitHub存储库README.md中的Python配置特别说明)。所有测试应通过:
bash
python install -r requirements.txt
pytest
企业到中转的跨区域路由注意事项
最初的设计在企业与辐射之间运作良好。企业与同一区域中的中转连接也正常。但需要额外配置以解决企业与跨区域中转的路由失败:
- 在没有额外的跨区域VPN网关连接的情况下,默认路由表中没有返回到跨区域企业的VPC路由表条目(见红线)。VPN网关连接会自动将路由添加到中转VPC的默认路由表中,但仅在包含VPN网关的区域内。在上述图中,工作节点10.2.0.4没有返回到192.168.0.4的路由。
- 为中转VPC区域增加额外的跨区域连接解决了这个问题,如蓝线所示。
结论
站点到站点VPN可能正是您需要的技术,用于将企业连接到IBM Cloud VPC中的多区域设计。按照本文描述的步骤,您可以最小化完全连接企业到云所需的VPN网关数量。享受与VPC资源(如虚拟服务器实例)以及通过虚拟专用端点网关可以访问的资源的私密连接。