目录
1.数据包流向
1.客户端发送请求到负载均衡器 请求的数据报文到达内核空间
2.负载均衡器和后端服务器在同一个网络中 数据通过二层数据链路层来传输
3.内核空间判断数据包的目标IP是本机VIP 此时IPVS比对数据包请求的服务是否是集群服务 是集群服务就重新封装数据包 修改源 MAC 地址为负载均衡器的MAC地址 修改目标MAC地址为后端服务器的MAC地址 源IP地址与目标IP地址没有改变 然后将数据包发送给后端服务器
4.到达后端服务器的请求报文的MAC地址是自身的MAC地址 就接收此报文 数据包重新封装报文 将响应报文通过lo接口传送给物理网卡然后向外发出
5.后端服务器直接将响应报文传送到客户端
2.通信遇到的问题
1.ARP广播 导致所有节点服务器和调度器的VIP响应
解决方法 arp_ingore=1
防止网关路由发送ARP广播时调度器和节点服务器都经行响应 导致ARP缓存混乱 不对非本地物理网卡IP的ARP请求进行响应 lo:0
2.VIP的调度器失效
解决方法 arp_annouce=2
系统不使用响应数据包的源IP来作为本机进行ARP报文的源IP地址 而使用发送报文的物理网卡IP地址作为ARP请求报文的源IP地址 防止网关路由器接收到的源IP为VIP的请求报文后 更新ARP缓存表 导致外网在发送请求时数据包到不了调度器
3.案例
1. 配置负载调度器
创建一个虚拟网卡
查看创建是否成功
vim /etc/sysctl.conf 调整proc响应参数
sysctl -p
配置负载分配策略
2.部署共享存储
vim /etc/exports
3. 配置节点服务器(这里是两台)
下载nfs和rpcbind yum -y install nfs-utils rpcbind(先安装RPC后NFS)
配置虚拟IP
调整 proc 响应参数
###另一台也一样
第一台挂载 输入网页内容
第二台挂载 输入网页内容
用浏览器检查