一、LVS-NAT模式的工作原理
这个是通过网络地址转换的方法来实现调度的。首先调度器(LB)接收到客户的请求数据包时(请求的目的IP为VIP),根据调度算 法决定将请求发送给哪个 后端的真实服务器(RS)。然后调度就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP),这样真实服务器(RS)就 能够接收到客户的请求数据包了。真实服务器响应完请求后,查看默认路由(NAT模式下我们需要把RS的默认路由设置为LB服务器。)把响应后的数据包发送 给LB,LB再接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。
原理图过程简述:
1)客户端请求数据,目标IP为VIP
2)请求数据到达LB服务器,LB根据调度算法将目的地址修改为RIP地址及对应端口(此RIP地址是根据调度算法得出的)并在连接HASH表中记录下这个连接。
3)数据包从LB服务器到达RS服务器webserver,然后webserver进行响应。Webserver的网关必须是LB,然后将数据返回给LB服务器。
4)收到RS的返回后的数据,根据连接HASH表修改源地址VIP&目标地址CIP,及对应端口80.然后数据就从LB出发到达客户端。
5)客户端收到的就只能看到VIP\DIP信息。
NAT模式优缺点:
1、NAT技术将请求的报文和响应的报文都需要通过LB进行地址改写,因此网站访问量比较大的时候LB负载均衡调度器有比较大的瓶颈,一般要求最多之能10-20台节点
2、只需要在LB上配置一个公网IP地址就可以了。
3、每台内部的节点服务器的网关地址必须是调度器LB的内网地址。
4、NAT模式支持对IP地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不一致。
二、LVS-NAT模式下的负载均衡
实验环境:
Load Balance 双网卡:
eth0:172.25.254.1(对外)
eth1:192.168.4.1(对内)
Virtual IP: 172.25.254.1
gateway: 192.168.4.1
server2(RS): 192.168.4.2
server3(RS): 192.168.4.3
1、在server1中:
1.配置网络
ip link set up eth1 #激活eth1网卡
ip addr add 192.168.4.1/24 dev eth1 #添加网络
ip addr #查看网络
2.配置yum仓库
vim /etc/yum.repos.d/rhel-source.repo
添加:
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.4.250/rhel6.5/LoadBalancer
gpgcheck=0
3.打开内部路由功能
sysctl -a | grep ip_forward
sysctl -w net.ipv4.ip_forward=1
4.安装ipvsadm
yum install ipvsadm -y
/etc/init.d/ipvsadm start #开启服务
ipvsadm -C #清空策略
ipvsadm -A -t 172.25.4.1:80 -s rr
ipvsadm -a -t 172.25.4.1:80 -r 192.168.4.2:80 -m #给vip添加rip,>使用NAT模式
ipvsadm -a -t 172.25.4.1:80 -r 192.168.4.3:80 -m
/etc/init.d/ipvsadm save #保存策略
ipvsadm -ln #查看策略
ipvsadm -lnc #查看ip调度情况
2、在server2中:
1.配置网关
route add default gw 192.168.4.1 #NAT工作路径源路经返回,只需要指定网关即可
route -n #查看网关
2.安装apache
yum install httpd -y
vim /var/www/html/index.html
<h1>server2</h1>
/etc/init.d/httpd start
3、在server3中:
1.配置网关
route add default gw 192.168.4.1 #NAT工作路径源路经返回,只需要指定网关即可
route -n #查看网关
2.安装apache
yum install httpd -y
vim /var/www/html/index.html
<h1>server3</h1>
/etc/init.d/httpd start
4、测试:
注意:此时物理机ip网段必须与eth0在同一网段,且不能于RS在同一网段,否则会不经过网关直接访问RS