利用NAT实现TCP负载均衡原理
来源:互联网 发布:网易和暴雪 知乎 编辑:程序博客网 时间:2024/06/05 08:28
1.1 使用NAT实现TCP负载均衡
可以通过目的地址循环转换实现服务器的TCP负载均衡,可以把一个虚拟主机映射到多个真实的主机(如Web服务器)上。虚拟主上每次发起的新TCP会话将与一个不同的真实主机进行。通过NAT,你可以在你的内部网络建立多个真实主机,以分担众多用户对一个虚拟主机访问的负荷。每次从外部网络发起的新会话所对应的真实主机的循环是通过对目的地址以地址池的方式进行轮回转换实现的。它是一种反向NAT转换,是对目的地址的转换,而不是对源地址的转换。
1.1.1 利用NAT实现TCP负载均衡原理
下面以一个示例介绍利用NAT实现TCP负载均衡的原理。示例网络结构如图5-21所示。在本示例中,内部网络有多个真实服务器主机,IP地址分别是1.1.1.1、1.1.1.2、1.1.1.3……。而对应的全局地址(虚拟主机)只有一个,那就是1.1.1.127。外部用户对内部的真实主机访问时,NAT路由器会会截获得访问的数据包,把目的地址以以循环方式把目的地址转换为对应的真实主机上,这样就可以完成内部真实主机(服务器)的TCP负载均衡。
(点击查看大图)图5-21 利用NAT实现TCP负载均衡示例网络结构下面是具体的转换原理示例。
(1)外部网络用户主机B(IP地址为9.6.7.3)发起与虚拟主机(内部全局地址)1.1.1.127的连接。此时数据包中的源地址为外部本地地址9.6.7.3,目的地址为虚拟主机地址1.1.1.127。
(2)当路由器接收到连接请求数据包时,创建一个内部网络中真实主机(如1.1.1.1)进行关联的新的NAT转换条目。
(3)NAT路由器把连接请求的数据包中的目的地址用真实主机的本地地址进行替换(源地址不变),然后继续发送连接请求数据包。
(4)内部网络中真实主机1.1.1.1接收到这个连接请求数据包,并发出一个应答数据包。应答数据包中的源地址是内部真实主机本地地址(1.1.1.1),目的地址为外部网络主机B的IP地址(9.6.7.3)。
(5)当NAT路由器接收到这个应答数据包后,使用内部本地地址和端口号,以及外部地址和端口号作为关键字在NAT表中进行查找。找到后把应答包中的源地址转换成虚拟主机地址(内部全局地址)进行替换(目的地址不变),继续转发应答数据包。直接外部网络用户收到应答数据包。
后面的转换过程就是前面的重复,但下一次转换时虚拟主机所对应的内部主机本地地址不再是1.1.1.1,可能是1.1.1.2,或者1.1.1.3……。这是一个动态NAT转换,不是静态的。
- 利用NAT实现TCP负载均衡原理
- 利用NAT实现TCP负载均衡的配置命令
- NAT 2 - 利用Rotary NAT实现TCP流量负载均衡 [译] + GNS3实现
- 利用NAT实现TCP负载均衡的配置步骤和示例
- NAT中TCP负载均衡实验总结
- 负载均衡实现原理
- nginx 实现tcp负载均衡
- nginx 实现tcp负载均衡
- VMware上实现LVS负载均衡(NAT)
- LVS-NAT模型实现负载均衡
- 利用DNS实现负载均衡
- 利用DNS实现负载均衡
- 利用HAProxy 实现负载均衡
- 利用HAProxy实现负载均衡
- 利用HAProxy实现负载均衡
- NAT技术与TCP负载均衡精讲
- CISCO NAT负载均衡
- Nginx实现HTTP负载均衡和TCP负载均衡
- 视图(view)用法
- Python函数式编程指南(四):生成器
- 使用getIdentifier()获取资源Id
- 通配符和like用法
- 原生javascript
- 利用NAT实现TCP负载均衡原理
- 推荐5款超实用的.NET性能分析工具
- ios 沙盒
- 利用NAT实现TCP负载均衡的配置步骤和示例
- IOS编程Socket连接处理
- 利用NAT实现TCP负载均衡的配置命令
- 用GDB调试程序
- 关于PE文件中的校验和
- CSS文件和Javascript文件的压缩