你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何使用已启用 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
AWS 隧道 2 到 Azure 实例 1 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 在 CIDR 中使用 /30 的第一个 IP 地址,Azure 使用第二个 IP 地址。 这意味着,需要在 AWS /30 CIDR 中为两个 IP 地址保留空间。

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

重要

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

先决条件

必须同时具有带活动订阅的 Azure 帐户和 AWS 帐户。 如果还没有 Azure 订阅,可以激活 MSDN 订户权益或注册获取免费帐户

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

创建 VNet

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

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

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

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

在本部分中,你将创建主动-主动 VPN 网关。 可以参阅站点到站点教程了解具体步骤。

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

  • 名称:VNet1GW

  • 区域:美国东部

  • 网关类型: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 配置中包含 AWS 隧道 1 到 Azure 实例 0 和 AWS 隧道 2 到 Azure 实例 0 的 IP 地址。 只有在添加第一个 APIPA BGP IP 地址后,第二个输入才会出现。

      • 示例:169.254.21.2、169.254.22.2
    • 将两个地址添加到“第二个自定义 Azure APIPA BGP IP 地址”。 包括AWS 隧道 1 到 Azure 实例 1以及AWS 隧道 2 到 Azure 实例 1的 IP 地址,这些都来自您选择的APIPA 配置。 只有在你添加了第一个 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。 对于这四个隧道中的每个隧道,你同时具有本地网络网关和站点到站点连接。

重要

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

创建本地网络网关

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

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

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

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

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

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

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

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

    • 对于“配置 BGP 设置”选择“是” 。
    • 对于“自治系统编号 (ASN)”,请输入您 AWS VPN 的 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 网关(实例 1)的第二个公共 IP 地址建立连接,只需使用自定义的次要 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