如何使用已启用 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 配置。
隧道 | 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 订阅,可以注册一个试用帐户。
创建虚拟网络。 可以参阅站点到站点教程了解具体步骤。
在本练习中,我们使用以下示例值:
- 订阅:如果有多个订阅,请确保使用正确的订阅。
- 资源组:TestRG1
- 名称:VNet1
- 位置:中国北部 3
- IPv4 地址空间:10.1.0.0/16
- 子网名称:FrontEnd
- 子网地址范围:10.1.0.0/24
在此部分,需要创建一个主动-主动 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 地址,请转到门户中的虚拟网络网关,然后导航到“设置”->“属性”。
在此部分中,你会从 AWS 连接到 Azure VPN 网关。 有关更新的说明,请始终参阅官方 AWS 文档。
使用下面的值和最新 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 地址” 。
使用下面的值和最新 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 配置。
接下来,将 AWS 隧道连接到 Azure。 对于这四个隧道中的每个隧道,你同时具有本地网络网关和站点到站点连接。
重要
使用其各自的外部 IP 地址对四个 AWS 隧道中的每个隧道重复以下部分。
重复这些说明以创建每个本地网关。
在 Azure 门户中,从市场中导航到“本地网络网关”资源,然后选择“创建”。
选择用于创建虚拟网络网关的相同“订阅”、“资源组”和“区域” 。
为本地网络网关输入名称。
将“IP 地址”保留为“终结点”的值 。
对于“IP 地址”,输入所创建的隧道的“外部 IP 地址”(来自 AWS) 。
将“地址空间”留空,然后选择“高级” 。
在“高级”选项卡上,配置以下设置:
- 对于“配置 BGP 设置”选择“是” 。
- 对于“自治系统编号(ASN)”,输入 AWS 虚拟专用网络的 ASN。 如果将 ASN 保留为 AWS 默认值,请使用 ASN 64512。
- 对于“BGP 对等 IP 地址”,基于选择的 APIPA 配置输入 AWS BGP 对等 IP 地址。
重复这些步骤以创建每个所需的连接。
打开虚拟网络网关的页面,导航到“连接”页面 。
在“连接”页面,选择“+ 添加”。
在“基本信息”页面,完成以下值:
- 连接类型:站点到站点 (IPsec)
- 名称:输入连接的名称。 示例:AWSTunnel1toAzureInstance0。
在“设置”页面,完成以下值:
- 虚拟网关:选择 VPN 网关。
- 本地网关:选择创建的本地网关。
- 输入与建立 AWS 连接时输入的预共享密钥匹配的共享密钥(PSK)。
- 启用 BGP:选择启用。
- 启用自定义 BGP 地址:选择启用。
在“自定义 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 配置下列设置:
- FastPath:保留默认(取消选择)
- IPsec/IKE 策略:默认值
- 使用基于策略的流量选择器:禁用
- DPD 超时(以秒为单位):保留默认值
- 连接模式:可以选择任何可用的选项(默认、仅限发起方、仅限响应方)。 有关详细信息,请参阅 VPN 网关设置 - 连接模式。
选择“保存”。
“查看 + 创建”以创建连接。
重复这些步骤以创建其他连接。
在继续下一部分之前,对于四个 AWS 隧道中的每个隧道,请验证你是否具有本地网络网关和连接。
打开虚拟网络网关的页面,导航到“连接”页面 。
验证所有 4 个连接是否都显示为“已连接”。
打开虚拟网络网关的页面,导航到“BGP 对等机”页面 。
在“BGP 对等机”表中,验证具有指定的对等地址的所有连接是否都显示为“已连接”,并且正在交换路由 。
- 打开 Amazon VPC 控制台
- 在导航窗格中,选择“站点到站点 VPN 连接”。
- 选择建立的第一个连接,然后选择“隧道详细信息”选项卡。
- 验证两个隧道的“状态”是否显示为“正常运行” 。
- 验证两个隧道的“详细信息”是否显示一个或多个 BGP 路由。
有关 VPN 网关的详细信息,请参阅FAQ。