LVS系列—LVS的三种工作方式(NAT原理)(一)
来源:互联网 发布:淘宝怎么修改旺旺名称 编辑:程序博客网 时间:2024/06/01 10:49
NAT方式是一种由LVS Master服务节点收到数据报,然后转给下层的Real Server节点,当Real Server处理完成后回发给LVS Master节点然后又由LVS Master节点转发出去的工作方式。LVS的管理程序IPVSADMIN负责绑定转发规则,并完成IP数据报文和TCP数据报文中属性的重写。
请用几分钟时间仔细看看下图(为了简单,图里面只画了一个Real Server。如果看不清楚,可点击右键“查看原图”):
在正式的机房环境中,一般有两种方式为一个机器分配外网地址:在核心交换机上直接绑定外网地址到主机网卡的,这样使用ifconfig命令看到的IP地址为外网地址;在核心交换机上使用映射规则,将一个外网地址映射到内网地址,这样使用ifconfig命令看到的IP地址为内网地址。上图中我们采用的是后一种映射规则。如果使用前一种外网IP的分配规则,也不会影响LVS NAT的工作方式,因为这个IP被限制在LVS NAT工作以外。只不过eth1的IP从192.168.100.10换成100.64.92.199而已。
我们用中文描述一下转换规则:凡是发送到“192.168.100.10:80”的数据报,目标地址全部改写为“192.168.220.121:8080”,所以来自于100.64.92.199:80的报文被改写了。被改写的属性包括:IP.header.destinationIP、IP.header.checksum、TCP.header.sourcePort、TCP.header.targetPort、TCP.header.checksum。注意IP报文的Source IP不会发生变化,还是“互联网某个IP”。
这个包最终被送到了192.168.220.121的8080端口进行处理,并由下层的Real Server生成了返回的数据报(至于这个Real Server是不是“真正的Real Server”,LVS不会关心)。你要问它是怎么被发送过去的,请参考ARP查询协议。
注意:因为LVS服务器和Real Server(可能有多个),组成了一个封闭的局域网。除了LVS节点以外,这个子网的任何节点都是无法访问外网的。所以要求192.168.220.121这个Real Server直接把数据报给“互联网某个IP”这个外网地址,显然是不行的,因为在局域网中根本就找不到这个IP。Real Server只能将数据报返给网关,再由网关去寻找这个外网地址。整个服务器中只有LVS节点能够找到这个外网地址,这就是为什么在LVS-NAT工作模式下,所有的Real Server节点必须设置自己的Gateway为LVS节点的原因。
收到来源于“192.168.220.121:8080”的数据报文后,IPVS又要进行数据报文的重写了。重写规则是:凡是来源于“192.168.220.121:8080”的数据报,源地址全部改写为“192.168.100.10:80”。于是数据报文的Source IP、Source Port被改写成“192.168.100.10:80”。在外层的核心交换机(或者是机房以外的请求方)看来,LVS接受了数据报,并进行了处理,返回了结果。它并不知道LVS节点的下层还有什么。
LVS-NAT的优点在于:
配置管理简单。LVS-NAT的工作方式是LVS三种工作模式中最容易理解、最容易配置、最容易管理的工作模式。
节省外网IP资源,一般机房分配给使用者的IP数量是有限的,特别是您购买的机架的数量不多时。LVS-NAT工作方式将您的系统架构封装在局域网中,只需要LVS有一个外网地址或外网地址映射就可以实现访问了。
系统架构相对封闭。在内网环境下我们对防火墙的设置要求不会很高,也相对容易进行物理服务器的运维。您可以设置来源于外网的请求需要进行防火墙过滤,而对内网请求开放访问。
另外改写后转给Real Server的数据报文,Real Server并不会关心它的真实性,只要TCP校验和IP校验都能通过,Real Server就可以进行处理。所以LVS-NAT工作模式下Real Server可以是任何操作系统,只要它支持TCP/IP协议即可。
当然作为Linux系统忠实拥护者,我并不建议使用Window服务器。但如果您的Real Server是.Net系统,又有业务场景需要用到LVS,那么LVS-NAT可能是一个不错的选择。
LVS-NAT的缺点是由于这种转发模式本身所造成的:
- 转发点就是瓶颈点。您可以想象100台Real Server将处理结果全部转到一个LVS进行发送是一个怎么样的场景。事实上,LVS-NAT的极限负载是达不到100台Real Server的。
- LVS系列—LVS的三种工作方式(NAT原理)(一)
- LVS系列—LVS的三种工作方式(TUN原理)(三)
- LVS系列—LVS的三种工作方式(DR原理)(二)
- LVS系列—负载均衡之工作原理说明(NAT模式)
- LVS之一:三种工作模式的优缺点比较(NAT/TUN/DR)
- lvs-nat篇(一)
- LVS系列—LVS-NAT 模式安装
- LVS NAT/DR/TUN三种工作模式详解(转)
- LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调度算法)
- LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调度算法)
- LVS三种工作模式原理
- LVS NAT/TUN/DR 三种方式比较
- LVS--lvs-dr、lvs-nat配置(2)
- LVS系列—负载均衡之工作原理说明(DR模式)
- LVS系列—负载均衡之工作原理说明(TUN模式)
- LVS原理详解(3种工作方式8种调度算法)
- LVS原理详解(3种工作方式8种调度算法)
- LVS原理详解(3种工作方式8种调度算法)
- windows安装apache/php
- 百度地图支持坐标分析
- Android NDK编译c,c++源文件,实现JNI调用
- linux下如何编译c语言
- UEditor保存HTML到数据库及回显
- LVS系列—LVS的三种工作方式(NAT原理)(一)
- 10-指令ng-model-$scope
- The Doors
- pyton3 随机生成 数字和字母的验证码
- Ajax跨域请求保证同一个session的问题
- React.createClass和extends Component的区别
- 导入一个AndroidStudio工程作为一个Library Module
- POJ1696---Space Ant(基础计算几何:极角排序)
- 大文件sql导到本地数据库