由于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处理的。
相关推荐
"使用NAT实现Linux虚拟服务器.pdf" 本文主要介绍了如何使用NAT技术实现Linux虚拟服务器,解决服务器过载问题。随着互联网的快速发展,网络流量也在急剧增加,导致服务器负载的快速增长。为了解决服务器过载问题,有...
通过NAT实现虚拟服务器(VS/NAT) 17 通过IP隧道实现虚拟服务器(VS/TUN) 19 通过直接路由实现虚拟服务器(VS/DR) 22 三种方法的优缺点比较 24 Virtual Server via NAT 25 Virtual Server via IP Tunneling 25...
VMware ESXi 服务器上配置 NAT 上网 在 VMware ESXi 服务器上配置 NAT 上网是实现虚拟机共享主机网络的一...VMware ESXi 服务器上配置 NAT 上网需要通过软路由来实现,可以使用 pfSense 等软件路由器来实现 NAT 上网。
通过NAT,多个内部设备可以共享一个对外的IP地址,而内部网络结构对外部是不可见的。NAT的工作方式包括源NAT、目的NAT和端口地址转换。 【VLAN(虚拟局域网)】 虚拟局域网(VLAN)是局域网的一种逻辑划分,它将...
本文将重点讨论虚拟服务器(LVS)方案在实现负载均衡技术方面的三种基本方法:网络地址转换(VS/NAT)、IP隧道(VS/TUN)以及直接路由(VS/DR)。接下来,我们将详细探讨每种方法的实现细节、流程及其优缺点。 ####...
Linux NAT 服务器的优点是可以让多个虚拟 IP 地址通过一个拥有真实 IP 地址且与互联网连接的 Linux 机器作为网关器,而与互联网连接。这使得网络环境更加灵活和可靠。 Linux NAT 服务器的应用非常广泛,例如可以...
- 通过网络地址转换实现虚拟服务器。 - 这种模式下,所有的数据包都会经过调度器,因此在高并发情况下,调度器可能成为瓶颈。 - **VS/DR**: - 直接使用路由技术实现虚拟服务器。 - 在这种模式下,节点服务器...
通过详细的操作步骤,帮助读者理解NAT的工作原理以及如何配置虚拟环境下的网络连接。 #### 知识点详细解释 **NAT的概念** NAT是一种用于在网络之间共享一个或多个IP地址的技术。它通过修改IP数据包中的地址信息来...
【NAT实现负载分配】是计算机网络实验中的一项重要内容,主要目标是利用网络地址转换(NAT)技术,实现对两台WEB服务器的负载均衡,从而优化网络资源的使用,提高服务的可用性和响应速度。在这个实验中,学生需要...
在 VMware 中,NAT 技术是通过虚拟网络交换机 VMnet8 来实现的。VMnet8 是 VMware 软件虚拟的一台网络交换机,带有 DHCP 功能,本身起到 NAT 服务器的作用。通过 VMnet8,虚拟机可以获取到私有 IP 地址,并将其转换...
它利用集群技术,通过IP负载均衡技术,实现了虚拟服务器的功能,从而提供了高可伸缩性、可靠性和可管理性的网络服务。LVS支持三种IP负载均衡技术,分别是VS/NAT、VS/TUN和VS/DR,它们各自适用于不同的网络环境。 1....
LVS通过使用IPVS(IP Virtual Server)内核模块实现网络地址转换(VS/NAT)、IP隧道(VS/TUN)和直接路由(VS/DR)三种负载均衡技术。VS/NAT通过修改数据包的IP地址来实现负载均衡;VS/TUN通过在LVS和真实服务器之间...
最后,VS/DR(Virtual Server via Direct Routing)技术利用直接路由实现虚拟服务器。在此模式下,调度器通过修改IP包的目标MAC地址,使得数据包可以直接发送到后端服务器,无需经过调度器转发,从而减少了网络延迟...
VS/NAT技术是通过网络地址转换将一组服务器构成一个高性能的、高可用的虚拟服务器。VS/TUN技术是通过IP隧道实现虚拟服务器的方法。VS/DR技术是通过直接路由实现虚拟服务器的方法。这三种技术都是实现负载均衡的重要...
通过在本地机器上架设虚拟服务器,用户可以方便地进行各种实验,比如测试新的应用程序、网站开发或者模拟分布式系统,而不影响到实际的生产环境。 关于压缩包中的文件"aws.exe",这可能是该虚拟服务器软件的可执行...
VS/TUN技术采用IP隧道实现虚拟服务器,可以极大地提高系统的伸缩性。VS/DR技术通过改写请求报文的MAC地址,将请求发送到真实服务器。 LVS还提供了八种负载调度算法,包括轮叫(Round Robin)、加权轮叫(Weighted ...
通过 VLAN,可以将一个交换器分成多个虚拟网络,每个虚拟网络都可以配置自己的子网和网关。 在本例中,我们将在交换器上创建三个 VLAN:VLAN2、VLAN3 和 VLAN4。每个 VLAN 都有自己的子网: * VLAN2:192.168.1.0/...
LVS (Linux Virtual Server) 是 Linux 虚拟服务器项目的简称,该项目成立于 1998 年 5 月,由中国科学家章文嵩博士创立,是中国最早的开源软件项目之一。LVS 是一个高度可扩展的和高可用的服务器集群解决方案,用于...
【NAT123端口映射免费版】是一款实用的网络工具,主要功能是帮助用户将自己的个人电脑转变为临时服务器,...通过理解NAT、端口映射以及虚拟域名等概念,用户可以更好地利用这款软件,提升网络服务的可达性和稳定性。