如何在 Solaris 11 中配置集成负载平衡器 (ILB)

集成负载平衡器 (ILB - Integrated Load Balancer) 为安装在 SPARC 和基于 x86 的系统上的 Oracle Solaris 提供第 3 层和第 4 层负载平衡功能。
它由 svc:/network/loadbalancer/ilb:default 服务管理。
它拦截来自客户端的传入请求,根据负载平衡规则决定哪个后端服务器应该处理请求,然后将请求转发到选定的服务器。
它还执行可选的运行状况检查并为负载平衡算法提供数据,以验证所选服务器是否可以处理传入请求。
ILB 将指向服务器的工作负载分布在多个服务器上。

以下是 ILB 的主要功能:

  • 支持 IPv4 和 IPv6 的无状态直接服务器返回 (DSR) 和网络地址转换 (NAT) 操作模式
  • 通过命令行界面 (CLI) 启用 ILB 管理
  • 通过健康检查提供服务器监控功能

ILB 启用:

  • 客户端 ping 虚拟 IP (VIP) 地址
  • 我们可以在不中断服务的情况下从服务器组中添加和删除服务器
  • 我们配置会话持久性(粘性)
  • 我们执行连接耗尽
  • TCP 和 UDP 端口的负载平衡
  • 我们为同一服务器组内的虚拟服务指定独立端口
  • 我们对一个简单的端口范围进行负载平衡
  • 端口范围移动和折叠

ILB 操作模式

ILB 在单腿和双腿拓扑中支持 IPv4 和 IPv6 的以下操作模式:

  • 无状态直接服务器返回 (DSR) 拓扑
  • 网络地址转换 (NAT) 模式(全 NAT 和半 NAT)拓扑

配置ILB

  1. 设置后端服务器。
# route add -p default 192.168.1.21
  1. 在 ILB 中设置服务器组。
# ilbadm create-sg -s servers=192.168.1.50,192.168.1.60 srvgrp1
  1. 设置名为 hc-srvgrp1 的简单健康检查。
# ilbadm create-rule -e -p -i vip=10.0.2.20,port=5000 -m \ 
lbalg=rr,type=half-nat,pmask=32 -h hc-name=hc-srvgrp1 \ 
-o servergroup=srvgrp1 rule1_rr

启用和禁用 ILB

  1. 启用适当的转发服务:IPv4 或者 IPv6,或者两者。
    请注意,此命令在成功时不会产生任何输出。
# ipadm set-prop -p forwarding=on ipv4 
# ipadm set-prop -p forwarding=on ipv6
  1. 开启ILB服务。
# svcadm enable ilb
  1. 禁用 ILB 服务。
# svcadm disable ilb
  1. 验证 ILB 服务是启用还是禁用。
# svcs ilb

安装 ILB

ILB 有两部分,内核和用户空间。
内核部分作为 Oracle Solaris 11 安装的一部分自动安装。
要获取 ILB 的用户区部分,我们必须使用“pkg install ilb”命令手动安装 ilb 包。

# pkg install ilb
on  It Road.com

ILB 操作模式:NAT

ILB 在独立模式下严格使用 NAT 进行负载平衡。
在此模式下,ILB 重写标头信息并处理传入和传出流量。
ILB 在半 NAT 和全 NAT 模式下运行。

在half-NAT和full-NAT模式下,ILB匹配后端服务器对传入请求的响应,并将改变后的IP地址和传输协议端口号替换为原始传入请求的IP地址和传输协议端口号。
ILB 然后将响应转发给客户端。
本质上,两种模式都会重写目标 IP 地址。
但是,全 NAT 还会重写源 IP 地址,使服务器看起来所有连接都来自负载平衡器。

ILB 操作模式:DSR

在 DSR 模式下,ILB 平衡传入后端服务器的请求,但允许从服务器到客户端的返回流量绕过它。
但是,我们也可以将 ILB 设置为用作后端服务器的路由器。
在这种情况下,从后端服务器到客户端的响应将通过运行 ILB 的机器进行路由。

使用无状态 DSR,ILB 不保存处理数据包的任何状态信息,除了基本统计信息。
由于ILB在这种模式下不保存任何状态,性能与普通IP转发性能相当。
这种模式最适合无连接协议。

日期:2020-09-17 00:15:05 来源:oir作者:oir