一.NAT(网络地址转换)模式
1.NAT模式的基本概念
- 通过网络地址转换(NAT)将一组服务器构成一个高性能的,高可用的虚拟服务器,时NAT技术。
2.NAT模式的原理
-
客户端发送请求到达Director后,Director根据负载均衡算法改写目标地址为后端某个RIP(web服务器池中主机之一)并转发给后端主机,就像NAT一样。
-
当后端服务器处理完请求后,后端主机将响应数据交给Director,并有director改写源地址为VIP后传输给客户端。大多数商品话的IP负载均衡硬件都是使用此方法。
这种模式下:
- RIP和DIP一般处于同一私有网段中。但并非必须,只要它们能通信即可。
- 各Realserver的网关指向DIP这样才能保证响应交给Director。
- NAT模式的最大缺点就是Director负责所有进出数据:不仅处理1客户端发起的请求,还负责将响应传输给客户端。而响应数据一般比请求数据大的多,调度器Director容易出现瓶颈。
- 这种模式配置起来简单。
二.模拟NAT(网络地址转换)
1.实验环境
主机名 | IP |
---|---|
server1 | 172.25.254.1 |
server2 | 172.25.254.2 |
server3 | 172.25.254.3 |
2.配置NAT模式的LVS
(1)在server1上添加一块网卡,给该网卡加上外网ip,激活网卡。
[root@server1 yum.repos.d]# ip addr add 172.25.77.100/24 dev eth1
[root@server1 yum.repos.d]# ip link set up eth1
(2) 在server2,server3上添加网关
[root@server2 html]# route add default gw 172.25.254.1
[root@server2 html]# /etc/init.d/httpd start
[root@server3 html]# route add default gw 172.25.254.1
[root@server3 html]# /etc/init.d/httpd start
(3)在server1上打开内核路由功能
- server1收到客户请求后,得到一个公网的IP,跟目的主机server2,server3不在一个网段
- 如果想要将客户端来的数据包转发给后端服务器,那么必须对这个数据包进行ip转换,再进行数据包转发。
- Linux系统默认禁止数据包转发,需要配置Linux系统的IP转发功能进行转发。
[root@server1 ~]# sysctl -a | grep ip_forward
[root@server1 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@server1 ~]# /etc/init.d/network restart
(4)在server1上添加调度策略
-m NAT模式
[root@server1 ~]# ipvsadm -A -t 172.25.77.100:80 -s rr
[root@server1 ~]# ipvsadm -a -t 172.25.77.100:80 -r 172.25.254.2:80 -m
[root@server1 ~]# ipvsadm -a -t 172.25.77.100:80 -r 172.25.254.3:80 -m
(5)测试
- 在server2和server3的realserver上打开httpd服务,并且在默认发布目录下添加要测试的内容
-
在物理机上
-
在server1上查看轮询状态
注意:模拟时在server1上添加的网卡的IP必须与测试端的IP处于同一网段。