将 Oracle® Solaris 11.2 系统配置为路由器或负载平衡器

退出打印视图

更新时间: 2014 年 9 月
 
 

网络地址转换模式

ILB 完全是为了实现负载平衡功能才使用独立模式的 NAT。在此模式下,ILB 会重写头信息并处理传入与传出通信流量。ILB 可在半 NAT 模式和全 NAT 模式下运行。但是,全 NAT 还会重写源 IP 地址,使服务器认为所有连接均源自负载平衡器。NAT 确实提供了 TCP 连接跟踪(意味着它是有状态的)。NAT 模式可提供额外的安全性,最适合超文本传输协议 (Hypertext Transfer Protocol, HTTP) 或安全套接字层 (Secure Sockets Layer, SSL) 通信。

    优点:

  • 通过将缺省网关更改为指向负载平衡器,可使用所有后端服务器

  • 由于负载平衡器保持连接状态,因此可在不中断连接的情况下添加或删除服务器

    缺点:

  • 性能低于 DSR,因为处理涉及到操作 IP 头,并且服务器向负载平衡器发送响应

  • 所有后端服务器都必须使用负载平衡器作为缺省网关

NAT 模式的一般实现方式如下图中所示。

图 5-2  网络地址转换拓扑

image:该图描述了网络地址转换拓扑。

在这种情况下,对 VIP 的所有请求均通过 ILB 并转发到后端服务器。后端服务器的所有回复均通过 ILB 以进行网络地址转换。


Caution

注意  -  ILB 中实现的 NAT 代码路径不同于 Oracle Solaris 的 IP 过滤器功能中实现的代码路径。请勿同时使用这两种代码路径。


半 NAT 负载平衡模式

在 ILB 操作的半 NAT 模式下,ILB 仅将目标 IP 地址重新写入包头中。如果您使用的是半 NAT 实现方式,则无法从服务器所在的子网连接到该服务的 VIP 地址。下表显示了流经客户机和 ILB 之间以及 ILB 和后端服务器之间的包的 IP 地址。

表 5-1  服务器和客户机位于不同的网络中时,半 NAT 实现的请求流和响应流
请求流
源 IP 地址
目标 IP 地址
1.
客户机 –> ILB
客户机
ILB 的 VIP
2.
ILB –> 服务器
客户机
服务器
响应流
3.
服务器 –> ILB
服务器
客户机
4.
ILB –> 客户机
ILB 的 VIP
客户机

如果您将客户机系统连接到服务器所在的网络,预定的服务器将直接响应客户机,不会发生表中的第四步。因此,服务器对客户机响应的源 IP 地址无效。当客户机向负载平衡器发送连接请求时,预定的服务器会进行响应。自此以后,客户机的 IP 栈将正确丢弃所有响应。在这种情况下,请求流和响应流会按下表所示继续进行。

表 5-2  服务器和客户机位于同一网络中时,半 NAT 实现的请求流和响应流
请求流
源 IP 地址
目标 IP 地址
1.
客户机 –> ILB
客户机
ILB 的 VIP
2.
ILB –> 服务器
客户机
服务器
响应流
3.
服务器 –> 客户机
服务器
客户机

全 NAT 负载平衡模式

在 ILB 操作的全 NAT 实现中,将会重新写入源 IP 地址和目标 IP 地址,以确保通信在两个方向通过负载平衡器。通过全 NAT 模式,可以从服务器所在的子网中连接到 VIP。

下表描述了使用全 NAT 模式时流经客户机和 ILB 之间以及 ILB 和后端服务器之间的包的 IP 地址。服务器中不需要使用 ILB 框的特殊缺省路由。请注意,全 NAT 模式需要管理员留出一个 IP 地址或一系列 IP 地址供 ILB 用作源地址,以便与后端服务器进行通信。假定使用的地址属于子网 C。在这种情况下,ILB 充当代理。

表 5-3  全 NAT 实现的请求流和响应流
请求流
源 IP 地址
目标 IP 地址
1.
客户机 –> ILB
客户机
ILB 的 VIP
2.
ILB –> 服务器
负载平衡器的接口地址(子网 C)
服务器
响应流
3.
服务器 –> ILB
服务器
ILB 的接口地址(子网 C)
4.
ILB –> 客户机
ILB 的 VIP
客户机