创建站点到站点 VPN 连接 - Azure CLI
本文介绍如何使用 Azure CLI 创建从本地网络到虚拟网络 (VNet) 的站点到站点 (S2S) VPN 网关连接。
使用站点到站点 VPN 网关连接,通过 IPsec/IKE(IKEv1 或 IKEv2)VPN 隧道将本地网络连接到 Azure 虚拟网络。 此类型的连接要求位于本地的 VPN 设备分配有一个面向外部的公共 IP 地址。 本文中的步骤使用共享密钥在 VPN 网关和本地 VPN 设备之间创建连接。 有关 VPN 网关的详细信息,请参阅关于 VPN 网关。
开始之前
在开始配置之前,请验证环境是否符合以下条件:
验证是否具有基于路由的正常运行的 VPN 网关。 要创建 VPN 网关,请参阅创建 VPN 网关。
如果不熟悉本地网络配置中的 IP 地址范围,则需咨询能够提供此类详细信息的人员。 创建此配置时,必须指定 IP 地址范围前缀,Azure 会将该前缀路由到本地位置。 本地网络的任何子网都不得与要连接到的虚拟网络子网重叠。
VPN 设备:
- 确保有一台兼容的 VPN 设备,并且可对其进行配置。 有关兼容的 VPN 设备和设备配置的详细信息,请参阅关于 VPN 设备。
- 确定 VPN 设备是否支持主动-主动模式网关。 本文将创建主动-主动模式 VPN 网关,建议将该网关用于高可用性连接。 主动-主动模式会指定两个网关 VM 实例均处于活动状态。 此模式需要两个公共 IP 地址,每个网关 VM 实例使用一个。 将 VPN 设备配置为连接到每个网关 VM 实例的 IP 地址。
如果 VPN 设备不支持此模式,请不要为网关启用此模式。 有关详细信息,请参阅为跨界连接和 VNet 到 VNet 连接设计高可用性连接和关于主动-主动模式 VPN 网关。
本文需要 Azure CLI 版本 2.0 或更高版本。
安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
- 通过使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
- 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
- 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
创建本地网络网关
本地网络网关通常是指本地位置。 可以为站点提供一个名称供 Azure 引用,并指定本地 VPN 设备的 IP 地址,以便创建一个连接来连接到该设备。 此外还可指定 IP 地址前缀,以便通过 VPN 网关将其路由到 VPN 设备。 指定的地址前缀是位于本地网络的前缀。 如果本地网络出现变化,可以轻松更新这些前缀。
使用以下值:
- --gateway-ip-address 是本地 VPN 设备的 IP 地址。
- --local-address-prefixes 是本地地址空间。
使用 az network local-gateway create 命令添加本地网关。 以下示例演示了具有多个地址前缀的本地网关。 将值替换成自己的值。
az network local-gateway create --gateway-ip-address [IP address of your on-premises VPN device] --name Site1 --resource-group TestRG1 --local-address-prefixes 10.3.0.0/16 10.0.0.0/24
配置 VPN 设备
通过站点到站点连接连接到本地网络需要 VPN 设备。 在此步骤中,请配置 VPN 设备。 配置 VPN 设备时,需要以下值:
共享密钥:此共享密钥与创建站点到站点 VPN 连接时指定的密钥相同。 示例将使用简单的共享密钥。 建议生成更复杂的可用密钥。
虚拟网络网关实例的公共 IP 地址:获取每个 VM 实例的 IP 地址。 如果网关处于主动-主动模式,则每个网关 VM 实例都将有一个 IP 地址。 请务必为设备配置这两个 IP 地址,每个主动网关 VM 各一。 主动-备用模式网关只有一个 IP 地址。
若要查找虚拟网关的公共 IP 地址,请使用 az network public-ip list 命令。 为了方便阅读,对输出进行了格式化,以表格式显示一系列公共 IP。 在该示例中,VNet1GWpip1 是公共 IP 地址资源的名称。
az network public-ip list --resource-group TestRG1 --output table
根据所用的 VPN 设备,有时可以下载 VPN 设备配置脚本。 有关详细信息,请参阅下载 VPN 设备配置脚本。
以下链接提供了更多配置信息:
有关兼容 VPN 设备的信息,请参阅关于 VPN 设备。
在配置 VPN 设备之前,请检查是否存在任何已知的设备兼容性问题。
有关设备配置设置的链接,请参阅已验证的 VPN 设备。 我们会尽量提供设备配置链接,但你最好是咨询设备制造商以获取最新的配置信息。
该列表显示了我们已测试过的版本。 即使列表中未显示你的 VPN 设备的 OS 版本,该版本也仍然可能是兼容的。 请咨询设备制造商。
有关 VPN 设备配置的基本信息,请参阅合作伙伴 VPN 设备配置概述。
若要了解如何编辑设备配置示例,请参阅编辑示例。
有关加密要求的信息,请参阅关于加密要求和 Azure VPN 网关。
有关完成配置所需的参数的信息,请参阅默认 IPsec/IKE 参数。 这些信息包括 IKE 版本、Diffie-Hellman (DH) 组、身份验证方法、加密和哈希算法、安全关联 (SA) 生存期、完美前向保密 (PFS) 和对等体存活检测 (DPD)。
有关 IPsec/IKE 策略配置步骤,请参阅为 S2S VPN 和 VNet 到 VNet 配置自定义 IPsec/IKE 连接策略。
若要连接多个基于策略的 VPN 设备,请参阅将 VPN 网关连接到多个基于策略的本地 VPN 设备。
创建 VPN 连接
在虚拟网关和本地 VPN 设备之间创建站点到站点 VPN 连接。 如果使用主动-主动模式网关(推荐),则每个网关 VM 实例都会拥有单独的 IP 地址。 要正确配置高可用性连接,必须在每个 VM 实例和 VPN 设备之间建立隧道。 这两条隧道都是同一连接的一部分。
使用 az network vpn-connection create 命令创建连接。 共享密钥必须与用于 VPN 设备配置的值匹配。
az network vpn-connection create --name VNet1toSite1 --resource-group TestRG1 --vnet-gateway1 VNet1GW -l chinanorth --shared-key abc123 --local-gateway2 Site1
在一小段时间后,将建立该连接。
验证 VPN 连接
可使用 az network vpn-connection show 命令来验证连接是否成功。 在此示例中,“--name”是指要测试的连接的名称。 当连接处于建立过程中时,连接状态会显示“正在连接”。 建立连接后,状态更改为“已连接”。 使用你的环境的值修改以下示例。
az network vpn-connection show --name <connection-name> --resource-group <resource-group-name>
若要使用其他方法来验证连接,请参阅验证 VPN 网关连接。
常见任务
本部分包含各种常用命令,这些命令在进行站点到站点配置时很有用。 有关 CLI 网络命令的完整列表,请参阅 Azure CLI - 网络。
查看本地网关
若要查看本地网关的列表,请使用 az network local-gateway list 命令。
az network local-gateway list --resource-group TestRG1
修改本地网关 IP 地址前缀 - 无网关连接
如果要添加或移除 IP 地址前缀,并且网关尚未连接,则可以使用 az network local-gateway create 更新前缀。 请使用本地网关的现有名称来覆盖当前设置。 如果使用其他名称,请创建一个新的本地网关,而不是覆盖现有的。 也可使用该命令来更新 VPN 设备的网关 IP 地址。
每次进行更改时,必须指定前缀的完整列表,不能仅指定要更改的前缀。 仅指定需要保留的前缀。 此例中为 10.0.0.0/24 和 10.3.0.0/16
az network local-gateway create --gateway-ip-address 23.99.221.164 --name Site2 -g TestRG1 --local-address-prefixes 10.0.0.0/24 10.3.0.0/16
修改本地网关 IP 地址前缀 - 存在网关连接
如果有网关连接且需要添加或删除 IP 地址前缀,可使用 az network local-gateway update 更新前缀。 这会导致 VPN 连接中断一段时间。
每次进行更改时,必须指定前缀的完整列表,不能仅指定要更改的前缀。 在此示例中,已存在 10.0.0.0/24 和 10.3.0.0/16。 我们会添加前缀 10.5.0.0/16 和 10.6.0.0/16,并在更新时指定所有 4 个前缀。
az network local-gateway update --local-address-prefixes 10.0.0.0/24 10.3.0.0/16 10.5.0.0/16 10.6.0.0/16 --name VNet1toSite2 -g TestRG1
修改本地网关的“gatewayIpAddress”
如果更改 VPN 设备的公共 IP 地址,那么需要使用更新的 IP 地址来修改本地网关。 修改网关时,请务必指定本地网关的现有名称。 如果使用其他名称,请创建一个新的本地网关,而不是覆盖现有网关信息。
要修改网关 IP 地址,请使用 az network local-gateway update 命令将值“Site2”和“TestRG1”替换为自己的值。
az network local-gateway update --gateway-ip-address 23.99.222.170 --name Site2 --resource-group TestRG1
验证输出中的 IP 地址是否正确:
"gatewayIpAddress": "23.99.222.170",
验证共享密钥值
验证共享密钥值与用于 VPN 设备配置的值是否相同。 如果不同,请使用设备中的值再次运行连接,或使用返回的值更新设备。 值必须匹配。 若要查看共享的密钥,请使用 az network vpn-connection-list。
az network vpn-connection shared-key show --connection-name VNet1toSite2 --resource-group TestRG1
查看 VPN 网关的公共 IP 地址
若要查找虚拟网关的公共 IP 地址,请使用 az network public-ip list 命令。 为了方便阅读,对本示例的输出进行了格式化,以表格式显示一系列公共 IP。
az network public-ip list --resource-group TestRG1 --output table
后续步骤
- 有关 BGP 的信息,请参阅 BGP 概述和如何配置 BGP。
- 有关强制隧道的信息,请参阅关于强制隧道。
- 有关高可用性主动-主动连接的信息,请参阅高可用性跨界连接与 VNet 到 VNet 连接。
- 有关网络 Azure CLI 命令的列表,请参阅 Azure CLI。
- 有关使用 Azure 资源管理器模板创建站点到站点 VPN 连接的信息,请参阅创建站点到站点 VPN 连接。
- 若要了解如何使用 Azure 资源管理器模板创建 VNet 到 VNet VPN 连接,请参阅部署 HBase 异地复制。