跳过导航链接 | |
退出打印视图 | |
![]() |
管理 Oracle Solaris 11.1 网络性能 Oracle Solaris 11.1 Information Library (简体中文) |
ILB 以单路拓扑和双路拓扑形式支持 IPv4 和 IPv6 的无状态服务器直接返回 (Direct Server Return, DSR) 和网络地址转换 (Network Address Translation, NAT) 操作模式。
无状态 DSR 拓扑
NAT 模式(全 NAT 和半 NAT)拓扑
在 DSR 模式下,ILB 会平衡后端服务器的传入请求,而使从服务器返回到客户机的通信流量绕过它。但是,您也可以将 LIB 设置为后端服务器的路由器。在这种情况下,后端服务器对客户机的响应将通过正在运行 ILB 的系统进行路由。ILB 的当前 DSR 实现未提供 TCP 连接跟踪(意味着它是无状态的)。使用无状态 DSR,ILB 不会保存已处理包的任何状态信息,但基本统计信息除外。由于 ILB 在此模式下不保存任何状态,因此性能与正常的 IP 转发性能相当。此模式最适合无连接协议。
优点:
性能优于 NAT,因为只更改包的目标 MAC 地址,服务器将直接响应客户机。
服务器和客户机之间完全透明。服务器可直接看到来自客户机 IP 地址的连接,并通过缺省网关回复客户机。
缺点:
后端服务器必须响应其自身的 IP 地址(针对运行状况检查)以及虚拟 IP 地址(针对负载平衡通信)。
由于负载平衡器不维护连接状态(意味着它是无状态的),因此添加或删除服务器将导致连接中断。
下图显示了如何使用 DSR 拓扑实现 ILB。
图 10-1 服务器直接返回拓扑
在此图中,两个后端服务器与 ILB 机箱处于同一子网 (192.168.1.0/24) 中。服务器还连接到路由器,因此在收到 ILB 机箱转发的请求后,它们可以直接回复客户机。
ILB 完全是为了实现负载平衡功能才使用独立模式的 NAT。在此模式下,ILB 会重写头信息并处理传入与传出通信流量。ILB 可在半 NAT 模式和全 NAT 模式下运行。但是,全 NAT 还会重写源 IP 地址,使服务器认为所有连接均源自负载平衡器。NAT 确实提供了 TCP 连接跟踪(意味着它是有状态的)。NAT 模式可提供附加安全性,最适合超文本传输协议 (Hypertext Transfer Protocol, HTTP)(或安全套接字层 (Secure Sockets Layer, SSL))通信。
优点:
通过将缺省网关更改为指向负载平衡器,可使用所有后端服务器。
由于负载平衡器保持连接状态,因此可在不中断连接的情况下添加或删除服务器。
缺点:
性能低于 DSR,因为处理涉及到操作 IP 头,并且服务器向负载平衡器发送响应。
所有后端服务器都必须使用负载平衡器作为缺省网关。
NAT 拓扑的一般实现方式如下图所示。
图 10-2 网络地址转换拓扑
这种情况下,对 VIP 的所有请求均通过 ILB 机箱并转发到后端服务器。后端服务器的所有回复均通过 ILB 机箱以进行网络地址转换。
![]() | 注意 - ILB 中实现的 NAT 代码路径不同于 Oracle Solaris 的 IP 过滤器功能中实现的代码路径。请勿同时使用这两种代码路径。 |
在 ILB 的半 NAT 操作模式下,ILB 仅重写包头中的目标 IP 地址。如果您使用的是半 NAT 实现方式,则无法从服务器所在的子网连接到该服务的虚拟 IP (virtual IP, VIP) 地址。下表显示了流经客户机和 ILB 之间以及 ILB 和后端服务器之间的包的 IP 地址。
表 10-1 服务器和客户机位于不同的网络中时,半 NAT 实现的请求流和响应流
|
如果您将客户机系统连接到这些服务器所在的网络,预定的服务器将直接响应该客户机。不会执行第四步。因此,服务器对客户机响应的源 IP 地址无效。当客户机向负载平衡器发送连接请求时,预定的服务器会进行响应。自此以后,客户机的 IP 栈将正确丢弃所有响应。
在这种情况下,请求流和响应流会按下表所示进行。
表 10-2 服务器和客户机位于同一网络中时,半 NAT 实现的请求流和响应流
|
在全 NAT 实现中,将会重写源 IP 地址和目标 IP 地址,以确保通信在两个方向通过负载平衡器。通过全 NAT 拓扑,可以从服务器所在的子网中连接到 VIP。
下表描述了使用全 NAT 拓扑时流经客户机和 ILB 之间以及 ILB 和后端服务器之间的包的 IP 地址。服务器中不需要使用 ILB 框的特殊缺省路由。但是请注意,全 NAT 拓扑需要管理员留出一个或一系列 IP 地址供 ILB 用作源地址,以便与后端服务器进行通信。假定使用的地址属于子网 C。在此方案中,ILB 充当代理。
表 10-3 全 NAT 实现的请求流和响应流
|