使用模板部署分配了 IPv6 的面向 Internet 的负载均衡器解决方案
注意
本文介绍了一项简介性的 IPv6 功能,该功能允许基本负载均衡器提供 IPv4 和 IPv6 连接。 适用于 Azure VNET 的 IPv6 现在提供综合性 IPv6 连接,可以将 IPv6 连接与虚拟网络集成,包含 IPv6 网络安全组规则、IPv6 用户定义路由、IPv6 基本和标准负载均衡等关键功能。 适用于 Azure VNET 的 IPv6 是建议用于 Azure 中的 IPv6 应用程序的标准。 请参阅适用于 Azure VNET PowerShell 部署的 IPv6
Azure load balancer 是位于第 4 层 (TCP, UDP) 的负载均衡器。 该负载均衡器可以在云服务或负载均衡器集的虚拟机中运行状况良好的服务实例之间分配传入流量,从而提供高可用性。 Azure Load Balancer 还可以在多个端口和/或多个 IP 地址上显示这些服务。
示例部署方案
下图演示了使用本文所述示例模板部署的负载均衡解决方案。
在此方案中,将创建以下 Azure 资源:
- 虚拟网络接口,用于每个已分配 IPv4 和 IPv6 地址的 VM
- 已分配 IPv4 和 IPv6 公共 IP 地址的面向 Internet 的负载均衡器
- 两个负载均衡规则,用于将公共 VIP 映射到专用终结点
- 包含两个 VM 的可用性集
- 两个虚拟机 (VM)
使用 Azure 门户部署模板
本文档参考了 Azure 快速入门模板库中发布的模板。 可以从该库下载模板,或者在 Azure 中直接从库启动部署。 本文假设已将模板下载到本地计算机。
打开 Azure 门户,使用有权在 Azure 订阅中创建 VM 和网络资源的帐户登录。 此外,除非使用现有资源,否则该帐户必须有权创建资源组和存储帐户。
在菜单中选择“+新建”,并在搜索框中键入“模板”。 在搜索结果中选择“模板部署”。
在“全部内容”边栏选项卡中,选择“模板部署”。
选择“创建”。
选择“边界模板”。删除现有内容,复制/粘贴模板文件的整个内容(包括左右大括号 {}),并选择“保存”。
注意
如果使用的是 Azure Internet Explorer,在粘贴内容时,会看到一个对话框,询问你是否允许访问 Windows 剪贴板。 请单击“允许访问”。
选择“编辑参数”。在“参数”边栏选项卡中,根据指导在“模板参数”部分指定值,并选择“保存”关闭“参数”边栏选项卡。 在“自定义部署”边栏选项卡中选择订阅、选择现有资源组或创建一个资源组。 如果要创建资源组,请选择资源组的位置。 接下来,选择“法律条款”,并选择法律条款后面的“购买”。 Azure 开始部署资源。 部署所有资源需要花费几分钟时间。
有关这些参数的详细信息,请参阅本文后面的模板参数和变量部分。
如果要查看模板创建的资源,请选择“浏览”,向下滚动列表,直到看到“资源组”,并选择它。
在“资源组”边栏选项卡上,选择步骤 6 中指定的资源组名称。 随后可以看到所有已部署资源的列表。 如果一切正常,“上次部署”下面应会显示“成功”。否则,请确保使用的帐户有权创建所需的资源。
注意
正在部署资源时,如果在完成步骤 6 之后立即浏览资源组,“上次部署”将显示“正在部署”状态。
在资源列表中选择“myIPv6PublicIP”。 可以看到它在 IP 地址下有一个 IPv6 地址,其 DNS 名称是在步骤 6 中为 dnsNameforIPv6LbIP 参数指定的值。 此资源是公共 IPv6 地址和主机名,可以访问 Internet 客户端。
验证连接
成功部署模板后,可以通过完成以下任务来验证连接:
- 登录到 Azure 门户,并连接到模板部署创建的每个 VM。 如果部署的是 Windows Server VM,请从命令提示符运行 ipconfig /all。 可以看到 VM 同时使用了 IPv4 和 IPv6 地址。 如果部署的是 Linux VM,则需要根据 Linux 分发版提供的说明,将 Linux OS 配置为接收动态 IPv6 地址。
- 从已连接到 IPv6 Internet 的客户端发起与负载均衡器公共 IPv6 地址的连接。 若要确认负载均衡器是否在两个 VM 之间均衡负载,可在每个 VM 上安装一个 Web 服务器,例如 Microsoft Internet Information Services (IIS)。 每台服务器的默认网页上可能会包含“Server0”或“Server1”文本用于唯一标识该服务器。 然后,在已连接到 IPv6 Internet 的客户端上打开 Internet 浏览器,导航到为负载均衡器的 dnsNameforIPv6LbIP 参数指定的主机名,确认每个 VM 的端到端 IPv6 连接。 如果只在其中一台服务器看到网页,可能需要清除浏览器缓存。 打开多个专用浏览会话。 随后应会看到来自每台服务器的响应。
- 从已连接到 IPv4 Internet 的客户端发起与负载均衡器公共 IPv4 地址的连接。 若要确认负载均衡器是否在两个 VM 之间均衡负载,可按步骤 2 中的详述使用 IIS 进行测试。
- 从每个 VM 向已连接到 IPv6 或 IPv4 的 Internet 设备发起出站连接。 在这两种情况下,目标设备看到的源 IP 是负载均衡器的公共 IPv4 或 IPv6 地址。
注意
若要测试负载均衡器的 IPv4 和 IPv6 前端的连接,可将 ICMP ping 发送到负载均衡器的前端。 请注意,图中显示的 IP 地址是可能会出现的示例值。 由于 IPv6 地址是动态分配的,收到的地址可能会根据区域的不同而异。 此外,负载均衡器上公共 IPv6 地址前缀与后端池中专用 IPv6 地址的前缀经常不同。
模板参数和变量
Azure 资源管理器模板包含可根据需要自定义的多个变量和参数。 对于不希望用户更改的固定值,可以使用变量。 对于在部署模板不希望用户提供的值,可以使用参数。 该示例模板是针对本文所述的方案配置的。 可以根据环境需求自定义此模板。
本文中使用的示例模板包含以下变量和参数:
参数/变量 | 说明 |
---|---|
adminUsername | 指定用于登录到虚拟机的管理员帐户名。 |
adminPassword | 指定用于登录到虚拟机的管理员帐户密码。 |
dnsNameforIPv4LbIP | 指定想要分配为负载均衡器公共名称的 DNS 主机名。 此名称解析为负载均衡器的公共 IPv4 地址。 此名称必须是小写,并与正则表达式匹配:^[a-z][a-z0-9-]{1,61}[a-z0-9]$。 |
dnsNameforIPv6LbIP | 指定想要分配为负载均衡器公共名称的 DNS 主机名。 此名称解析为负载均衡器的公共 IPv6 地址。 此名称必须是小写,并与正则表达式匹配:^[a-z][a-z0-9-]{1,61}[a-z0-9]$。 此名称可与 IPv4 地址的名称相同。 当名称相同时,如果客户端针对此名称发出 DNS 查询,Azure 会返回 A 和 AAAA 记录。 |
vmNamePrefix | 指定 VM 名称前缀。 创建 VM 时,模板会在名称后面追加一个编号(0、1 等等)。 |
nicNamePrefix | 指定网络接口名称前缀。 创建网络接口时,模板会在名称后面追加一个编号(0、1 等等)。 |
storageAccountName | 输入现有存储帐户的名称,或指定模板创建的新存储帐户的名称。 |
availabilitySetName | 输入要配合 VM 使用的可用性集的名称 |
addressPrefix | 用于定义虚拟网络地址范围的地址前缀 |
subnetName | 为 VNet 创建的子网的名称 |
subnetPrefix | 用于定义子网地址范围的地址前缀 |
vnetName | 指定 VM 使用的 VNet 的名称 |
ipv4PrivateIPAddressType | 专用 IP 地址使用的分配方法(Static 或 Dynamic) |
ipv6PrivateIPAddressType | 专用 IP 地址使用的分配方法 (Dynamic)。 IPv6 仅支持 Dynamic(动态)分配。 |
numberOfInstances | 模板部署的负载均衡实例的数目 |
ipv4PublicIPAddressName | 指定用来与负载均衡器公共 IPv4 地址通信的 DNS 名称。 |
ipv4PublicIPAddressType | 公共 IP 地址使用的分配方法(Static 或 Dynamic) |
Ipv6PublicIPAddressName | 指定用来与负载均衡器公共 IPv6 地址通信的 DNS 名称。 |
ipv6PublicIPAddressType | 公共 IP 地址使用的分配方法 (Dynamic)。 IPv6 仅支持 Dynamic(动态)分配。 |
lbName | 指定负载均衡器的名称。 此名称会显示在门户中,或者通过 CLI 或 PowerShell 命令引用它时会用到它。 |
模板中的其余变量是 Azure 创建资源时分配的派生值。 请不要更改这些变量。
后续步骤
有关模板中负载均衡器的 JSON 语法和属性,请参阅 Microsoft.Network/loadBalancers。