适用于:Azure Stack HCI 版本 22H2 和 21H2;Windows Server 2022、Windows Server 2019、Windows Server 2016
软件负载均衡器包括哪些内容?
软件负载均衡器提供以下功能:
-
适用于北/南和东/西 TCP/UDP 流量的第 4 层 (L4) 负载均衡服务。
-
公用网络和内部网络流量负载均衡。
-
虚拟局域网 (VLAN) 以及使用 Hyper-V 网络虚拟化创建的虚拟网络上的动态 IP 地址 (DIP) 支持。
-
运行状况探测支持。
-
为云缩放做好准备,包括多路复用器和主机代理的横向扩展功能和纵向扩展功能。
有关详细信息,请参阅本文中的软件负载均衡器功能。
软件负载均衡器的工作原理
软件负载均衡器的工作原理是将虚拟 IP 地址 (VIP) 映射到作为数据中心内云服务资源集一部分的 DIP。
VIP 是单个 IP 地址,提供对负载均衡的 VM 池的公共访问。 例如,VIP 是在 Internet 上公开的 IP 地址,以便租户和租户客户可以连接到云数据中心内的租户资源。
DIP 是 VIP 后面的负载均衡池的成员 VM 的 IP 地址。 在云基础结构中将 DIP 分配给租户资源。
VIP 位于 SLB 多路复用器 (MUX) 中。 MUX 由一个或多个 VM 组成。 网络控制器为每个 MUX 提供各自的 VIP,每个 MUX 反过来使用边界网关协议 (BGP) 将每个 VIP 作为/32 路由播发到物理网络上的路由器。 BGP 允许物理网络路由器执行以下操作:
-
了解即使 MUX 位于第 3 层网络中的不同子网中,每个 MUX 上都有一个 VIP。
-
使用相等成本多路径 (ECMP) 路由将每个 VIP 的负载分散到所有可用的 MUX 上。
-
自动检测 MUX 故障或删除,并停止将流量发送到故障的 MUX。
-
将故障或删除的 MUX 的负载分散到正常的 MUX 上。
当来自 Internet 的公共流量到达时,SLB MUX 会检查流量(其中包含 VIP 作为目标),并映射和重写流量,使其到达单个 DIP。 对于入站网络流量,此事务分两个步骤执行,该过程在 MUX VM 与目标 DIP 所在的 Hyper-V 主机之间进行划分:
-
负载均衡 - MUX 使用 VIP 来选择 DIP,封装数据包,并将流量转发到 DIP 所在的 Hyper-V 主机。
-
网络地址转换 (NAT) - Hyper-V 主机从数据包中删除封装,将 VIP 转换为 DIP,重新映射端口,然后将数据包转发到 DIP VM。
由于你使用网络控制器定义负载均衡策略,因此 MUX 知道如何将 VIP 映射到正确的 DIP。 这些规则包括协议、前端端口、后端端口和分发算法(5 个、3个 或 2 个元组)。
当租户 VM 响应出站网络流量并将其发送回 Internet 或远程租户位置时,由于 NAT 由 Hyper-V 主机执行,因此流量将绕过 MUX 并直接从 Hyper-V 主机传到边缘路由器。 此 MUX 绕过进程称为直接服务器返回 (DSR)。
建立初始网络流量流后,入站网络流量会完全绕过 SLB MUX。
在下图中,客户端计算机对公司(在本例中是名为 Contoso 的虚构公司)SharePoint 站点的 IP 地址执行 DNS 查询。 将发生以下过程:
-
DNS 服务器将 VIP 107.105.47.60 返回到客户端。
-
客户端向 VIP 发送 HTTP 请求。
-
物理网络有多个路径可用于访问位于任何 MUX 上的 VIP。 在此过程中,每个路由器都使用 ECMP 选择路径的下一段,直到请求到达 MUX。
-
接收请求的 MUX 检查配置的策略,并发现虚拟网络上有两个 DIP(分别为 10.10.10.5 和 10.10.20.5)可用于处理对 VIP 107.105.47.60 的请求
-
MUX 选择 DIP 10.10.10.5 并使用 VXLAN 封装数据包,以便它可以使用主机的物理网络地址将数据包发送到包含 DIP 的主机。
-
主机接收封装的数据包并对其进行检查。 它删除封装并重写数据包,将目标从 VIP 变为 DIP 10.10.10.5,然后将流量发送到 DIP VM。
-
请求到达服务器场 2 中的 Contoso SharePoint 站点。 服务器使用自己的 IP 地址作为源,生成响应并将其发送到客户端。
-
主机截获虚拟交换机中的传出数据包,该数据包会记住客户端(现在是目标)向 VIP 发送了原始请求。 主机将数据包的源重写为 VIP,使客户端看不到 DIP 地址。
-
主机会将数据包直接转发到物理网络的默认网关,该网关使用其标准路由表将数据包转发到客户端,客户端最终接收响应。
软件负载均衡器基础结构
在配置软件负载均衡器之前,必须首先部署网络控制器和一个或多个 SLB MUX VM。
此外,必须使用已启用 SDN 的 Hyper-V 虚拟交换机配置 Azure Stack HCI 主机,并确保 SLB 主机代理正在运行。 服务主机的路由器必须支持 ECMP 路由和边界网关协议 (BGP),并且必须将其配置为接受来自 SLB MUX 的 BGP 对等互连请求。
下图提供了 SLB 基础结构的概览。
以下各节介绍了有关软件负载均衡器基础结构的这些元素的详细信息。
参考链接
Azure Stack HCI 和 Windows Server 中用于 SDN 的软件负载均衡器 (SLB) - Azure Stack HCI | Microsoft Learn