一、实验拓扑图
LVS-DR模式采的IP地址全部为外网IP。
用户请求VIP,会由LVS服务器响应,分配至Real-Server服务器,真实服务器处理完后直接返回给用户,不再通过LVS服务器。
二、搭建环境
OS:Centos 7.5
IP:LVS-server IP:192.168.1.234
VIP:192.168.1.33
Real-Server1 IP: 192.168.1.232 安装web服务器 准备测试站点内容
Real-Server2 IP: 192.168.1.233 安装web服务器 准备测试站点内容
Client:xp/window7/8都可以,只要能ping通 192.168.1.*
三、配置流程
3.1 LVS-server配置
1、同步时间
[root@LVS-server ~]# ntpdate ntp.aliyun.com
2、设置VIP地址
[root@LVS-server ~]#ifconfig lo:0 192.168.1.33 netmask 255.255.255.255
[root@LVS-server ~]#route add -host 192.168.1.33 dev lo:0
3、安装Ipvsadm软件
[root@LVS-server ~]#yum -y install ipvsadm*
4、lvs配置
[root@LVS-server ~]#ipvsadm -C
[root@LVS-server ~]#ipvsadm -A -t 192.168.1.33:80 -s rr
[root@LVS-server ~]#ipvsadm -a -t 192.168.1.33:80 -r 192.168.1.232 -g
[root@LVS-server ~]#ipvsadm -a -t 192.168.1.33:80 -r 192.168.1.233 -g
[root@LVS-server ~]#ipvsadm -Ln
3.2 Real-Server1配置
1、同步时间
[root@Real-server1 ~]# ntpdate ntp.aliyun.com
2、Real-server1上安装nginx服务;
[root@Real-server1 ~]# yum -y install nginx
3、编写一个静态页面
[root@Real-server1 ~]# echo "Real-server1 192.168.1.232" >/usr/share/nginx/html/lvs.html
4、重启nginx服务
Systemctl restart nginx
Systemctl enable nginx
5、检查80端口是否被监听
[root@Real-server1 ~]# ss -tnl
6、配置网络并添加路由
[root@Real-server1 ~]# ifconfig lo:0 192.168.1.33 netmask 255.255.255.255
[root@Real-server1 ~]# route add -host 192.168.1.33 dev lo:0
7、关闭通告信息
[root@Real-server1 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@Real-server1 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@Real-server1 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@Real-server1 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
3.3 Real-Server2配置
1、同步时间
[root@Real-server2 ~]# ntpdate ntp.aliyun.com
2、Real-server2上安装nginx服务;
[root@Real-server2 ~]# yum -y install nginx
3、编写一个静态页面
[root@Real-server2 ~]# echo "Real-server2 192.168.1.233" >/usr/share/nginx/html/lvs.html
4、检查80端口是否被监听
[root@Real-server2 ~]# ss -tnl
5、重启nginx服务
[root@Real-server2 ~]# systemctl restart nginx
[root@Real-server2 ~]# systemctl enable nginx
6、配置网络并添加路由
[root@Real-server2 ~]# ifconfig lo:0 192.168.1.33 netmask 255.255.255.255
[root@Real-server2 ~]# route add -host 192.168.1.33 dev lo:0
7、关闭通告信息
[root@Real-server2 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@Real-server2 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@Real-server2 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@Real-server2 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
客户端测试
现在通过Client直接访问 LVS的VIP地址http://192.168.1.33/lvs.html正常的话即可访问到准备的测试站点。
使用脚本测试看是否为轮询状态。
[root@Client ~]# for i in{1..20};do curl http://192.168.1.33/lvs.html;done
配置LVS采用的是轮循模式。第一次是访问Real-Server1,刷新后是访问Real-Server2,再刷新后访问Real-Server1