架构设计:负载均衡层设计方案(4)——LVS原理

  • header.Source Address:这个当然就是IP数据报的来源地址咯。

  • header. Destination Address:这个当然就是IP数据报的目标地址咯。

  • header.checksum:首部校验值。这个值校验IP数据报首部的传输完整性(注意校验不包括IP数据报的数据部分)。这就意味着NAT设备重写这个数据报的来源或者目标IP后,校验值要重新进行计算。Source Address、Destination Address、Checksum是各种NAT设备主要的改写属性。而且很多时候NAT设备只改写这三个值就可以实现IP数据报的转发(当然TCP报文中的端口也会被改写,以便在端口映射的情况下进行端口转换)。

2.3、传输层TCP报文


上文已经说过,TCP的报文信息是装在到IP报文的数据部分的,当成网络上进行传输的数据从Srouce Address传到Destination Address中。下面是TCP报文的信息:

这里写图片描述

  • 头.源端口号:TCP信息来源的端口号。

  • 头.目的端口号:TCP信息数据的目标端口。

  • 头.状态位(URG/ACK/PSH/RST/SYN/FIN):如果您已经看到我之前写的《标准Web系统的架构分层》(http://blog.csdn.net/yinwenjie/article/details/46480485)这边文章的第3.2小节,那么您对ACK、SYN、FIN这三个标记肯定不陌生,因为TCP的三次握手和连接中断就要用到这三个标记,需要注意SYN SEQ和ACK SEQ就是TCP数据报的确认号;另外解释一下PSH和RST两个状态标记。应用层的TCP数据报有一个缓存区,也就是说多个正确的TCP数据报会首先放到这个缓存区,达到一定条件后,再推送给上层的应用层协议,例如http。PSH为1的时候,表示不需要再等到后续的TCP数据报文了,直接将目前接收方缓存中的tcp数据报进行数据段组合后推送给上层协议,并且清空缓存区;RST表示复位,您可以理解成放弃当前缓存区的所有未发送给上层协议的TCP数据报文,一般这种情况都是TCP报文传输出现了问题。

  • 头.TCP校验和:TCP报文的校验和比起IP头校验要稍微复杂点。TCP校验的输入包括三部分:TCP伪首部、TCP首部长度和TCP数据部长度。TCP伪首部是一个虚拟概念,它包括承载TCP数据报文的IP报文的一部分,和TCP首部的一部分数据(源IP、目标IP、IP报文中的protocoly、以及TCP报文的报文头长度和TCP报文的数据长度)。

从上面的描述可以看出,一旦IP报文中的源IP和目标IP发生改变了,TCP报文校验信息就会改变。

3、LVS的三种工作方式


3.1、LVS-NAT工作方式


NAT方式是一种由LVS Master服务节点收到数据报,然后转给下层的Real Server节点,当Real Server处理完成后回发给LVS Master节点然后又由LVS Master节点转发出去的工作方式。LVS的管理程序IPVSADMIN负责绑定转发规则,并完成IP数据报文和TCP数据报文中属性的重写。请用几分钟时间仔细看看下图(为了简单,图里面只画了一个Real Server。如果看不清楚,可点击右键“查看原图”):

这里写图片描述

  • 1、在正式的机房环境中,一般有两种方式为一个机器分配外网地址:在核心交换机上直接绑定外网地址到主机网卡的,这样使用ifconfig命令看到的IP地址为外网地址;在核心交换机上使用映射规则,将一个外网地址映射到内网地址,这样使用ifconfig命令看到的IP地址为内网地址。上图中我们采用的是后一种映射规则。如果使用前一种外网IP的分配规则,也不会影响LVS NAT的工作方式,因为这个IP被限制在LVS NAT工作以外。只不过eth1的IP从192.168.100.10换成100.64.92.199而已。

  • 2、我们用中文描述一下转换规则:凡是发送到“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”。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值