Lvs-nat模式
环境配置:
四台主机;Lvs 双网卡(net+仅主机);rs1和rs2仅主机当私网;客户端 nat 当公网;
配置ip:
客户端nat网卡:172.25.254.110;lvs调度器nat网卡:172.25.254.200,仅主机网卡:192.168.0.100
rs1仅主机网卡:192.168.0.10 rs2仅主机网卡:192.168.0.10
安装软件 lvs安装yum install ipvsadm -y;rs1和rs2安装http 所有主机关闭防火墙
在lvs调度器中echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/ip_forward.conf
实现全网通
在lvs中添加调度策略
测试结果
for N in {1..6};do curl 172.25.254.100;done
RS2 172.25.254.20
RS1 172.25.254.10
RS2 172.25.254.20
RS1 172.25.254.10
RS2 172.25.254.20
RS1 172.25.254.10
Lvs-DR模式
环境配置:
客户机nat模式 ;路由器双网卡nat和仅主机 ;lvs机仅主机;RS1和RS2仅主机
下载需要的软件http、ipvsadm配置ip地址客户端配置公网ip,lvs、rs1和rs2仅主机配置私网ip 配置网关 在路由器的防火墙上进行地址伪装 firewall-cmd –add-masquerade
其他主机关闭防火墙
在lvs、rs1、rs2上配置lo环回
[root@RS1 ~]# vim /etc/NetworkManager/system-connections/lo.nmconnection
[connection]
id=lo
type=loopback
interface-name=lo
[ipv4]
method=manual
address1=127.0.0.1/8
address2=192.168.0.220/32
在RS1和RS2中解决响应问题
echo net.ipv4.conf.all.arp_ignore=1 >> /etc/sysctl.conf
echo net.ipv4.conf.all.arp_announce=2 >> /etc/sysctl.conf
echo net.ipv4.conf.lo.arp_ignore=1 >> /etc/sysctl.conf
echo net.ipv4.conf.lo.arp_announce=2 >> /etc/sysctl.conf
在lvs中配置策略
测试结果
防火墙标签解决轮询错误
轮询规则中可能会遇到的错误
以http和https为例,当我们在RS中同时开放80和443端口,那么默认控制是分开轮询的,这样我们就出现了一个轮询错乱的问题当我第一次访问80被轮询到RS1后下次访问443仍然可能会被轮询到RS1上
问题呈现
在RS1和RS2中安装mod_ssl并重启apache
]# yum install mod_ssl -y
]# systemctl restart httpd
在lvs中设置调度,因为我们要调度80和443两个端口所以我们需要设定两组策略
]# ipvsadm -C
[root@lvs ~]# ipvsadm -A -t 192.168.0.220:80 -s rr
[root@lvs ~]# ipvsadm -A -t 192.168.0.220:443 -s rr
[root@lvs ~]# ipvsadm -a -t 192.168.0.220:80 -r 192.168.0.10:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.0.220:80 -r 192.168.0.20:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.0.220:443 -r 192.168.0.10:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.0.220:443 -r 192.168.0.20:80 -g
curl http://192.168.0.220;curl -k https://192.168.0.220
192.168.0.10
192.168.0.10
当访问vip时两次调度都到了101
防火墙标记解决轮询调度问题
FWM:FireWall Mark
MARK target 可用于给特定的报文打标记,--set-mark value
其中:value 可为0xffff格式,表示十六进制数字借助于防火墙标记来分类报文,而后基于标记定义集群服
务:可将多个不同的应用使用同一个集群服务进行调度
实现方法:
在lvs主机打标记
设定调度规则
测试结果