> 其它学习 > 网络基础 >

Linux中LVS-NAT模型解析

LVS是LB的一种解决方案,常见的架构模式有NAT、DR、TUN、FULLNAT。
 
LVS-NAT模型拓扑图:
 
 
下面是NAT架构解决方案示意图:
 
 
 
 
 
从客户端发起一个请求到服务器端响应的过程大概是这样的:
 
1.首先客户端会访问服务器的域名,经过层层路由将请求报文发送给Director,即LVS的前端调度器(这个时候IP报文的源地址是CIP,目标地址是VIP)
 
2.Director发现客户端请求的是一组LVS服务(根据请求的IP地址加端口号判断)(这个时候IP报文的源地址是CIP,目标地址是VIP)
 
3.调度器通过事先确定好的调度方案,将客户端请求交给某一个后台物理机(这个时候IP报文的源地址是CIP,目标地址是RIP)
 
4.物理机根据请求报文,来封装响应报文,将其交给Director(这个时候IP报文的源地址是RIP,目标地址是CIP)
 
5.Director在接收到物理机的响应报文后,将该报文回应给CIP(此时IP报文源地址是VIP,目标地址是CIP)
 
所以,NAT架构的LVS具有以下特性:
 
1.RS应该使用私有地址
 
2.RS的网关必须指向DIP(即调度器的地址)
 
3.RIP和DIP必须在同一网段内
 
4.请求和响应报文都得经过Director,在高负载场景中,Director很可能成为系统性能瓶颈
 
5.支持端口映射
 
6.RS可以使用任意支持集群服务的OS.
 
 
 
综上所述,NAT模型虽然具有简单、易实现、成本较低等优点,但是由于请求和响应报文都需要经过调度器,因此对调度器的要求特别高,所以调度器是提高系统性能的瓶颈。一个调度器后端的物理机最多在10台左右已经到了极限,因此企业中更多使用的是下一种模型——DR模型。这种模型需要在物理机前端再放置一个路由,是物理端可以直接响应报文给CIP,这样调度器的压力就大大降低了,因此DR模型中,调度器一般调用后端100台左右的物理机是没有太大问题的。但是这样就有问题了,CIP请求的地址是VIP,而响应的地址确实RIP,这样怎么能够被CIP接收呢?


 
(责任编辑:IT)