`

LVS三种负载均衡模式之-网络地址转换

阅读更多

LVS全称是Linux Virtual Service

 

1.通过NAT实现虚拟服务器(VS/NAT)

 

由于IPv4中IP地址空间的日益紧张和安全方面的原因,很多网络使用保留IP地址(10.0.0.0/255.0.0.0、172.16.0.0 /255.128.0.0和192.168.0.0/255.255.0.0)[64, 65, 66]。这些地址不在Internet上使用,而是专门为内部网络预留的。当内部网络中的主机要访问Internet或被Internet访问时,就需要 采用网络地址转换(Network Address Translation, 以下简称NAT),将内部地址转化为Internets上可用的外部地址。NAT的工作原理是报文头(目标地址、源地址和端口等)被正确改写后,客户相信 它们连接一个IP地址,而不同IP地址的服务器组也认为它们是与客户直接相连的。由此,可以用NAT方法将不同IP地址的并行网络服务变成在一个IP地址 上的一个虚拟服务。


VS/NAT的体系结构如图3.1所示。在一组服务器前有一个调度器,它们是通过Switch/HUB相连接的。这些服务器提供相同的网络服务、相 同的内容,即不管请求被发送到哪一台服务器,执行结果是一样的。服务的内容可以复制到每台服务器的本地硬盘上,可以通过网络文件系统(如NFS)共享,也 可以通过一个分布式文件系统来提供。


客户通过Virtual IP Address(虚拟服务的IP地址)访问网络服务时,请求报文到达调度器,调度器根据连接调度算法从一组真实服务器中选出一台服务器,将报文的目标地址 Virtual IP Address改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将修改后的报文发送给选出的服务器。同时,调度器在连接Hash 表中记录这个连接,当这个连接的下一个报文到达时,从连接Hash表中可以得到原选定服务器的地址和端口,进行同样的改写操作,并将报文传给原选定的服务 器。当来自真实服务器的响应报文经过调度器时,调度器将报文的源地址和源端口改为Virtual IP Address和相应的端口,再把报文发给用户。我们在连接上引入一个状态机,不同的报文会使得连接处于不同的状态,不同的状态有不同的超时值。在TCP 连接中,根据标准的TCP有限状态机进行状态迁移;在UDP中,我们只设置一个UDP状态。不同状态的超时值是可以设置的,在缺省情况下,SYN状态的超 时为1分钟,ESTABLISHED状态的超时为15分钟,FIN状态的超时为1分钟;UDP状态的超时为5分钟。当连接终止或超时,调度器将这个连接从 连接Hash表中删除。

这样,客户所看到的只是在Virtual IP Address上提供的服务,而服务器集群的结构对用户是透明的。对改写后的报文,应用增量调整Checksum的算法调整TCP Checksum的值,避免了扫描整个报文来计算Checksum的开销。


在一些网络服务中,它们将IP地址或者端口号在报文的数据中传送,若我们只对报文头的IP地址和端口号作转换,这样就会出现不一致性,服务会中断。 所以,针对这些服务,需要编写相应的应用模块来转换报文数据中的IP地址或者端口号。我们所知道有这个问题的网络服务有FTP、IRC、H.323、 CUSeeMe、Real Audio、Real Video、Vxtreme / Vosiac、VDOLive、VIVOActive、True Speech、RSTP、PPTP、StreamWorks、NTT AudioLink、NTT SoftwareVision、Yamaha MIDPlug、iChat Pager、Quake和Diablo。

下面,举个例子来进一步说明VS/NAT,如图3.2所示:


 

VS/NAT的配置如下表所示,所有到IP地址为202.103.106.5和端口为80的流量都被负载均衡地调度的真实服务器 172.16.0.2:80和172.16.0.3:8000上。目标地址为202.103.106.5:21的报文被转移到172.16.0.3:21 上。而到其他端口的报文将被拒绝。

Protocol Virtual IP Address Port Real IP Address Port Weight
TCP 202.103.106.5 80 172.16.0.2 80 1
172.16.0.3 8000 2
TCP 202.103.106.5 21 172.16.0.3 21 1

从以下的例子中,我们可以更详细地了解报文改写的流程。

访问Web服务的报文可能有以下的源地址和目标地址:

SOURCE 202.100.1.2:3456 DEST 202.103.106.5:80

调度器从调度列表中选出一台服务器,例如是172.16.0.3:8000。该报文会被改写为如下地址,并将它发送给选出的服务器。

SOURCE 202.100.1.2:3456 DEST 172.16.0.3:8000

从服务器返回到调度器的响应报文如下:

SOURCE 172.16.0.3:8000 DEST 202.100.1.2:3456

响应报文的源地址会被改写为虚拟服务的地址,再将报文发送给客户:

SOURCE 202.103.106.5:80 DEST 202.100.1.2:3456

这样,客户认为是从202.103.106.5:80服务得到正确的响应,而不会知道该请求是服务器172.16.0.2还是服务器172.16.0.3处理的。

 

转自:

http://zh.linuxvirtualserver.org/node/26

 

 

 

  • 大小: 41.9 KB
  • 大小: 17.3 KB
分享到:
评论

相关推荐

    LVS三种模式配置总结

    LVS-NAT 模式(Network Address Translation)是一种基于网络地址转换的负载均衡模式。在这种模式下,Director Server将客户端的请求转换为Real Server的IP地址,并将响应从Real Server路由回客户端。 LVS-NAT 模式...

    LVS 负载均衡配置参考

    ### LVS负载均衡配置详解 #### 一、LVS简介 LVS(Linux Virtual Server)是一种先进的集群技术,主要用于构建高性能、高可用性的服务器集群。它通过IP负载均衡技术和基于内容请求分发技术来实现这一目标。具体而言...

    LVS+keepalived负载均衡系统资料合集

    综上所述,LVS+keepalived负载均衡系统是构建高可用、高性能服务的关键技术之一,其强大的功能和灵活的配置使得它在各类规模的网络环境中都有广泛的应用。通过深入理解和熟练掌握这些知识点,可以有效地提升系统稳定...

    lvs负载均衡源码

    LVS负载均衡器的调度算法有很多种,例如轮询(Round Robin)、最少连接(Least Connections)、短连接优先(Shortest Connection First)等,可以根据实际需求选择合适的算法来分配请求。 在“LVS-master”这个...

    LVS的三种IP负载均衡技术

    LVS提供了三种主要的IP负载均衡模式:NAT模式、IP隧道模式和直接路由模式,每种模式都有其特定的应用场景和优势。 1. **NAT(网络地址转换)模式** NAT模式是基于IP地址转换的负载均衡策略。在此模式下,客户端...

    搭建LVS集群实战负载均衡-随堂笔记.doc

    【搭建LVS集群实战负载均衡】的随堂笔记主要涵盖了LVS集群的理论知识和实际操作步骤,旨在帮助读者从零开始快速构建LVS负载均衡集群。以下是详细的知识点解析: 1. **LVS集群概述**: - 集群是一种由多台计算机...

    LVS集群与负载均衡

    LVS支持三种主要的工作模式:NAT(网络地址转换)、DR(直接路由)和TUN(隧道)。每种模式都有其独特的应用场景和优势。 1. **NAT模式**:LVS作为网关,将客户端的请求IP和端口转换为后端服务器的IP和端口,而后端...

    负载均衡方案(LVS策略)

    LVS主要采用三种IP负载均衡技术:VS/NAT、VS/TUN和VS/DR,每种技术都有其特定的应用场景和优缺点。 1. **VS/NAT(网络地址转换)**: 在这种模式下,外部用户通过VIP(虚拟IP)访问Director服务器,Director将DNAT...

    负载均衡的LVS服务器的设计与实现.pdf

    【负载均衡的LVS服务器设计与实现】 ...通过选择合适的负载均衡模式和调度策略,可以有效地提高服务质量和可靠性,同时实现资源的优化分配。在实际应用中,需结合网络拓扑和业务需求,选择最适合的LVS配置方案。

    LVS+Keepalived负载均衡配置2

    1. **NAT(网络地址转换)模式**:客户端请求的目标IP被转换为真实服务器的IP,而返回数据包的目标IP则被转换回VIP。 2. **TUN(隧道)模式**:LVS在数据包中封装目标IP和端口,然后转发给真实服务器,服务器直接...

    LINUX集群LVS负载均衡配置.pdf

    ### LINUX集群LVS负载均衡配置知识点详解 #### 一、LVS概述与基本原理 **LVS**(Linux Virtual Server)是一种开源的负载均衡技术,主要用于实现高性能的Web服务器集群。它通过一个虚拟的IP地址(VIP)对外提供...

    LVS负载均衡服务器.pdf

    LVS提供了三种主要的负载均衡模式:TUN(隧道模式)、NAT(网络地址转换模式)和DR(直接路由模式)。TUN模式通过IP层封装实现负载均衡,服务器集群内部通信需要两层隧道。NAT模式利用IP地址转换技术,将所有客户端...

    生产环境之负债均衡LVS+keepalived方案(2)-LVS介绍.pdf

    **LVS(Linux Virtual Server)** 是一种在Linux操作系统中实现的高性能的负载均衡解决方案,它利用内核级的处理能力来分发网络流量到后端的真实服务器,从而提高服务的可用性和响应速度。自Linux内核2.6.X以来,LVS...

    网站集群架构设计LVS实现网络负载均衡实例精讲(与“服务器”有关文档共50张).pptx

    LVS提供了三种IP负载均衡技术:VS/NAT(网络地址转换)、VS/TUN(IP隧道)和VS/DR(直接路由)。VS/NAT通过网络地址转换创建虚拟服务器,VS/TUN利用IP隧道技术,而VS/DR则通过直接路由实现,每种方法都有其适用场景...

    利用LVS+Keepalived 实现高性能高可用负载均衡服务器

    - **VS/NAT(网络地址转换)**:客户端请求到达LVS后,LVS将源IP地址转换为Real Server的IP地址,Real Server直接响应客户端。 - **VS/TUN(隧道)**:LVS作为隧道端点,将原始IP包封装在一个新的IP包中转发给Real ...

    LVS负载均衡-实战总结.doc

    **LVS负载均衡详解** LVS(Linux Virtual Server)是一种高性能的网络负载均衡技术,它可以在不修改现有应用的情况下,实现高可用性和可扩展性。本文主要探讨LVS的两种工作模式:NAT(网络地址转换)和DR(直接路由...

Global site tag (gtag.js) - Google Analytics