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

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

体系结构

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

蔚蓝

  • 一个虚拟网络
  • 一个已启用主动-主动模式和 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
AWS 隧道 1 到 Azure 实例 0 169.254.21.2 169.254.21.1 169.254.21.0/30
AWS 隧道 2 到 Azure 实例 0 169.254.22.2 169.254.22.1 169.254.22.0/30
AWS 隧道 1 至 Azure 实例 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 使用 /30 内部 CIDR 中 的第一个 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 订阅,可以注册一个试用帐户

在 Azure 中创建双活 VPN 网关

创建虚拟网络

创建虚拟网络。 可以参阅站点到站点教程了解具体步骤。 在本练习中,我们使用以下示例值:

设置 价值
Subscription 如果有多个订阅,请验证是否使用了正确的订阅。
资源组 TestRG1
名称 VNet1
位置 中国北部 3
IPv4 地址空间 10.1.0.0/16
子网名称 FrontEnd
子网地址范围 10.1.0.0/24

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

在本节中,您将创建双活 VPN 网关。 可以参阅站点到站点教程了解具体步骤。 当您到达本教程的“配置”部分时,请使用以下设置启用 BGP 和主动-主动模式。 在本练习中,我们使用以下示例值:

设置 价值
姓名 VNet1GW
区域 中国北部 3
网关类型 VPN
VPN 类型 基于路由
SKU VpnGw2AZ
Generation 第 2 代
虚拟网络 VNet1
网关子网地址范围 10.1.1.0/24
公共 IP 地址 新建
公共 IP 地址名称 VNet1GWpip
可用区 区域冗余
启用主动-主动模式 已启用
第二个公共 IP 地址 新建
公共 IP 地址 2 名称 VNet1GWpip2
可用区 区域冗余
BGP 设置 价值
配置 BGP 已启用
ASN (自治系统编号) 65000(示例值,必须与 AWS 使用的 ASN 不同)
自定义 Azure APIPA BGP IP 地址 将两个地址添加到“自定义 Azure APIPA BGP IP 地址”。 包含从您选择的 APIPA 配置中获取的AWS 隧道 1 到 Azure 实例 0AWS 隧道 2 到 Azure 实例 0的 IP 地址。 第二个输入仅在添加第一个 APIPA BGP IP 地址后才显示。 示例:169.254.21.2、169.254.22.2
第二个自定义 Azure APIPA BGP IP地址 将两个地址添加至“第二个自定义 Azure APIPA BGP IP 地址”。 请根据您选择的APIPA 配置,包含“AWS 隧道 1 到 Azure 实例 1”和“AWS 隧道 2 到 Azure 实例 1”的 IP 地址。 在您添加第一个 APIPA BGP IP 地址后,第二个输入框才会出现。 示例:169.254.21.6、169.254.22.6

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

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

连接到您的 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 的预共享密钥 选择安全密钥。
启动操作 Start
连接 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 的预共享密钥 选择安全密钥。
启动操作 Start

对于 隧道 1 的内部 IPv4 CIDR隧道 2 的内部 IPv4 CIDR,两者的连接请参阅 所选的 APIPA 配置

从 Azure 连接到 AWS 客户网关

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

重要

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

创建本地网络网关

使用以下值创建每个本地网络网关。 有关步骤,请参阅 创建本地网络网关。 请确保根据所选的 APIPA 配置为每个隧道使用正确的 外部 IP 地址BGP 对等 IP 地址 ,重复这些步骤以创建每个本地网关。

设置 价值
名称 新本地网关的名称。
终结点 IP地址。
IP 地址 要连接到的 AWS 隧道的外部 IP 地址(而不是 BGP 对等 IP 地址)。
地址空间 留空。
“高级”选项卡 配置 BGP 设置:
自治系统编号 (ASN) AWS 虚拟专用网络的 ASN。 如果将您的 ASN 保留为 AWS 默认值,请使用 ASN 64512
BGP 对等 IP 地址 根据 所选的 APIPA 配置输入 AWS BGP 对等 IP 地址。

创建连接

在本部分中,将为每个 AWS 隧道创建站点到站点连接。 创建连接时,请确保选择与要连接的隧道对应的本地网络网关,并根据所选的 APIPA 配置输入正确的 BGP 对等 IP 地址。 有关步骤,请参阅 “创建连接”。

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

  1. “基本信息 ”页上,完成以下设置:

    “基本信息”页 价值
    连接类型 站点到站点 (IPsec)
    名称 输入连接的名称。 示例:AWSTunnel1toAzureInstance0。
  2. “设置” 页上,完成以下设置:

    设置页面 价值
    虚拟网络网关 选择 VPN 网关。
    本地网络网关 选择创建的本地网络网关。
    共享密钥 (PSK) 输入与在建立 AWS 连接时输入的预共享密钥匹配的共享密钥。
    启用 BGP 选择以启用。
    启用自定义 BGP 地址 选择以启用。
  3. 在“自定义 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)
    AWS 隧道 1 到 Azure 实例 1 不使用(选择 169.254.21.2) 169.254.21.6
    到 Azure 实例 1 的 AWS 隧道 2 不使用(选择 169.254.21.2) 169.254.22.6
  4. 配置下列设置:

    设置 价值
    FastPath 保留默认值(未选中)。
    IPsec/IKE 策略 违约
    使用基于策略的流量选择器 禁用
    DPD 超时(以秒为单位) 保留默认值。
    连接模式 可以选择任何可用选项(默认、仅发起方、仅响应方)。 有关详细信息,请参阅 VPN 网关设置 - 连接模式
  5. 保存设置,查看配置,并创建连接。 重复这些步骤以创建其他连接。

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

检查连接的状态

这些步骤是可选的,但有助于验证连接是否正常工作。

在 Azure 上检查连接状态

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

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

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

在 Azure 上检查 BGP 对等状态

  1. 打开 虚拟网络网关 的页面并导航到 BGP 对等 页。

  2. 在“BGP 对等体”表中,验证所有与您指定的对等地址的连接均显示为“已连接”,且正在进行路由交换。

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

在 AWS 上检查连接状态

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

后续步骤

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