实验环境
在VMWare上安装了3台centos7的虚拟机。第一台名为lvs作为负载均衡服务器,其余两台分别为server1和server2,作为真正的服务器。
首先在三台主机中分别输入ifconfig命令查看其ip地址。
lvs的ip地址为192.168.247.130。
server1的ip地址为192.168.247.131。
server2的ip地址为192.168.247.132。
实验过程
1、对lvs配置子接口,该子接口作为lvs的VIP地址,设置其ip地址为192.168.247.100/24
配置命令为:
ifconfig ens33:8 192.168.247.100/24
ens33:8的8可以任意写。
2、然后修改server1和server2的内核
首先得解释arp_ignore和arp_announce的含义。
arp_ignore: 定义接收到ARP请求时的响应级别;
0:只要本地配置的有相应地址,就给予响应;
1:仅在请求的目标(MAC)地址配置请求到达的接口上的时候,才给予响应;
arp_announce:定义将自己地址向外通告时的通告级别;
0:将本地任何接口上的任何地址向外通告;
1:试图仅向目标网络通告与其网络匹配的地址;
2:仅向与本地接口上地址匹配的网络进行通告;
将arp_ignore设置为1,arp_announce设置为2,目的是为了实现VIP地址对外隐藏,对内可见。
配置命令如下:
echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce
3、为server1和server2设置隐藏的VIP,其地址为192.168.247.100,子网掩码为255.255.255.255
配置命令如下:
ifconfig lo:3 192.168.247.100 netmask 255.255.255.255
VIP配置在环回接口上目的也是为了对外隐藏,对内可见。
4、为server1和server2下载httpd应用软件,提供服务。
yum install httpd -y
启动httpd服务命令:
systemctl start httpd
然后在不同的server中修改index.html,以示区分。
server1-index.html: 192.168.247.131
server2-index.html: 192.168.247.132
5、配置lvs服务
首先安装ipvsadm
yum install ipvsadm
配置客户端访问服务端的入口:
ipvsadm -A -t 192.168.247.100:80 -s rr
参数 -A表示的是添加客户端到服务器的入口,-t表示的TCP协议,-s rr表示的是采用轮询调度算法。
然后配置2个服务端到客户端的出口:
ipvsadm -a -t 192.168.247.100:80 -r 192.168.247.131 -g -w 1
ipvsadm -a -t 192.168.247.100:80 -r 192.168.247.132 -g -w 1
参数 -a表示的是添加服务端到虚拟服务器的出口,-r代表的是real server的地址,-g代表的是DR模式,-w为服务器的权重。
输入如下命令查看具体的配置信息:
ipvsadm -ln
6、访问验证
在windows上的浏览器中输入192.168.247.100:80,出现如下页面:
如果访问失败,尝试着关闭防火墙:
systemctl stop firewalld.service
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。