前言
地址转换,简称 NAT 模式,类似于防火墙的私有网络结构,负载调度器作为服务器节点的网关,既作为客户机的访问入口,也作为各节点回应客户机的访问出口
一、拓补图
LVS调度器有两张网卡,分别连接内外网,如拓扑图所示
对于LVS负载调度器来说,需使用 iptables 为出站响应配置 SNAT 转发规则,以便节点服务器能够访问Internet。
所有节点服务器默认网关设为 LVS 负载调度器的内网地址(192.168.3.3)
二、案例环境
- 客户端 win10:192.168.100.10;网关:192.168.100.100(vm1)
- LVS:ens33:192.168.3.3(VM8 NAT模式);
ens37:192.168.100.100(VM1 仅主机模式)- web1:192.168.3.4 ;网关:192.168.3.3
- web2:192.168.3.5 ;网关:192.168.3.3
-
本机VM1网络设置
-
客户端网络设置
三、配置负载调度器LVS
ntpdate aliyun.com #同步阿里云时间
systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld.service
setenforce 0
ifconfig ens37 192.168.100.100/24 #临时添加虚拟网卡(先得手动添加网卡)
------------------------------------------------------------------------------------------------
#配置SNAT转发规则
[root@lvs ~]#vim /etc/sysctl.conf #调整/proc相应参数
net.ipv4.ip_forward=1
sysctl -p #刷新生效
或
echo '1' > /proc/sys/net/ipv4/ip_forward
[root@lvs ~]#systemctl start firewalld #开启防火墙
[root@lvs ~]#iptables -F #全部清空规则
[root@lvs ~]#iptables -t nat -F #清空nat表内的规则
[root@lvs ~]# iptables -t nat -nL #查看
# http服务器的流量通过ens37接口,把192.168.8.0网段通过LVS映射192.168.100.100
[root@lvs ~]#iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o ens37 -j SNAT --to-source 192.168.100.100
-------------------------------------------------------------------------------------------------
#加载LVS内核模块
[root@lvs ~]#ll /proc/nat #查询没有ip_vs模块
[root@lvs ~]#modprobe ip_vs #手动加载ip_vs模块
[root@lvs ~]#cat /proc/net/ip_vs #查看ip_vs版本信息
-------------------------------------------------------------------------------------------------
#安装ipvsadm管理工具
[root@lvs ~]#yum install -y ipvsadm
#启动服务前必须保存负载分配策略,否则会报错
ipvsadm-save > /etc/sysconfig/ipvsadm
或
ipvsadm --save > /etc/sysconfig/ipvsadm
或
touch /etc/sysconfig/ipvsadm
[root@lvs ~]#systemctl start ipvsadm #开启管理工具
-------------------------------------------------------------------------------------------------
#配置负载分配策略
ipvsadm -C #清除原有策略
ipvsadm -A -t 192.168.100.100:80 -s rr #指定分流算法是rr轮询
ipvsadm -a -t 192.168.100.100:80 -r 192.168.8.11:80 -m -w 1 #-m模式 -w权重
ipvsadm -a -t 192.168.100.100:80 -r 192.168.8.13:80 -m -w 1
ipvsadm #启动策略
ipvsadm -ln #查看节点状态,Masq代表 NAT模式
ipvsadm-save > /etc/sysconfig/ipvsadm #保存策略
#-A 添加虚拟服务器
#-s 指定负载调度算法 (轮询:rr、加权轮询: wrr、最少连接: lc、加权最少连接: wlc )
#-a 表示添加真实服务器 (后端节点服务器)
#-t 指定 VIP地址及 TCP端口
#-m 表示使用 NAT群集模式
#-w 设置权重 (权重为 0 时表示暂停节点)
四、Web 节点服务器配置
所有的节点服务器均使用相同的配置,包括httpd服务端口、网站文档的内容等。这里在案例中使用了不同的页面,以便测试负载均衡的效果。
- Web服务器1
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
yum install -y httpd
systemctl start httpd.service
systemctl enable httpd.service
[root@wb1]#cd /var/www/html/
[root@wb1]#vim index.html
this is test 1
[root@wb1]#systemctl restart httpd.service
- Web服务器2
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
yum install -y httpd
systemctl start httpd.service
systemctl enable httpd.service
[root@wb2]#cd /var/www/html/
[root@wb2]#vim index.html
this is test 2
[root@wb2]#systemctl restart httpd.service
五、测试LVS 群集
打开 win10使用浏览器访问192.168.100.100,将看到由真实服务器提供的网页内容,如果各节点的网页不同,则不同客户机看到的网页可能也不同(可多次刷新查看效果)
总结
NAT模式的群集采用单一出入口,一个公网IP地址;服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式