简单LVS-DR的实现

###########################>>LVS-DR<<######################

架构简图

                  简单LVS-DR的实现_第1张图片

=============================================================================================

简略配置

DIRECTOR ROUTE 架构!
【client】
 ip

【router】
 ip
 iptables
  \-> iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 172.1.1.254
 ip_forward

 -> testing


【director】

 ip -> (gw)
 ip_forward
 yum install -y ipvsadm
  \-> ipvsadm -A -t 172.1.1.254:80 -s rr
    ipvsadm -a -t 172.1.1.254:80 -r 10.1.1.12:80 -g      ///"g"就是指定了DR架构! 调度算法的简单介绍,见笔者之前的博文!
    ipvsadm -a -t 172.1.1.254:80 -r 10.1.1.13:80 -g
    ipvsadm -a -t 172.1.1.254:80 -r 10.1.1.14:80 -g

【real server】
 ip -> (gw) -> router               ///指向调度器外的路由!
 web service
 virtual ip alias  -> 172.1.1.254/24       --->ifconfig eth0:1 171.1.1.254 netmask 255.255.255.0  [查自红帽官网]
 arptables
 \-> yum install -y arptables_jf

arptables -A IN -d 172.1.1.254 -j DROP
arptables -A OUT -s 172.1.1.254 -j mangle --mangle-ip-s 10.1.1.14

 service arptables_jf save

 ip_forward

红帽官网的DR架构图

简单LVS-DR的实现_第2张图片
================================================================================================================================

Appendix:

除了通过NAT实现虚拟服务器直接路由实现虚拟服务器外,还可以通过IP隧道实现虚拟服务器

关于IP隧道实现虚拟服务器还是做个简单介绍 [摘自LVS官方手册]:

在VS/NAT的集群系统中,请求和响应的数据报文都需要通过负载调度器,当真实服务器的数目在10台和20台之间时,负载调度器将成为整个集群系统的新瓶颈。大多数Internet服务都有这样的特点:请求报文较短而响应报文往往包含大量的数据。如果能将请求和响应分开处理,即在负载调度器中只负责调度请求而响应直接返回给客户,将极大地提高整个集群系统的吞吐量。

 

IP隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。IP隧道技术亦称为IP封装技术( IP encapsulation)。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址。

 

我们利用IP隧道技术将请求报文封装转发给后端服务器,响应报文能从后端服务器直接返回给客户。但在这里,后端服务器有一组而非一个,所以我们不可能静态地建立一一对应的隧道,而是动态地选择一台服务器,将请求报文封装和转发给选出的服务器。这样,我们可以利用IP隧道的原理将一组服务器上的网络服务组成在一个IP地址上的虚拟网络服务。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

IP隧道实现虚拟服务器的实验会进一步研究。

红帽官方文档说明

你可能感兴趣的:(简单LVS-DR的实现)