Bootstrap

LVS-NAT

1.NAT模式工作原理(在三层)

多目标的DNAT:通过修改请求报文的目标IP地址(同时可能会修改目标端口),至挑选出某RS的RIP地址实现转发
1.RS和DIP应该使用私网地址,且RS的网关要指向DIP
2.请求和响应报文都要经由director转发,极高负载的场景中,director可能会成为系统瓶颈
3.RS可以使用任意OS
4.RS的RIP和Director的DIP必须要在同一IP网络:RS的网关要指向DIP

工作流程:
在这里插入图片描述

(a). 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP
(b). PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链
©. IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发至POSTROUTING链。 此时报文的源IP为CIP,目标IP为RIP
(d). POSTROUTING链通过选路,将数据包发送给Real Server
(e). Real Server比对发现目标为自己的IP,开始构建响应报文发回给Director Server。 此时报文的源IP为RIP,目标IP为CIP
(f). Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。 此时报文的源IP为VIP,目标IP为CIP

NAT模式负载均衡搭建

准备工作:
准备三台虚拟机server1,2,3,并配置好yum源,并且安装好ipvsadm套件
将server1上有两块网卡将其作为lvs调度器,server2,3作为后台服务器
为server1两块网卡分别配置ip 172.25.24.1 和172.25.254.124
server2,3 分别为 172.25.24.2和172.25.24.3
在调度器server1上
1)开启路由机制

[root@server1 ~]# vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1
[root@server1 ~]# sysctl -p

2)加载nat模块

##如果不加载此模块,也可以在第一次访问时成功,但是会在再次访问时出现延迟过长,或访问超时现象
[root@server1 ~]# modprobe iptable_nat

3)加载rule

[root@server1 ~]# ipvsadm -C
[root@server1 ~]# ipvsadm -A -t 172.25.254.124:80 -s rr
[root@server1 ~]# ipvsadm -a -t 172.25.254.124:80 -r 172.25.24.2:80 -m 
[root@server1 ~]# ipvsadm -a -t 172.25.254.124:80 -r 172.25.24.3:80 -m 
[root@server1 ~]# service ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [  OK  ]

在这里插入图片描述

在后台服务器server2,3上
1)添加网关
因为NAT模式下数据包的走向是原路返回,要带着返回的数据包经过调度器会到客户端

[root@server2 ~]# route add default gw 172.25.24.1   ##添加网关
[root@server2 ~]# ping 172.25.254.24   ##查看能否和测试机连通

在这里插入图片描述
2)下载httpd服务,并分别设置默认发布页内容为server2,3

[root@server2 ~]# yum install httpd -y
[root@server2 ~]# vim /var/www/html/index.html 
server2
[root@server2 ~]# /etc/init.d/httpd start

测试:
在测试机172.25.254.24上尝试访问172.25.254.124
在这里插入图片描述

;