Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
负载均衡器针对 UDP 和 TCP 应用程序提供了多种功能。
某些应用程序方案更喜欢或要求后端池中单个 VM 上的多个应用程序实例使用相同端口。 重复使用端口的常见示例包括提供高可用性群集、网络虚拟设备,以及公开多个不重新加密的 TLS 终结点。 如果你想要在多个规则中重复使用后端端口,必须在规则定义中启用浮动 IP。 启用浮动 IP 可以提高灵活性。
浮动 IP 状态 | 结果 |
---|---|
已启用浮动 IP | Azure 将 IP 地址映射更改为负载均衡器的前端 IP 地址 |
已禁用浮动 IP | Azure 公开 VM 实例的 IP 地址 |
在关系图中,你可以了解启用浮动 IP 之前和之后 IP 地址映射的工作原理:
可以通过 Azure 门户、REST API、CLI、PowerShell 或其他客户端在负载均衡器规则上配置浮动 IP。 除了进行规则配置外,还必须配置虚拟机的来宾 OS 才能使用浮动 IP。
浮动 IP 规则类型是多种负载均衡器配置模式的基础。 当前可用的一个示例是以下配置:配置一个或多个Always On可用性组侦听器。 今后我们会介绍更多此类方案。
为了正常运行,需要将虚拟机的来宾 OS 配置为接收发往负载均衡器前端 IP 和端口的所有流量。 配置 VM 需要:
- 添加环回网络接口
- 使用负载均衡器的前端 IP 地址配置环回
- 确保系统可以在未将 IP 地址分配给某些接口时,通过这些接口发送/接收数据包。 Windows 系统要求将接口设置为使用“弱主机”模型。 对于 Linux 系统,默认情况下通常会使用此模型。
- 将主机防火墙配置为允许前端 IP 端口上的流量。
Nota
以下示例全都使用 IPv4;若要使用 IPv6,请将“ipv4”替换为“ipv6”。
展开
对于后端池中的每个 VM,请在服务器上的 Windows 命令提示符下运行以下命令。
若要获取 VM 上具有的接口名称列表,请输入以下命令:
netsh interface ipv4 show interface
对于 VM NIC(Azure 托管),在将 接口名称 替换为要使用的接口名称后,输入以下命令:
netsh interface ipv4 set interface <interface-name> weakhostreceive=enabled
对于添加的每个环回接口,请在将 环回接口名称替换为环回 接口的名称,并将 floating-IP 和 floating-IPnetmask 替换为与负载均衡器前端 IP 对应的相应值后输入这些命令:
netsh interface ipv4 add addr <loopback-interface-name> <floating-IP> <floating-IPnetmask> netsh interface ipv4 set interface <loopback-interface-name> weakhostreceive=enabled weakhostsend=enabled
最后,如果来宾主机使用防火墙,请确保设置一个规则,使流量能够通过相应的端口到达 VM。 此示例配置假设负载均衡器前端 IP 配置为 1.2.3.4,并针对端口 80 设置了负载均衡规则:
netsh int ipv4 set int "Ethernet" weakhostreceive=enabled netsh int ipv4 add addr "Loopback Pseudo-Interface 1" 1.2.3.4 255.255.255.0 netsh int ipv4 set int "Loopback Pseudo-Interface 1" weakhostreceive=enabled weakhostsend=enabled netsh advfirewall firewall add rule name="http" protocol=TCP localport=80 dir=in action=allow enable=yes
展开
对于后端池中的每个 VM,请通过 SSH 会话运行以下命令。
若要获取 VM 上的接口名称列表,请键入以下命令:
ip addr
对于添加的每个环回接口,请在将 环回接口名称替换为环回 接口的名称,并将 floating-IP 和 floating-IPnetmask 替换为与负载均衡器前端 IP 对应的相应值后输入这些命令:
sudo ip addr add <floating-IP>/<floating-IPnetmask> dev lo:0
最后,如果来宾主机使用防火墙,请确保设置一个规则,使流量能够通过相应的端口到达 VM。 此示例配置假定负载均衡器前端 IP 配置为 1.2.3.4、端口 80 的负载均衡规则,以及 Ubuntu 中使用 UFW(未复杂防火墙)。
sudo ip addr add 1.2.3.4/24 dev lo:0 sudo ufw allow 80/tcp
- 在负载均衡规则上启用浮动 IP 后,你的应用程序必须为出站流量使用网络接口的主要 IP 配置。
- 如果应用程序绑定到来宾操作系统中环回接口上配置的前端 IP 地址,则 Azure 的出站连接不会重写出站流,因而该流会失败。 查看出站方案。
- 对于负载均衡方案,不能在辅助 IP 配置上使用浮动 IP。 此限制不适用于公共负载均衡器,其中辅助 IP 配置为 IPv6 和双堆栈配置的一部分,也不适用于使用 NAT 网关进行出站连接的体系结构。
- 了解如何通过 Azure 负载均衡器使用多个前端。
- 了解 Azure 负载均衡器出站连接。