`

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

阅读更多
<!--StartFragment-->

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

<!-- start main content --><!-- begin content -->

由于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)共享,也可以通过一个分布式文件系统来提供。



 

图3.1:VS/NAT的体系结构

客户通过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所示:



 

图3.2:VS/NAT的例子

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处理的。

<!--EndFragment-->
  • 大小: 41.9 KB
  • 大小: 17.3 KB
分享到:
评论

相关推荐

    使用NAT实现Linux虚拟服务器.pdf

    "使用NAT实现Linux虚拟服务器.pdf" 本文主要介绍了如何使用NAT技术实现Linux虚拟服务器,解决服务器过载问题。随着互联网的快速发展,网络流量也在急剧增加,导致服务器负载的快速增长。为了解决服务器过载问题,有...

    LVS Keepalived 详细中文原理构建LINUX HA服务配置手册

    通过NAT实现虚拟服务器(VS/NAT) 17 通过IP隧道实现虚拟服务器(VS/TUN) 19 通过直接路由实现虚拟服务器(VS/DR) 22 三种方法的优缺点比较 24 Virtual Server via NAT 25 Virtual Server via IP Tunneling 25...

    负载均衡技术 虚拟服务器方案探讨

    文中分析了虚拟服务器(LVS)方案实现负载平衡技术,包括NAT实现虚拟服务器(VS/NAT)、IP隧道实现虚拟服务器(Vs/TuN)和直接路由器实现虚拟服务器(VS/DR)三种基本实现方法,详细探讨了它们各自实现细节、实现流程和优...

    在VMware ESXi服务器上配置NAT上网

    VMware ESXi 服务器上配置 NAT 上网 在 VMware ESXi 服务器上配置 NAT 上网是实现虚拟机共享主机网络的一...VMware ESXi 服务器上配置 NAT 上网需要通过软路由来实现,可以使用 pfSense 等软件路由器来实现 NAT 上网。

    快速配置Linux NAT服务器.pdf

    Linux NAT 服务器的优点是可以让多个虚拟 IP 地址通过一个拥有真实 IP 地址且与互联网连接的 Linux 机器作为网关器,而与互联网连接。这使得网络环境更加灵活和可靠。 Linux NAT 服务器的应用非常广泛,例如可以...

    Lvs dr+keepalive

    在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct ...

    VMware虚拟机Linux通过NAT方式上网

    在 VMware 中,NAT 技术是通过虚拟网络交换机 VMnet8 来实现的。VMnet8 是 VMware 软件虚拟的一台网络交换机,带有 DHCP 功能,本身起到 NAT 服务器的作用。通过 VMnet8,虚拟机可以获取到私有 IP 地址,并将其转换...

    浅谈Linux服务器集群系统LVS.pdf

    1.IP虚拟服务器软件IPVS:实现了三种IP负载均衡技术,包括VS/NAT、VS/TUN和VS/DR,并且支持八种连接调度算法。 2.内核Layer-7交换机KTCPVS:在操作系统的内核中实现Layer-7交换方法,能够对HTTP请求进行基于内容的...

    ASA配nat配置实例

    asa讲述nat配置 195.21.1.0/24和11.11.11.0/24是本地网段,11.11.11.11假设为本地服务器 22.22.24.3为虚拟地址 13.1.0.0/24为外联公司网段(包括服务器) 无拓扑图

    8.1: 集群及LVS简介 、 LVS-NAT集群 、 LVS-DR集群 、 总结与答疑.docx

    本文档主要讲解了Linux虚拟服务器(LVS)的基本概念和实现方法,涵盖了LVS的集群模式、LVS-NAT集群、LVS-DR集群等内容。同时,文档还提供了一些实际的案例,包括使用ipvsadm命令实现集群服务、部署LVS-NAT集群和部署...

    虚拟机在NAT模式下配置固定IP

    在虚拟机管理界面中,打开“虚拟网络编辑器”菜单栏“编辑”==&gt; “虚拟网络编辑器(N)…”,以便配置 NAT 网络的参数。 六、配置 NAT 设置 在“虚拟网络编辑器”页面中,选择“设置”,进入“NAT 设置”页面。在...

    LVS集群中的IP负载均衡技术

    在分析网络地址转换方法(VS/NAT)的缺点和网络服务的非对称性的基础上,我们给出了通过IP隧道实现虚拟服务器的方法VS/TUN,和通过直接路由实现虚拟服务器的方法VS/DR,极大地提高了系统的伸缩性。

    VMware Workstation下NAT上网方式设置

    VMware Workstation下NAT上网方式设置 VMware Workstation是虚拟机软件,提供了多种网络模式,包括桥接、NAT、仅主机、自定义等。其中,NAT(Network Address Translation,网络地址转换)模式是最常用的网络模式之...

    VMware服务器虚拟化解决方案.doc

    通过把物理 系统整合到有VMWARE虚拟构架的数据中心上去,企业体验到: 更少的硬件和维护费用 空闲系统资源的整合 提升系统的运作效率 性价比高,持续的产品环境 整合IT基础服务器 运行IT基础应用的服务器大多数是...

    H3C VSR1000虚拟路由器典型配置举例【PDF CHM】.rar

    06-H3C VSR1000虚拟路由器内网用户通过NAT地址访问内网服务器典型配置举例 07-H3C VSR1000虚拟路由器NAT DNS mapping典型配置举例 08-H3C VSR1000虚拟路由器内部服务器负载分担典型配置举例 09-H3C VSR1000虚拟...

    常见的几种负载均衡详解

    在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR)的工作原理,以及它们的优缺点。

    linux lvs keepalived较为详细的安装配置文档

    * VS/NAT:通过网络地址转换将客户请求分派给后端的真实服务器。 * VS/TUN:通过 IP 隧道将客户请求分派给后端的真实服务器。 * VS/DR:通过直接路由将客户请求分派给后端的真实服务器。 三、Keepalived 概述 ...

    VMware NAT做端口映射

    它可以将虚拟机中的 IP 地址转换为宿主机的 IP 地址,从而实现虚拟机与外部网络的连接。端口映射是 NAT 模式下的一种应用,即将虚拟机中的某个端口映射到宿主机的某个端口上,使得外部网络可以访问虚拟机中的服务。 ...

    毕业设计:网络的虚拟实验平台-通信库的设计与实现源代码

    由于采用了最新的P2P穿透NAT的技术,因此可以实现冲破局域网的限制,实现真正的异地连接,同学可以在家里利用一台普通的能够上网的PC,就能把老师布置的实验作业完成,并且,老师可以通过服务器端,了解进度情况,...

Global site tag (gtag.js) - Google Analytics