lvs-nat类型负载均衡的实现机制:可以看做多目标IP的DNAT,通过修改请求报文的目标IP为挑选出的RS的RIP和PORT实现转发。
lvs-nat形式实现对两台web服务器的负载均衡实验过程:
1. 先绘制拓扑图
- 分派各主机所扮演的角色并编号,分配IP地址如下:
DIRECTOR:
VIP:172.16.50.1/16
DIP:192.168.12.1/24
CLIENT:
CIP:172.16.254.85/16
REAL_SERVER:RS1与RS2
RIP1:192.168.12.2/24 (GW –> 192.168.12.1)
RIP2:192.168.12.3/24 (GW –> 192.168.12.1)
- 首先通过本地时间服务器==同步三台主机的时间==
# ntpdate 172.16.0.1
- 通过检测VS与RS之间是否能够ping通,验证网络通路建立情况,并==打开VS的核芯转发功能==
# ssyctl net.ipv4.ip_forward=1
- 在REAL_SERVER上部署WEB服务并定义访问页面
【注意】要清空REAL_SERVER的iptables规则,防止影响实验结果
REAL_SERVER_1:
# yum install nginx -y
# mv /usr/share/nginx/html/index.html index.html.bak
# vim index.html
<h1>REAL_SERVER_1:192.168.12.2</h1>
# systemctl start nginx
REAL_SERVER_2:
yum install nginx -y
mv /usr/share/nginx/html/index.html index.html.bak
vim index.html
<h1>REAL_SERVER_2:192.168.12.3</h1>
# systemctl start nginx
- 在VS上配置调度规则,此处设置调度算法为轮巡
# yum install ipvsadm -y
# ipvsadm -A -t 172.16.50.1:80 -s rr
# ipvsadm -a -t 172.16.50.1:80 -r 192.168.12.2 -m
# ipvsadm -a -t 172.16.50.1:80 -r 192.168.12.3 -m
# ipvsadm -nL
- 通过客户端访问该集群的WEB服务,查看结果
# for ((i=1;i<=10;i++)) do curl http://172.16.50.1;done
结果为:
<h1>RS2:192.168.12.3</h1>
<h1>RS1:192.168.12.2</h1>
<h1>RS2:192.168.12.3</h1>
<h1>RS1:192.168.12.2</h1>
<h1>RS2:192.168.12.3</h1>
<h1>RS1:192.168.12.2</h1>
<h1>RS2:192.168.12.3</h1>
<h1>RS1:192.168.12.2</h1>
<h1>RS2:192.168.12.3</h1>
<h1>RS1:192.168.12.2</h1>
证明集群可正常提供web服务,并且后台的两台web服务器以轮巡的方式被调度,实验完成。
lvs-nat实验要点:
(1) RIP与DIP在同一IP网络, RIP的网关要指向DIP;
(2) 支持端口映射;
(3) Director要打开核心转发功能。