使用 VPN 将 Azure Stack Hub 连接到 Azure

本文介绍如何创建站点到站点 VPN,将 Azure Stack Hub 中的虚拟网络连接到 Azure 中的虚拟网络。

在您开始之前

若要完成连接配置,请确保在开始之前具有以下项:

  • 直接连接到 Internet 的 Azure Stack Hub 集成系统(多节点)部署。 您的外部公网 IP 地址范围必须能够直接从公共互联网访问。
  • 有效的 Azure 订阅。 如果没有 Azure 订阅,可以创建 试用订阅

VPN 连接关系图

下图显示了完成后连接配置应有的样子:

站点到站点 VPN 连接配置

网络配置示例值

网络配置示例表显示了本文中用于示例的值。 可以使用这些值,也可以参考这些值来更好地了解本文中的示例:

价值 Azure Stack Hub 蔚蓝
虚拟网络名称 Azs-VNet AzureVNet
虚拟网络地址空间 10.1.0.0/16 10.100.0.0/16
子网名称 FrontEnd FrontEnd
子网地址范围 10.1.0.0/24 10.100.0.0/24
网关子网 10.1.1.0/24 10.100.1.0/24

在 Azure 中创建网络资源

首先,为 Azure 创建网络资源。 以下说明演示如何使用 Azure 门户创建资源。

创建虚拟网络和虚拟机(VM)子网

  1. 使用 Azure 帐户登录到 Azure 门户
  2. 在用户门户中,选择“ + 创建资源”。
  3. 转到 市场,然后选择“ 网络”。
  4. 选择“虚拟网络”。
  5. 使用网络配置表中的信息来标识 Azure 名称地址空间子网名称和子网地址范围的值。
  6. 对于 资源组,请创建新的资源组,或者,如果已有资源组,请选择“ 使用现有资源组”。
  7. 选择 VNet 的位置。 如果使用示例值,请选择 “中国东部 ”或使用其他位置。
  8. 选择“固定到仪表板”
  9. 选择 创建

创建网关子网

  1. 从仪表板打开创建的虚拟网络资源(AzureVNet)。

  2. “设置” 部分中,选择 “子网”。

  3. 选择 网关子网 ,将网关子网添加到虚拟网络。

  4. 默认情况下,子网的名称设置为 GatewaySubnet

    重要

    网关子网很特殊,必须具有此特定名称才能正常运行。

  5. “地址范围 ”字段中,验证地址是否为 10.100.1.0/24

  6. 选择“确定”创建网关子网。

创建虚拟网络网关

  1. 在 Azure 门户中,选择“ + 创建资源”。
  2. 转到 市场,然后选择“ 网络”。
  3. 在网络资源列表中,选择 “虚拟网络网关”。
  4. “名称” 字段中,键入 Azure-GW
  5. 若要选择虚拟网络,请选择 “虚拟网络”。 然后从列表中选择 AzureVnet
  6. 选择“公共 IP 地址”。 “ 选择公共 IP 地址 ”部分打开时,选择“ 新建”。
  7. “名称 ”字段中,键入 Azure-GW-PiP,然后选择“ 确定”。
  8. 验证 订阅位置 是否正确。 可将资源固定到仪表板。 选择 创建

创建本地网络网关资源

  1. 在 Azure 门户中,选择“ + 创建资源”。

  2. 转到 市场,然后选择“ 网络”。

  3. 从资源列表中选择 “本地网络网关”。

  4. “名称” 字段中,键入 Azs-GW

  5. “IP 地址 ”字段中,键入前面在网络配置表中列出的 Azure Stack Hub 虚拟网络网关的公共 IP 地址。

  6. 在 Azure Stack Hub 的“地址空间”字段中,键入 AzureVNet10.1.0.0/2410.1.1.0/24 地址空间。

  7. 验证 订阅资源组位置 是否正确,然后选择“ 创建”。

创建连接

  1. 在用户门户中,选择“ + 创建资源”。

  2. 转到 市场,然后选择“ 网络”。

  3. 从资源列表中选择 “连接”。

  4. 在“基本设置”部分的“连接类型”中,选择“站点到站点”(IPSec)。

  5. 选择 “订阅”、“ 资源组”和 “位置”,然后选择“ 确定”。

  6. “设置” 部分中,选择 “虚拟网络网关”,然后选择 “Azure-GW”。

  7. 选择 “本地网络网关”,然后选择 “Azs-GW”。

  8. “连接名称”中,键入 Azure-Azs

  9. 共享密钥(PSK)中,键入 12345,然后选择“ 确定”。

    注释

    如果对共享密钥使用不同的值,请记住,它必须与在连接的另一端创建的共享密钥的值匹配。

  10. 查看 “摘要 ”部分,然后选择“ 确定”。

创建自定义 IPSec 策略

需要自定义 IPSec 策略才能使 Azure 与 Azure Stack Hub 匹配。

  1. 创建自定义策略:

    $IPSecPolicy = New-AzIpsecPolicy -IkeEncryption AES256 -IkeIntegrity SHA384 -DhGroup ECP384  `
    -IpsecEncryption GCMAES256 -IpsecIntegrity GCMAES256 -PfsGroup ECP384 -SALifeTimeSeconds 27000 `
    -SADataSizeKilobytes 102400000
    
  2. 将策略应用于连接:

    $Connection = Get-AzVirtualNetworkGatewayConnection -Name myTunnel -ResourceGroupName myRG
    Set-AzVirtualNetworkGatewayConnection -IpsecPolicies $IPSecPolicy -VirtualNetworkGatewayConnection $Connection
    

创建 VM

现在,在 Azure 中创建 VM,并将其放在虚拟网络中的 VM 子网上。

  1. 在 Azure 门户中,选择“ + 创建资源”。

  2. 转到“市场”,选择“计算”。

  3. 在 VM 映像列表中,选择 Windows Server 2016 Datacenter Eval 映像。

  4. “基本信息 ”部分,对于 “名称”,键入 AzureVM

  5. 键入有效的用户名和密码。 创建 VM 后,使用此帐户登录到 VM。

  6. 提供 订阅资源组位置,然后选择“ 确定”。

  7. 在“ 大小 ”部分中,选择此实例的 VM 大小,然后选择“ 选择”。

  8. “设置” 部分中,可以使用默认设置。 在选择 “确定”之前,请确认:

    • 已选择 AzureVnet 虚拟网络。
    • 子网设置为 10.100.0.0/24

    选择“确定”

  9. 查看 “摘要 ”部分中的设置,然后选择“ 确定”。

在 Azure Stack Hub 中创建网络资源

接下来,在 Azure Stack Hub 中创建网络资源。

以用户身份登录

服务管理员可以以用户身份登录,以测试其用户可能使用的计划、套餐和订阅。 如果还没有用户帐户,请在登录前 创建一个用户帐户

创建虚拟网络和 VM 子网

  1. 使用用户帐户登录到用户门户。

  2. 在用户门户中,选择“ + 创建资源”。

    创建新的虚拟网络

  3. 转到 市场,然后选择“ 网络”。

  4. 选择“虚拟网络”。

  5. 对于名称地址空间子网名称和子网地址范围,请使用网络配置表中的值。

  6. “订阅”中,将显示之前创建的订阅。

  7. 对于 资源组,可以创建资源组,或者如果已有资源组,请选择“ 使用现有资源组”。

  8. 验证默认位置。

  9. 选择“固定到仪表板”

  10. 选择 创建

创建网关子网

  1. 在仪表板上,打开创建的 Azs-VNet 虚拟网络资源。

  2. “设置” 部分中,选择 “子网”。

  3. 若要将网关子网添加到虚拟网络,请选择 “网关子网”。

    添加网关子网

  4. 默认情况下,子网名称设置为 GatewaySubnet。 若要使网关子网正常运行,必须使用 GatewaySubnet 名称。

  5. 地址范围内,验证地址是否为 10.1.1.0/24

  6. 选择“确定”创建网关子网。

创建虚拟网络网关

  1. 在 Azure Stack Hub 门户中,选择“ + 创建资源”。

  2. 转到 市场,然后选择“ 网络”。

  3. 在网络资源列表中,选择 “虚拟网络网关”。

  4. “名称”中,键入 Azs-GW

  5. 选择 虚拟网络 项以选择虚拟网络。 从列表中选择 Azs-VNet

  6. 选择 “公共 IP 地址 ”菜单项。 “ 选择公共 IP 地址 ”部分打开时,选择“ 新建”。

  7. “名称”中,键入 Azs-GW-PiP,然后选择“ 确定”。

  8. 对于“VPN 类型”,默认选择“基于路由”。 保留 基于路由的 VPN 类型。

  9. 验证 订阅位置 是否正确。 可将资源固定到仪表板。 选择 创建

创建本地网关

Azure Stack Hub 中 本地网关 的概念与 Azure 部署中的概念不同。

在 Azure 部署中,本地网络网关表示连接到 Azure 中的虚拟网络网关的本地(位于用户位置)物理设备。 但是,在 Azure Stack Hub 中,连接的两端都是虚拟网络网关。

更通用的说明是,本地网络网关资源始终指示连接的另一端的远程网关。

创建本地网络网关资源

  1. 登录到 Azure Stack Hub 门户。

  2. 在用户门户中,选择“ + 创建资源”。

  3. 转到 市场,然后选择“ 网络”。

  4. 从资源列表中选择 本地网络网关

  5. “名称” 字段中,键入 Azure-GW

  6. “IP 地址 ”字段中,键入 Azure Azure-GW-PiP 中虚拟网络网关的公共 IP 地址。 此地址显示在网络配置表中的前面。

  7. “地址空间 ”字段中,对于创建的 Azure VNET 的地址空间,请键入 10.100.0.0/2410.100.1.0/24

  8. 验证 订阅资源组位置 值是否正确,然后选择“ 创建”。

创建连接

  1. 在用户门户中,选择“ + 创建资源”。

  2. 转到 市场,然后选择“ 网络”。

  3. 从资源列表中选择 “连接”。

  4. 在“基本信息设置”部分的“连接类型”中,选择“站点到站点”(IPSec)。

  5. 选择 “订阅”、“ 资源组”和 “位置”,然后选择“ 确定”。

  6. “设置” 部分中,选择 “虚拟网络网关”,然后选择 “Azs-GW”。

  7. 选择 “本地网络网关”,然后选择 “Azure-GW”。

  8. “连接名称”中,键入 Azs-Azure

  9. 共享密钥(PSK)中,键入 12345,然后选择“ 确定”。

  10. 在“ 摘要 ”部分中,选择“ 确定”。

创建 VM

若要检查 VPN 连接,请创建两个 VM:一个在 Azure 中,一个在 Azure Stack Hub 中创建一个。 创建这些 VM 后,可以使用它们通过 VPN 隧道发送和接收数据。

  1. 在 Azure 门户中,选择“ + 创建资源”。

  2. 转到“市场”,选择“计算”。

  3. 在 VM 映像列表中,选择 Windows Server 2016 Datacenter Eval 映像。

  4. “基本信息 ”部分的 “名称”中,键入 Azs-VM

  5. 键入有效的用户名和密码。 创建 VM 后,使用此帐户登录到 VM。

  6. 提供 订阅资源组位置,然后选择“ 确定”。

  7. 在此实例的 “大小 ”部分中,选择 VM 大小,然后选择“ 选择”。

  8. “设置” 部分中,接受默认值。 确保已选择 Azs-VNet 虚拟网络。 验证子网是否设置为 10.1.0.0/24。 然后选择“ 确定”。

  9. “摘要 ”部分中,查看设置,然后选择“ 确定”。

测试连接

建立站点到站点连接后,应验证是否可以在两个方向流动数据。 测试连接的最简单方法是执行 ping 测试:

  • 登录到您在 Azure Stack Hub 中创建的 VM,并在 Azure 中对该 VM 进行 ping 操作。
  • 登录到在 Azure 中创建的 VM,并在 Azure Stack Hub 中 ping VM。

注释

为了确保发送的流量通过站点到站点连接,必须 ping 远程子网上 VM 的直接 IP (DIP) 地址,而不是 VIP。

登录到 Azure Stack Hub 中的用户 VM

  1. 登录到 Azure Stack Hub 门户。

  2. 在左侧导航栏中,选择 “虚拟机”。

  3. 在 VM 列表中,找到之前创建的 Azs-VM ,然后选择它。

  4. 在 VM 的部分中,选择 “连接”,然后打开 Azs-VM.rdp 文件。

    “连接”按钮

  5. 使用创建 VM 时配置的帐户登录。

  6. 打开提升的Windows PowerShell提示符。

  7. 键入 ipconfig /all

  8. 在输出中,找到 IPv4 地址,然后保存地址供以后使用。 这是要从 Azure ping 的地址。 在示例环境中,地址为 10.1.0.4,但在环境中可能有所不同。 它应位于之前创建的 10.1.0.0/24 子网内。

  9. 若要创建允许 VM 响应 ping 的防火墙规则,请运行以下 PowerShell 命令:

    New-NetFirewallRule `
     -DisplayName "Allow ICMPv4-In" `
     -Protocol ICMPv4
    

登录到 Azure 中的租户 VM

  1. 登录到 Azure 门户。

  2. 在左侧导航栏中,选择 “虚拟机”。

  3. 从 VM 列表中,找到之前创建的 Azure VM ,然后选择它。

  4. 在 VM 的部分中,选择“ 连接”。

  5. 使用创建 VM 时配置的帐户登录。

  6. 打开提升的 Windows PowerShell 窗口。

  7. 键入 ipconfig /all

  8. 应会看到 IPv4 地址位于 10.100.0.0/24 以内。 在示例环境中,地址为 10.100.0.4,但地址可能有所不同。

  9. 若要创建允许 VM 响应 ping 的防火墙规则,请运行以下 PowerShell 命令:

    New-NetFirewallRule `
     -DisplayName "Allow ICMPv4-In" `
     -Protocol ICMPv4
    
  10. 在 Azure 上的 VM 中,通过隧道 ping Azure Stack Hub 中的 VM。 为此,请 ping 从 Azs-VM 中记录的 DIP。 在示例环境中,该地址为 10.1.0.4,但请确保 ping 实验室中记下的地址。 应会看到类似于以下屏幕截图的结果:

    ping成功

  11. 来自远程 VM 的答复表示测试成功。 可以关闭 VM 窗口。

还应执行更严格的数据传输测试(例如,在两个方向复制不同大小的文件)。

通过网关连接查看数据传输统计信息

如果想要了解通过站点到站点连接的数据量,可以在 “连接” 部分获取此信息。 此测试也是验证刚刚发送的 ping 实际通过 VPN 连接的另一种方法。

  1. 登录到 Azure Stack Hub 中的用户 VM 时,请使用用户帐户登录到用户门户。

  2. 转到 “所有资源”,然后选择 Azs-Azure 连接。 显示连接

  3. “连接” 部分中,将显示 “数据传入 ”和 “数据出” 的统计信息。 在以下屏幕截图中,大量数字归因于其他文件传输。 应会看到其中有一些非零值。

    传入和传出数据

后续步骤