分类: 系统运维
2008-05-15 15:18:22
网络负载平衡转发技术简介 |
作者:候云峰 袁波 |
随着互联网的迅速发展,应用服务器工作量的日益增加,对负载均衡技术的需求也就越来越多。而在众多的负载平衡技术中,网络负载平衡技术由于其优势,成为了目前使用最为广泛的技术,具体的产品也最为广泛:如F5的BIG-IP、RadWare的Web Server Director、IBM的WebSphere Edge Server、TriLoad负载平衡服务器等。
目前主要有三种网络负载平衡转发技术,分别是网络地址转换、直接路由和IP隧道技术,采用不同的方法将客户端发送的包转发到目的服务器上,并确保目的服务器的返回包可以顺利到达客户端。
目前主要有三种网络负载平衡转发技术,分别是网络地址转换、直接路由和IP隧道技术,采用不同的方法将客户端发送的包转发到目的服务器上,并确保目的服务器的返回包可以顺利到达客户端。
网络地址转换
网络地址转换模式
在目标网络地址转换(DNAT)模式下,提供服务的IP被定义在平衡服务器上,应用服务器只需要定义各自的内部IP地址,但是必须将负载平衡服务器定义为缺省路由,以保证返回客户端的包经过负载平衡服务器,完成第二次地址转换后再送回客户端。
原理:
1. 客户发出服务请求
2. 负载平衡服务器接收到请求,将数据包中目的IP地址改为选中的应用服务器IP地址,然后重新发出数据包
3. 应用服务器收到后,将应答包发回给负载平衡服务器
4. 负载平衡服务器收到应答包后将其中的源地址改回成服务IP,发回客户端
网络地址转换的优点是实际服务器可以运行支持TCP/IP协议的任意操作系统,实际服务器可以使用私有地址,只需在平衡服务器上配置服务IP地址。而且现在的防火墙都支持地址转换功能,因此,容易为用户接受。
缺点是网络地址转换的性能扩展能力有限,因为请求包和应答包都必须通过平衡服务器,当服务器的节点数量达到20或更多时,平衡服务器可能成为整个系统的瓶颈。因此,这种方式主要适用于网络负载不是很高的场合。
直接路由
和那种请求包和应答包都必须通过平衡服务器的网络地址转换不同,平衡服务器在直接路由模式下,将请求调度到不同的实际服务器,实际服务器直接将结果发回客户端。在大多数应用中,请求的字节数远小于应答的字节数,所以与网络地址转换相比平衡服务器能处理更多的请求。采用直接路由能更大程度提高平衡服务器的最大节点数和网络吞吐量。甚至于平衡服务器使用100M全双工的网卡,系统的最大数据吞吐量仍可以超过1Gbps。
直接路由的特点是运用网络分层原理,通过将目标IP包封装在指定MAC地址的以太网数据包中欺骗TCP堆栈,因此实际服务器和负载平衡服务器必须在同一个物理网段中,并且在应用服务器上必须将服务IP定义在loopback虚拟网卡上。
原理:
1. 客户发出服务请求
2. 负载平衡服务器接收到请求,将数据包中网卡物理地址(MAC)改为选中的应用服务器的MAC地址,然后重新发出数据包
3. 目标应用服务器收到后,将应答包通过路由器直接发回客户端(不经过负载平衡服务器)
直接路由是最高效,网络延时最小的负载平衡技术,但是,为达到MAC地址的欺骗,负载平衡服务器和所有应用服务器必须在同一个物理网段。而且,现在出现操作系统缺省是关闭这种特性的,如FreeBSD,必须显示打开相应的内核开关才可以。不过,目前的主流操作系统,都可以满足直接路由的需求,如Windows、Linux、AIX、Solaris、FreeBSD等。
IP隧道
与直接路由的方法类似,区别仅仅在于不是通过MAC欺骗来转发数据包,而是通过建立负载平衡服务器和应用服务器之间的IP隧道来完成。
因为这些服务器的连接是通过IP隧道,平衡服务器和实际服务器可以在不同的局域网甚至是广域网。缺点是所有服务器必须使用IP隧道(IP封装)协议,比直接路由的效率要低,而且,不是所有的操作系统都支持。
在实际环境中,需要根据实际的情况来选择采用合适的转发技术的产品,甚至在某些场合,需要混合不同的转发方式。