3.LVS由用户空间的ipvsadm和内核空间的IPVS组成,ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作,IPVS工作在INPUT链上,当数据包到达INPUT链时,首先会被IPVS检查,如果数据包里面的目的地址及端口没有在规则里面,那么这条数据包将被放行至用户空间。 4.如果数据包里面的目的地址及端口在规则里面,那么这条数据报文将被修改目的地址为事先定义好的后端服务器,并送往POSTROUTING链。 5.最后经由POSTROUTING链发往后端服务器。 LVS负载均衡NAT工作流程
(a). 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP (b). PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链 (c). IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发至POSTROUTING链。 此时报文的源IP为CIP,目标IP为RIP (d). POSTROUTING链通过选路,将数据包发送给Real Server (e). Real Server比对发现目标为自己的IP,开始构建响应报文发回给Director Server。 此时报文的源IP为RIP,目标IP为CIP (f). Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。 此时报文的源IP为VIP,目标IP为CIP 实验:负载均衡集群企业级应用实战-LVS-nat模式 实验环境: 一台DR负载均衡器,两块网卡,一块桥接172.17.253.132,一块仅主机192.168.10.200 两台后端服务器,一块网卡仅主机192.168.10.188和192.168.10.189,实现过基于lnmp的电子商务网站的服务器 一.在DR负载均衡器配置 1.yum install ipvsadm -y 2.grep -i -C 10 "ipvs" /boot/config-VERSION-RELEASE.x86_64,#查看内核是否支持ipvs模块 3.iptables -F ;setenf orce 0清空防火墙策略,关闭selinux策略 4.ipvsadm -A -t 172.17.253.132:80 -s wrr #开启一个基于80端口的虚拟web服务,调度算法为wrr 5.ipvsadm -a -t 172.17.253.132:80 -r 192.168.10.188:80 -m -w1 #配置web服务后端服务器为nat工作方式,权重为1 ipvsadm -a -t 172.17.253.132:80 -r 192.168.10.189:80 -m -w1 6.修改内核配置,开启路由转发 vim /etc/sysctl.conf net.ipv4.ip_forward=1 sysctl -p 使修改的内和配置参数生效 二.在real server配置 iptables -F ;setenforce 0清空防火墙策略,关闭selinux策略 配置网关指向192.168.10.200,开启nginx,php-fpm,mariadb服务 route add defult gw 192.168.10.200 三,验证 在浏览器上访问172.17.253.132 LVS负载均衡DR工作模式 Virtual Server via Direct Routing(VS-DR):用直接路由技术实现虚拟服务器。当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此方法,控制管理的计算机接收到请求包时直接送到参与集群的节点。直接路由模式比较特别,很难说和什么方面相似,前种模式基本上都是工作在网络层上(三层),而直接路由模式则应该是工作在数据链路层上(二层)。 工作原理 :DR和REAL SERVER都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有REAL SERVER对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的 REAL SERVER,把目的MAC地址改为REAL SERVER的MAC并发给这台REAL SERVER。这时REAL SERVER收到这个数据包,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。由于DR要对二层包头进行改换,所以DR和REAL SERVER之间必须在一个广播域,也可以简单的理解为在同一台交换机上。
数据包到后端服务器时经过负载均衡器,回来的时候,直接发送到客户端,不经过负载均衡器,大大提高了效率。
LVS负载均衡DR工作流程 (a) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP (b) PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链 (责任编辑:admin) |