使用 Fortinet FortiGate NVA 实现 Azure Stack Hub 实例之间的 VNet 到 VNet 连接

本文介绍如何使用 Fortinet FortiGate NVA(网络虚拟设备)将一个Azure Stack Hub中的 VNET 连接到另一个Azure Stack Hub中的 VNET。

本文介绍如何应对当前的 Azure Stack Hub 限制,该限制使租户在两个环境之间只能设置一个 VPN 连接。 本文介绍如何在 Linux 虚拟机上设置自定义网关,以允许跨不同Azure Stack Hub建立多个 VPN 连接。 本文中的过程将在每个 VNET 中部署两个具有 FortiGate NVA 的 VNET:每个 Azure Stack Hub 环境各部署一个。 此外,其中详细说明了在这两个 VNET 之间设置 IPSec VPN 所要做出的更改。 对于每个 Azure Stack Hub 中的每个 VNET,应该重复本文中的步骤。

先决条件

  • 访问具有可用容量的Azure Stack Hub集成系统,以部署此解决方案所需的计算、网络和资源要求。

  • 已下载网络虚拟设备 (NVA) 解决方案并将其发布到 Azure Stack Hub 市场。 NVA 控制从外围网络到其他网络或子网的网络流量。 此过程使用 Fortinet FortiGate 下一代防火墙单一 VM 解决方案。

  • 至少需要两个可用的 FortiGate 许可证文件来激活 FortiGate NVA。 有关如何获取这些许可证的信息,请参阅 Fortinet 文档库文章 “注册和下载许可证”。

    此过程使用单一 FortiGate-VM 部署。 此过程介绍了将 FortiGate NVA 连接到本地网络中Azure Stack Hub VNET 的步骤。

    有关如何在主动-被动(HA)配置中部署 FortiGate 解决方案的更多信息,请参阅 Fortinet 文档库中的Azure 上的 FortiGate-VM 的 HA。

部署参数

下表汇总了在这些部署中使用的参数供用户参考:

部署 1:Forti1

FortiGate 实例名称 Forti1
BYOL 许可证/版本 6.0.3
FortiGate 管理用户名 fortiadmin
资源组名称 forti1-rg1
虚拟网络名称 forti1vnet1
VNET 地址空间 172.16.0.0/16*
公共 VNET 子网名称 forti1-PublicFacingSubnet
公共 VNET 地址前缀 172.16.0.0/24*
VNET 内部的子网名称 forti1-InsideSubnet
VNET 内部的子网前缀 172.16.1.0/24*
FortiGate NVA 的 VM 大小 标准 F2s_v2
公共 IP 地址名称 forti1-publicip1
公共 IP 地址类型 静态

部署二:Forti2

FortiGate 实例名称 Forti2
BYOL 许可证/版本 6.0.3
FortiGate 管理用户名 fortiadmin
资源组名称 forti2-rg1
虚拟网络名称 forti2vnet1
VNET 地址空间 172.17.0.0/16*
公共 VNET 子网名称 forti2-PublicFacingSubnet
公共 VNET 地址前缀 172.17.0.0/24*
VNET 内部的子网名称 Forti2-InsideSubnet
VNET 内部的子网前缀 172.17.1.0/24*
FortiGate NVA 的 VM 大小 标准 F2s_v2
公共 IP 地址名称 Forti2-publicip1
公共 IP 地址类型 静态

注意

如果前述地址空间以任何方式与本地部署网络环境(包括 Azure Stack Hub 的 VIP 池)存在重叠,请选择另一组地址空间和子网前缀。 此外,请确保地址范围不会相互重叠。

部署 FortiGate NGFW Marketplace 项目

对两个 Azure Stack Hub 环境重复这些步骤。

  1. 打开 Azure Stack Hub 用户门户。 请务必使用至少拥有订阅“参与者”权限的凭据。

  2. 选择 创建资源,然后搜索 。

    屏幕截图显示了搜索 fortigate 的结果中的单行结果,找到的项目名称为 FortiGate NGFW - Single VM Deployment(BYOL)。

  3. 选择FortiGate NGFW,然后选择创建。

  4. 使用部署参数表格中的参数填写“基本信息”。

    您的表单应包含以下信息:

    屏幕截图显示了“基本信息”对话框的文本框(如实例名称和 BYOL 许可证),其中填充了“部署表”中的值。

  5. 选择“确定” 。

  6. 提供部署参数中的虚拟网络、子网和 VM 大小详细信息。

    如果要使用不同的名称和范围,请注意不要使用与其他Azure Stack Hub环境中的其他 VNET 和 FortiGate 资源冲突的参数。 在设置 VNET 中的 VNET IP 范围和子网范围时,此限制尤其如此。 请检查它们是否不与创建的其他 VNET 的 IP 范围重叠。

  7. 选择“确定” 。

  8. 配置要用于 FortiGate NVA 的公共 IP:

    屏幕截图显示了 IP 分配对话框的公共 IP 地址名称文本框,其中显示了 forti1-publicip1 的值(从部署表)。

  9. 选择OK,然后选择OK。

  10. 选择“创建” 。

部署大约需要 10 分钟。 现在可以重复上述步骤,以在另一 Azure Stack Hub 环境中创建另一个 FortiGate NVA 和 VNET 部署。

为每个 VNET 配置路由 (UDR)

对 forti1-rg1 和 forti2-rg1 这两个部署执行以下步骤。

  1. 转到 Azure Stack Hub 门户中的 forti1-rg1 资源组。

    屏幕截图显示了 forti1-rg1 资源组中的资源列表。

  2. 选择forti1-forti1-InsideSubnet-routes-xxxx资源。

  3. 在“设置”下选择“路由”。

    屏幕截图显示了突出显示的“设置”路由项。

  4. 删除 到 Internet 路由。

    屏幕截图显示了高亮显示的到 Internet 的路由。还有一个删除按钮。

  5. 请选择“是”。

  6. 选择 添加 。

  7. 将路由命名为 to-forti1 或 to-forti2。 如果您使用的是其他 IP 范围,请使用您自己的 IP 范围。

  8. 输入:

    • forti1:172.17.0.0/16
    • forti2:172.16.0.0/16

    如果使用其他 IP 范围,请输入 IP 范围。

  9. 为下一跃点类型选择虚拟设备。

    • forti1:172.16.1.4
    • forti2:172.17.0.4

    如果使用其他 IP 范围,请输入 IP 范围。

    屏幕截图显示 to-forti2 的“编辑路由”对话框包含值文本框:地址前缀为 172.17.0.0/16,下一跃点类型为虚拟设备,下一跃点地址为 172.16.1.4。

  10. 选择“保存”。

对每个资源组中的每个 InsideSubnet 路由重复这些步骤。

激活 FortiGate NVA 并在每个 NVA 上配置 IPSec VPN 连接

需要 Fortinet 的有效许可证文件才能激活每个 FortiGate NVA。 在你激活每个 NVA 之前,这些 NVA 无法运行。 有关如何获取许可证文件和激活 NVA 的步骤的详细信息,请参阅 Fortinet 文档库文章 “注册和下载许可证”。

必须获取两个许可证文件:一个用于每个 NVA。

在两个 NVA 之间创建 IPSec VPN

激活 NVA 后,在两个 NVA 之间创建 IPSec VPN。 按照 forti1 NVA 和 forti2 NVA 的步骤操作:

  1. 转到 fortiX VM 概述页以获取分配的公共 IP 地址:

    屏幕截图显示了 forti1 概述页,其中显示了资源组、状态等。

  2. 复制分配的 IP 地址,打开浏览器,然后将该地址粘贴到地址栏中。 浏览器可能会警告你安全证书不受信任。 仍要继续。

  3. 输入在部署期间提供的 FortiGate 管理用户名和密码。

    屏幕截图显示了登录屏幕,其中包含用户名和密码的“登录”按钮和文本框。

  4. 选择系统固件。

  5. 选择显示最新固件的方框,例如 FortiOS v6.2.0 build0866。

    截图显示 FortiOS v6.2.0 build0866 固件包含一个指向发布说明的链接,以及两个按钮:备份配置并升级和升级。

  6. 出现提示时,选择备份配置和升级并继续。

  7. NVA 将其固件更新为最新版本,然后重新启动。 此过程大约需要五分钟时间。 重新登录到 FortiGate Web 控制台。

  8. 选择 VPN>IPSec 向导。

  9. 输入 VPN 的名称,例如 conn1 在 VPN 创建向导中。

  10. 选择 此站点位于 NAT 后面。

    VPN 创建向导的截图显示当前处于第一步,模板类型为“站点到站点的 VPN 设置”,远程设备类型为“FortiGate”,NAT 配置为“此站点位于 NAT 后面”。

  11. 选择“下一页”。

  12. 输入要连接到的本地 VPN 设备的远程 IP 地址。

  13. 选择“port1”作为“传出接口”。

  14. 选择“预共享密钥”,输入(并记下)一个预共享密钥。

    注意

    需要此密钥才能在本地 VPN 设备上设置连接。 密钥必须完全匹配。

    屏幕截图显示 VPN 创建向导当前处于第二步“身份验证”,所选值已高亮显示。

  15. 选择“下一页”。

  16. 对于“本地接口”,请选择“port2”。

  17. 输入本地子网范围:

    • forti1:172.16.0.0/16
    • forti2:172.17.0.0/16

    如果使用其他 IP 范围,请输入 IP 范围。

  18. 输入表示通过本地 VPN 设备连接到的本地网络的相应远程子网:

    • forti1:172.16.0.0/16
    • forti2:172.17.0.0/16

    如果使用其他 IP 范围,请输入 IP 范围。

    屏幕截图显示了第三步“策略和路由”上的 VPN 创建向导,其中显示了所选值和输入的值。

  19. 选择 创建

  20. 选择网络接口。

    Screenshto 显示具有两个接口的接口列表:端口 1(已配置)和端口 2(不是)。有用于创建、编辑和删除接口的按钮。

  21. 双击“port2”。

  22. 在“角色”列表中选择“LAN”,选择“DHCP”作为寻址模式。

  23. 选择“确定” 。

对另一个 NVA 重复上述步骤。

启用所有第 2 阶段选择器

当你为两个 NVA 都完成此过程时:

  1. 在 forti2 FortiGate Web 控制台中,选择 监控>IPsec 监控。

    已列出 VPN 连接 conn1 的监控项。它显示为处于停机状态,其对应的第 2 阶段选择器也如此。

  2. 高亮显示 conn1 并选择调出>所有第 2 阶段选择器。

    屏幕截图显示监视器和第 2 阶段选择器均显示为在线。

测试并验证连接

现在,您可以通过 FortiGate NVA 在各个 VNET 之间进行路由。 若要验证连接,请在每个 VNET 的 InsideSubnet 中创建一个 Azure Stack Hub VM。 可以通过门户、Azure CLI或 PowerShell 创建Azure Stack Hub VM。 创建 VM 时:

  • 将Azure Stack Hub VM 放置在每个 VNET 的 InsideSubnet 上。
  • 创建时不要将任何 NSG 应用到 VM。 从门户创建 VM 时,删除默认添加的 NSG。
  • 确保 VM 防火墙规则允许用于测试连接的通信。 出于测试目的,请尽可能在 OS 中完全禁用防火墙。

后续步骤

Azure Stack Hub 网络的差异和注意事项
使用 Fortinet FortiGate 在 Azure Stack Hub 中提供网络解决方案