在开始整理之前,需要准备几个知识点:
一:LVS的组成
1.IPVS:运行在内核间netfilter上input链的框架;通过对数据进行检测.满足规则后通过钩子强制转发的功能
2.IPVSADM:运行在用户空间,用于编写IPVS框架规则的工具;
二:netfilter的五链与iptables的功能作用;
************************************************************************************************************************************
vs-nat模式(运行第三层):
1.客户端发送请求,由于目的IP地址为VIP(LVS外网IP地址).所以请求数据包进入调度服务器(LVS);
2.进入服务器后,由于服务器通过netfilter框架来管理网络数据,故数据包会被系统分到netfilter框架的第一个链:PREROUTING;
3.进入PREROUTING链后,判断是否目标IP地址是否为本机,如果是,则转入INPUT链;
此时数据包的目标IP为:DIP,目标MAC为:DIP-MAC,源IP为:CIP,源MAC为:CIP-MAC
4.在INPUT上有LVS的IPVS框架针对数据进行检测,当满足了IPVSADM制定的规则后,通过调度算法,将数据包中的目标IP地址修改为RIP;
此时数据包的目标IP为:RIP,目标MAC为:RIP-MAC,源IP为:CIP,源MAC为:CIP-MAC
5.将修改后的数据包转入POSTROUTING.经由路由转发到真实服务器;
6.真实服务器接到请求后,处理完请求的内容后,由于真实服务器的网关为调度器内网的IP地址,所以真实服务器将响应数据发往调度服务器.
此时数据包的目标IP地址为:CIP,目标MAC为:CIP-MAC,源IP地址为RIP,源IP地址为:RIP,源MAC地址为:RIP-MAC;
7.数据到达调度服务器后,进入PREROUTING链,通过判断发现目标IP不是为本机IP,于是进入FORWORD链---->POSTROUTING链,进入网络,最终到达客户端;
************************************************************************************************************************************
通过以上步骤,可以抽象出搭建过程中所需的步骤:
1.必须安装IPVSADM工具:yum -y install ipvsadm
2.调度服务器必须是双网卡配置,其中一张网卡的IP地址必须为真实服务器的网关;
3.必须开启调度服务器的路由转发功能;
************************************************************************************************************************************
VS-DR模式(运行第二层):
1.当客户端的请求进入服务器所在的网络时,交换机发广播咨询VIP的MAC地址,此时调度服务器响应该ARP请求.交换机缓存该响应到自身ARP表;并转发访问数据;
3.访问数据进入服务器后,由于服务器通过netfilter框架来管理网络数据,故数据包会被系统分到netfilter框架的第一个链:PREROUTING;
4.进入PREROUTING链后,判断是否目标IP地址是否为本机,通过检查发现为本机的VIP.则转入INPUT链;
此时数据包的目标IP为:VIP,目标MAC为:DIP-MAC,源IP为:CIP,源MAC为:CIP-MAC
5.在INPUT上有LVS的IPVS框架针对数据进行检测,当满足了IPVSADM制定的规则后,通过调度算法,发送arp请求,等待RIP的MAC地址;
6.RIP的服务器响应ARP请求,并回应自身的MAC地址;
7.等到得到目标RIP的MAC地址;将修改后的数据包转入POSTROUTING.
此时数据包的目标IP为:VIP,目标MAC为:RIP-MAC,源IP为:CIP,源MAC为:DIP-MAC
8.RS接到请求后,处理完请求的内容后,通过lo接口传送给出口网卡,发送数据回客户端;
此时数据包的目标IP地址为:CIP,目标MAC为:CIP-MAC,源IP地址为VIP,源MAC地址为:VIP-MAC;
************************************************************************************************************************************
总结:DR模式是为了解决NAT调度服务器瓶颈的优化方案,所以在响应客户端数据的时候,不再经过调度服务器,而是由真实服务器直接将数据发送给客户,但是这样存在一个问题,会将真实服务器暴露出去(不安全).所以从DS到RS的网段必须维护同一个VIP(对外的服务器IP地址).即DS跟RS都必须通过回环lo设置VIP;
但是这里存在一个问题:所有的服务器都拥有VIP,当局域网中发起关于该VIP的ARP请求的时候,所有服务器都会响应,故此时需要设置只有调度服务器才能响应客户端的ARP请求;即屏蔽掉真实主机关于该IP的ARP响应;
另外,当数据往客户端发送数据时,必须通过eth0网卡对外发送,但是存在问题,RS不知道客户端的MAC地址,需要发送ARP请求,如果用VIP地址发送请求的话,会更新掉客户端所在的ARP表,导致DS失效.所以需要将ARP请求让出口网卡发出,并得到响应后再更新本身ARP表.最后再封装发送响应数据;(对arp机制不是很了解,这段描述有问题,待完善)
综上所述,DR模式搭建过程中,需要注意的是
1.需要配置ARP抑制;
2.DS跟RS必须在同一个物理网络中,因为是双方是通过数据链路层来进行数据传输的.
************************************************************************************************************************************