简单理解 LVS NAT、DR、TUN模式

简单理解 LVS NAT、DR、TUN模式

引言

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。[百度百科]
作用就是为了给后端服务器提供负载均衡的高可用集群,它是集成在linux内核中的功能

NAT 模式

NAT(Network Address Translation,网络地址转换),我们知道linux中能实现NAT功能也可以用iptables,但是iptables无法实现负载均衡多台服务器。
原理简单的说就是它是在prerouting后input前,加了一个拦截器去实现功能。

小白文理解工作流程

  • LVS服务器(Director 调度器),有一个VIP(Virtual IP)DIP(Director IP)
  • 当用户访问VIP时,我们假定为TCP协议80端口(HTTP协议),那么IP头会存放IP,TCP头存放端口。
    这个报文应该是这样的:Src:用户IP Dst:VIP srcPort:随机 DstPort:80
  • Director会将报文修改后传给后端服务器(Real Server),后端服务器IP我们叫RIP,后端服务器监听的是8888端口
    修改后的报文变成了这样: Src:用户IP Dst:RIP srcPort:随机 DstPort:8888
  • Real Server 要经过原路返回响应,因为Real Server 网关设置的是DIP(Director IP),最后响应包会经过Director,数据包又会被替换回去,只是最开始报文的IP头的源地址和目标地址互换,TCP头的端口互换了而已。(因为是响应包)
    Src:VIP Dst:用户IP srcPort:80 DstPort:随机

总结来说,NAT模式下,整个过程都要通过Director,所以Director的性能瓶颈会是问题。

DR模式

Direct Routing 直接路由模式,它和NAT最大的区别在于,返回响应包时,不会经过Director,客户端访问VIPDirector会重新封装一个MAC头,源MACDIP所在接口的MAC目的MACRIP所在MAC,转发给Real Server,响应时Real Server直接返回给客户端。
注意:这样直接响应IP头肯定不会是Real Server自己的IP,因为TCP协议是安全的,无法在IP头部直接换个srcIP去响应别的IP的报文,所以Real Server还绑了个VIP(在lo环回接口,这样不会出现IP冲突问题)和DirectorVIP相同,所以响应时可以直接用VIP响应请求。

TUN模式

Tunneling模式DR模式有点像,但又不同,响应包同样不会经过Director,它通过将CIP访问VIPIP报文再加一层IP头转发给Real Server ,当Real Server 接收到后,会将封装那层IP头去掉,然后使用VIP直接返回响应,它和DR模式的区别在于,DR模式是在2层修改,Tunneling模式是在3层修改,优点在于可以对不同子网中的Real Server进行负载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没事干写博客玩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值