本文介绍如何使用 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 连接时指定的密钥相同。 示例将使用简单的共享密钥。 建议生成更复杂的可用密钥。
虚拟网络网关实例的公共 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 设备的 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 连接。 如果使用主动-主动模式网关(推荐),则每个网关 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
在一小段时间后,将建立该连接。
可使用 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 地址前缀,并且网关尚未连接,则可以使用 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 203.0.113.34 --name Site2 -g TestRG1 --local-address-prefixes 10.0.0.0/24 10.3.0.0/16
如果有网关连接且需要添加或删除 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
如果更改 VPN 设备的公共 IP 地址,那么需要使用更新的 IP 地址来修改本地网关。 修改网关时,请务必指定本地网关的现有名称。 如果使用其他名称,请创建一个新的本地网关,而不是覆盖现有网关信息。
要修改网关 IP 地址,请使用 az network local-gateway update 命令将值“Site2”和“TestRG1”替换为自己的值。
az network local-gateway update --gateway-ip-address 203.0.113.170 --name Site2 --resource-group TestRG1
验证输出中的 IP 地址是否正确:
"gatewayIpAddress": "203.0.113.170",
验证共享密钥值与用于 VPN 设备配置的值是否相同。 如果不同,请使用设备中的值再次运行连接,或使用返回的值更新设备。 值必须匹配。 若要查看共享的密钥,请使用 az network vpn-connection-list。
az network vpn-connection shared-key show --connection-name VNet1toSite2 --resource-group TestRG1
若要查找虚拟网关的公共 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 异地复制。