一、实验环境和网络拓扑图
本实验需要5台虚拟机,一台客户机,2台lvs调度器,两台web服务器。
客户机:192.168.0.6/24
lvs1:192.168.0.201/24
lvs2:192.168.0.200/24
web1:192.168.0.19/24
web2:192.168.0.127/24
网络拓扑如下:
二、web服务器的配置
2.1.1、安装apache服务和修改网站首页
命令:
web1:
1 yum -y install httpd 2 echo "192.168.0.19" > /var/www/html/index.html 3 systemctl start httpd 4 systemctl enable httpd
web2:
1 yum -y install httpd 2 echo "192.168.0.127" > /var/www/html/index.html 3 systemctl start httpd 4 systemctl enable httpd
2.1.2、伪装VIP地址
当lvs将请求数据包发送给web服务器时,web服务器根据请求将web网页的结果返回给客户端,但是这时数据包的源IP地址是web服务器的IP地址,客户端接收到数据包后,发现回包的IP地址不是自己请求的IP地址,就会把包丢弃掉,这会导致web请求失败,所以需要将web的IP地址伪装成为客户端访问的VIP地址。这里使用web服务器的环回口地址进行伪装。
命令:
cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:0 vim /etc/sysconfig/network-scripts/ifcfg-lo:0 修改网卡名称,修改IP地址,删除UUID号,IP地址的掩码必须是32位,也就是4个255
两个web服务器的配置是一样的。修改虚拟网卡lo:0后,先不急着重启网卡。
为防止VIP和lvs上的VIP相互冲突,需要将web服务器的arp的通告配置进行修改,也就是arp解析时不把自己的IP地址告诉请求者,在请求别人时也不宣告自己是192.168.0.202(VIP地址)。
sysctl -p 执行这条命令以上配置修改生效,执行完这条命令后就可以重启网卡。
重启网卡后你就可以看到虚拟网卡lo:0和VIP地址了。
命令:ifconfig
这里只展示了一台web服务的VIP伪装,另一台的配置和这一台的配置一模一样。就不在介绍了。
三、lvs服务器的配置
3.1.1、安装keepalived
命令:
yum -y install keepalived
3.1.2、修改keepalived配置文件,/etc/keepalived/keepalived.conf
配置完成后,启动keepalived的服务
命令:systemctl start keepalived
重启服务后,keepalived服务会在防火墙中生成一些规则,这些规则会导致实验失败,这里需要清除这些规则或者直接关闭防火墙。
清除规则:iptables -F
关闭防火墙:Systemctl stop firewalld
另外一台lvs的配置和这台一样,不详细介绍。
3.1.3、查看vrrp是否配置成功,查看虚拟ip。也就是VIP。
命令:ip address show
3.1.4、查看lvs配置是否成功
安装ipvsadm软件,用于查看lvs的状态
命令:yum -y install ipvsadm
3.1.5、测试健康检查是否成功
断掉web1的网络,模拟web1网络故障。
3.2、测试负载均衡是否成功
通过客户端,使用curl访问lvs的VIP地址。如:curl 192.168.0.202
就此,整个实验完成。