1、特点
调度器在整个lvs集群当中是最重要的,在nat模式下,既负责接收请求,同时根据负载均衡的算法转发流量,响应发送给客户端。
DR模式下:调度器依然负责接收请求,同时页根据负载均衡算法转发流量到RS,响应直接由RS响应给客户端。
直接路由:Direct Routing,是一种二层转发模式,二层转发的是数据帧,根据源mac地址和目的mac地址进行转发。不会修改数据包的源ip和目的ip,根据数据包的mac地址进行转发。
在DR模式下,lvs也是维护一个虚拟的ip地址,所有的请求都是发送到vip。既然是走二层转发,当客户端的请求达到调度器之后,根据负载均衡的算法选择一个RS,修改vip服务器的目的mac变成RS的mac地址,RS处理完请求之后,根据报文当中客户端的源mac地址直接把响应发送到客户端即可,不需要走调度器了。
2、问题
1、调度器配置了vip,RS上也配置了vip
vip地址冲突,调度器和RS都在同一网段,造成ARP通信的紊乱。因为是整个局域网广播,所有的设备都收到了,怎么把lo'这个回环的响应屏蔽掉,只有本机的物理ip地址响应
修改内核参数:arp_ignore=1
系统的物理ip地址才会响应请求,lo不会响应ARP请求
2、返回报文时,vip地址还在,怎么样能让客户端来接收到响应
设置arp_announce=2,系统不使用ip数据包的源地址来响应ARP请求,直接发送物理接口的ip地址
3、DR模式的实现
nginx1 RS1 192.168.230.60
nginx2 RS2 192.168.230.70
vip:192.168.230.100
test1 调度器 192.168.230.20
test2 客户端 192.168.230.30
实验步骤:
关闭防火墙和安全机制
加载调度器的内核
modprobe ip_vs
安装ipvsadm
yum -y install ipvsadm*
创建vip地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
开启虚拟网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33
ifconfig查看
修改调度器的响应参数
[root@localhost network-scripts]# vim /etc/sysctl.conf
立即生效
[root@localhost network-scripts]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost network-scripts]#
分配策略,先清空
[root@localhost opt]# ipvsadm -C
先将空的ipvs保存
[root@localhost opt]# ipvsadm-save /etc/sysconfig/ipvsadm
指定vip地址,算法为rr
[root@localhost opt]# ipvsadm -A -t 192.168.230.100:80 -s rr
添加真实服务器,使用DR模式
[root@localhost opt]# ipvsadm -a -t 192.168.230.100:80 -r 192.168.230.60:80 -g
[root@localhost opt]# ipvsadm -a -t 192.168.230.100:80 -r 192.168.230.70:80 -g
保存并重启
[root@localhost opt]# ipvsadm-save /etc/sysconfig/ipvsadm
-A -t localhost.localdomain:http -s rr
-a -t localhost.localdomain:http -r 192.168.230.60:http -g -w 1
-a -t localhost.localdomain:http -r 192.168.230.70:http -g -w 1[root@localhost opt]# systemctl restart ipvsadm
查看
编辑nginx1/2的index.html,重启nginx
访问正常
4、lvs的三种工作模式
NAT | DR | TUN | |
优点 | 地址转换,配置简单 | 性能最好 | WAN,可以实现较远距离的数据包转送 |
缺点 | 性能瓶颈 | 不支持跨网段 | 专用通道,需要开通vpn(花钱 |
RS的要求 | 无限制 | 必须要禁止非物理接口的ARP响应 | 要支持隧道模式 |
RS的数量 | 10-20台 | 100台 | 100台 |
修改vip的轮询算法:
ipvsadm -E -t 192.168.230.100:80 -s wrr
修改权重:
ipvsadm -e -t 192.168.230.100:80 -r 192.168.230.60:80 -w 3