数据包流向分析:
(1)客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。
(2)Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输。
(3)内核空间判断数据包的目标IP是本机VIP,此时IPVS(IP虚拟服务器)比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源 MAC 地址为 Director Server 的 MAC地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源 IP 地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。
(4)到达 Real Server 的请求报文的 MAC 地址是自身的 MAC 地址,就接收此报文。数据包重新封装报文(源 IP 地址为 VIP,目标 IP 为 CIP),将响应报文通过 lo 接口传送给物理网卡然后向外发出。
(5)Real Server 直接将响应报文传送到客户端。
实验:
准备四台虚拟机:
192.168.169.10 做网关服务器
192.168.169.20和192.168.169.30 做nginx
192.168.169.40 做nfs共享服务器
①先配置共享服务器
创建共享目录和文件:
然后配置共享地址池和权限:
②配置节点服务器:
首先安装nginx
其次永久挂载共享服务器:
然后进行回环网卡上vip的配置:配置好了重启network
然后进行路由设定:
最后配置内核参数:
ignore是让系统只对物理网卡的ip进行arp请求报文的响应;
announce是让系统使用物理网卡的ip做arp请求报文的源ip,不用数据包的源ip;
③配置负载均衡器:
首先关闭防火墙,安装ip_vs内核模块:
配置物理网卡的vip:
内核参数优化:
主要对转发功能的关闭和icmp重定向的关闭:
启动ipvsadm,开始配置负载策略:
测试: