如何使用已启用 BGP 的 VPN 网关连接 AWS 和 Azure

本文会引导你在 Azure 与 AWS Amazon Web Services 之间设置已启用 BGP 的连接。 你将使用已启用 BGP 和主动-主动模式的 Azure VPN 网关,以及具有两个站点到站点连接的 AWS 虚拟专用网关。

体系结构

在此设置中,你会创建以下资源:

Azure

  • 一个虚拟网络
  • 一个已启用主动-主动模式和 BGP 的虚拟网络网关
  • 四个本地网络网关
  • 四个站点到站点连接

AWS

  • 一个虚拟私有云 (VPC)
  • 一个虚拟专用网关
  • 两个客户网关
  • 两个站点到站点连接,各自具有两个隧道(总共四个隧道)

AWS 上的站点到站点连接有两个隧道,各自具有自己的外部 IP 地址和内部 IPv4 CIDR(用于 BGP APIPA)。 主动-被动 VPN 网关仅支持一个自定义 BGP APIPA。 需要在 Azure VPN 网关上启用主动-主动模式,才能连接到多个 AWS 隧道。

在 AWS 端,你会为两个 Azure VPN 网关实例中的每个实例创建客户网关和站点到站点连接(总共四个传出隧道)。 在 Azure 中,需要创建四个本地网关和四个连接来接收这四个 AWS 隧道。

显示此设置的体系结构的示意图

选择 BGP APIPA 地址

可以在本教程中将以下值用于 BGP APIPA 配置。

隧道 Azure 自定义 Azure APIPA BGP IP 地址 AWS BGP 对等 IP 地址 AWS 内部 IPv4 CIDR
到 Azure 实例 0 的 AWS 隧道 1 169.254.21.2 169.254.21.1 169.254.21.0/30
到 Azure 实例 0 的 AWS 隧道 2 169.254.22.2 169.254.22.1 169.254.22.0/30
到 Azure 实例 1 的 AWS 隧道 1 169.254.21.6 169.254.21.5 169.254.21.4/30
到 Azure 实例 1 的 AWS 隧道 2 169.254.22.6 169.254.22.5 169.254.22.4/30

还可以设置自己的自定义 APIPA 地址。 对于每个隧道,AWS 需要处于 APIPA 范围 169.254.0.0/16 中的 /30 内部 IPv4 CIDR 。 此 CIDR 还必须处于 VPN 的 Azure 保留 APIPA 范围中,该范围从 169.254.21.0 到 169.254.22.255 。 AWS 使用 /30 内部 CIDR 中 的第一个 IP 地址,Azure 使用第二个 IP 地址。 这意味着,需要在 AWS /30 CIDR 中为两个 IP 地址保留空间。

例如,如果将 AWS 内部 IPv4 CIDR”设置为 169.254.21.0/30,AWS 将使用 BGP IP 地址 169.254.21.1 以及 IP 地址 169.254.21.2

重要

  • APIPA 地址不得在本地 VPN 设备与所有已连接 Azure VPN 网关之间重叠。
  • 如果选择在 VPN 网关上配置多个 APIPA BGP 对等地址,还必须使用所选的相应 IP 地址配置所有连接对象。 如果失败,无论存在多少个 IP,所有连接都会使用列表中的第一个 APIPA IP 地址。

先决条件

必须同时具有带活动订阅的 Azure 帐户和 AWS 帐户。 如果还没有 Azure 订阅,可以注册一个试用帐户

第 1 部分:在 Azure 中创建主动-主动 VPN 网关

创建 VNet

创建虚拟网络。 可以参阅站点到站点教程了解具体步骤。

在本练习中,我们使用以下示例值:

  • 订阅:如果有多个订阅,请确保使用正确的订阅。
  • 资源组:TestRG1
  • 名称:VNet1
  • 位置:中国北部 3
  • IPv4 地址空间:10.1.0.0/16
  • 子网名称:FrontEnd
  • 子网地址范围:10.1.0.0/24

创建具有 BGP 的主动-主动 VPN 网关

在此部分,需要创建一个主动-主动 VPN 网关。 可以参阅站点到站点教程了解具体步骤。

在本练习中,我们使用以下示例值:

  • 名称:VNet1GW

  • 区域:中国北部 3

  • 网关类型:VPN

  • VPN 类型:基于路由

  • SKU:VpnGw2AZ

  • 代系:第 2 代

  • 虚拟网络:VNet1

  • 网关子网地址范围:10.1.1.0/24

  • 公共 IP 地址:新建

  • 公共 IP 地址名称:VNet1GWpip

  • 可用性区域:区域冗余

  • 启用主动-主动模式:已启用

  • 第二个公共 IP 地址:新建

  • 公共 IP 地址 2 名称:VNet1GWpip2

  • 可用性区域:区域冗余

  • BGP 值:配置 BGP 时,请注意以下设置

    • 对于“配置 BGP”选择“已启用”,以显示 BGP 配置部分 。

    • 填写“自治系统编号(ASN)”。 此 ASN 必须与 AWS 使用的 ASN 不同。

      • 示例:65000
    • 将两个地址添加到“自定义 Azure APIPA BGP IP 地址”。 按照选择的 APIPA 配置包含 “到 Azure 实例 0 的 AWS 隧道 1”和“到 Azure 实例 0 的 AWS 隧道 2”的 IP 地址 。 第二个输入仅在添加第一个 APIPA BGP IP 地址后才显示。

      • 示例:169.254.21.2、169.254.22.2
    • 将两个地址添加到“第二个自定义 Azure APIPA BGP IP 地址”。 按照选择的 APIPA 配置包含 “到 Azure 实例 1 的 AWS 隧道 1”和“到 Azure 实例 1 的 AWS 隧道 2”的 IP 地址 。 第二个输入仅在添加第一个 APIPA BGP IP 地址后才显示。

      • 示例:169.254.21.6、169.254.22.6

选择“查看 + 创建” ,运行验证。 验证通过后,选择“创建” 以部署 VPN 网关。 创建网关通常需要 45 分钟或更长的时间,具体取决于所选的网关 SKU。 可以在网关的“概述”页上查看部署状态。

若查看分配给网关的公共 IP 地址,请转到门户中的虚拟网络网关,然后导航到“设置”->“属性”。

第 2 部分:从 AWS 连接到 VPN 网关

在此部分中,你会从 AWS 连接到 Azure VPN 网关。 有关更新的说明,请始终参阅官方 AWS 文档

创建 VPC

使用下面的值和最新 AWS 文档创建 VPC。

  • 名称:VPC1
  • CIDR 块:10.2.0.0/16

确保 CIDR 块不会与在 Azure 中创建的虚拟网络重叠。

创建虚拟专用网关

使用下面的值和最新 AWS 文档创建虚拟专用网关。

  • 名称:AzureGW
  • ASN:Amazon 默认 ASN (64512)
  • VPC:附加到 VPC1

如果选择使用自定义 ASN,请确保它与 Azure 中使用的 ASN 不同。

启用路由传播

使用最新 AWS 文档在虚拟专用网关上启用路由传播。

创建客户网关

使用下面的值和最新 AWS 文档创建两个客户网关。

客户网关 1 设置:

  • 名称:ToAzureInstance0
  • 路由:动态
  • BGP ASN:65000(Azure VPN 网关的 ASN)
  • IP 地址:Azure VPN 网关的第一个公共 IP 地址

客户网关 2 设置:

  • 名称:ToAzureInstance1
  • 路由:动态
  • BGP ASN:65000(Azure VPN 网关的 ASN)
  • IP 地址:Azure VPN 网关的第二个公共 IP 地址

可以在虚拟网络网关的“配置”部分中找到 Azure 上的“公共 IP 地址”和“第二个公共 IP 地址” 。

创建站点到站点 VPN 连接

使用下面的值和最新 AWS 文档创建两个站点到站点 VPN 连接。

站点到站点连接 1 设置:

  • 名称:ToAzureInstance0
  • 目标网关类型:虚拟专用网关
  • 虚拟专用网关:AzureGW
  • 客户网关:现有
  • 客户网关:ToAzureInstance0
  • 路由选项:动态(需要 BGP)
  • 本地 IPv4 网络 CIDR:0.0.0.0/0
  • 隧道内部 IP 版本:IPv4
  • 隧道 1 的内部 IPv4 CIDR:169.254.21.0/30
  • 隧道 1 的预共享密钥:选择安全密钥
  • 隧道 2 的内部 IPv4 CIDR:169.254.22.0/30
  • 隧道 2 的预共享密钥:选择安全密钥
  • 启动操作:启动

站点到站点连接 2 设置:

  • 名称:ToAzureInstance1
  • 目标网关类型:虚拟专用网关
  • 虚拟专用网关:AzureGW
  • 客户网关:现有
  • 客户网关:ToAzureInstance1
  • 路由选项:动态(需要 BGP)
  • 本地 IPv4 网络 CIDR:0.0.0.0/0
  • 隧道内部 IP 版本:IPv4
  • 隧道 1 的内部 IPv4 CIDR:169.254.21.4/30
  • 隧道 1 的预共享密钥:选择安全密钥
  • 隧道 2 的内部 IPv4 CIDR:169.254.22.4/30
  • 隧道 2 的预共享密钥:选择安全密钥
  • 启动操作:启动

对于两个连接的“隧道 1 的内部 IPv4 CIDR”和“隧道 2 的内部 IPv4 CIDR” ,请参阅选择的 APIPA 配置。

第 3 部分:从 Azure 连接到 AWS 客户网关

接下来,将 AWS 隧道连接到 Azure。 对于这四个隧道中的每个隧道,你同时具有本地网络网关和站点到站点连接。

重要

使用其各自的外部 IP 地址四个 AWS 隧道中的每个隧道重复以下部分。

创建本地网络网关

重复这些说明以创建每个本地网关。

  1. 在 Azure 门户中,从市场中导航到“本地网络网关”资源,然后选择“创建”。

  2. 选择用于创建虚拟网络网关的相同“订阅”、“资源组”和“区域” 。

  3. 为本地网络网关输入名称。

  4. 将“IP 地址”保留为“终结点”的值 。

  5. 对于“IP 地址”,输入所创建的隧道的“外部 IP 地址”(来自 AWS) 。

  6. 将“地址空间”留空,然后选择“高级” 。

  7. 在“高级”选项卡上,配置以下设置:

    • 对于“配置 BGP 设置”选择“是” 。
    • 对于“自治系统编号(ASN)”,输入 AWS 虚拟专用网络的 ASN。 如果将 ASN 保留为 AWS 默认值,请使用 ASN 64512。
    • 对于“BGP 对等 IP 地址”,基于选择的 APIPA 配置输入 AWS BGP 对等 IP 地址。

创建连接

重复这些步骤以创建每个所需的连接。

  1. 打开虚拟网络网关的页面,导航到“连接”页面 。

  2. 在“连接”页面,选择“+ 添加”。

  3. 在“基本信息”页面,完成以下值:

    • 连接类型:站点到站点 (IPsec)
    • 名称:输入连接的名称。 示例:AWSTunnel1toAzureInstance0。
  4. 在“设置”页面,完成以下值:

    • 虚拟网关:选择 VPN 网关。
    • 本地网关:选择创建的本地网关。
    • 输入与建立 AWS 连接时输入的预共享密钥匹配的共享密钥(PSK)
    • 启用 BGP:选择启用。
    • 启用自定义 BGP 地址:选择启用。
  5. 在“自定义 BGP 地址”下:

    • 根据选择的 APIPA 配置输入自定义 BGP 地址。
    • 自定义 BGP 地址(AWS 中的内部 IPv4 CIDR)必须与用于此连接的本地网络网关中指定的 IP 地址(AWS 中的外部 IP 地址)匹配 。
    • 只会使用两个自定义 BGP 地址中的一个,具体取决于所指定的隧道。
    • 要建立从 AWS 到 VPN 网关的第一个公共 IP 地址(实例 0)的连接,仅使用主自定义 BGP 地址
    • 要建立从 AWS 到 VPN 网关的第二个公共 IP 地址(实例 1)的连接,仅使用次要自定义 BGP 地址
    • 将另一个自定义 BGP 地址保留为默认值。

    如果使用了默认 APIPA 配置,可以使用以下地址。

    隧道 主自定义 BGP 地址 次要自定义 BGP 地址
    到 Azure 实例 0 的 AWS 隧道 1 169.254.21.2 不使用(选择 169.254.21.6)
    到 Azure 实例 0 的 AWS 隧道 2 169.254.22.2 不使用(选择 169.254.21.6)
    到 Azure 实例 1 的 AWS 隧道 1 不使用(选择 169.254.21.2) 169.254.21.6
    到 Azure 实例 1 的 AWS 隧道 2 不使用(选择 169.254.21.2) 169.254.22.6
  6. 配置下列设置:

    • FastPath:保留默认(取消选择)
    • IPsec/IKE 策略:默认值
    • 使用基于策略的流量选择器:禁用
    • DPD 超时(以秒为单位):保留默认值
    • 连接模式:可以选择任何可用的选项(默认、仅限发起方、仅限响应方)。 有关详细信息,请参阅 VPN 网关设置 - 连接模式
  7. 选择“保存”。

  8. 查看 + 创建”以创建连接。

  9. 重复这些步骤以创建其他连接。

  10. 在继续下一部分之前,对于四个 AWS 隧道中的每个隧道,请验证你是否具有本地网络网关连接

第 4 部分:(可选)检查连接状态

在 Azure 上检查连接状态

  1. 打开虚拟网络网关的页面,导航到“连接”页面 。

  2. 验证所有 4 个连接是否都显示为“已连接”。

    屏幕截图显示了验证连接。

在 Azure 上检查 BGP 对等状态

  1. 打开虚拟网络网关的页面,导航到“BGP 对等机”页面 。

  2. 在“BGP 对等机”表中,验证具有指定的对等地址的所有连接是否都显示为“已连接”,并且正在交换路由 。

    屏幕截图显示了验证 BGP 对等机。

在 AWS 上检查连接状态

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择“站点到站点 VPN 连接”。
  3. 选择建立的第一个连接,然后选择“隧道详细信息”选项卡。
  4. 验证两个隧道的“状态”是否显示为“正常运行” 。
  5. 验证两个隧道的“详细信息”是否显示一个或多个 BGP 路由。

后续步骤

有关 VPN 网关的详细信息,请参阅FAQ