LVS模式二:NAT(Network Address Translation)网络地址转换模式
LVS-NAT模式下的系统结构图
工作原理:
这个是通过网络地址转换的方法来实现调度的,首先调度器(LB)接受到客户的请求数据包时(请求的目的ip为vip),根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后调度就把客户端发送的请求数据包的的目标ip地址及端口改成后端真实服务器的ip地址(RIP),这样真实服务器(RS)就能够接收到客户的请求数据包了。真实服务器响应完请求后,查看默认路由(NAT模式下我们需要把RS的默认路由设置改为LB服务器)把响应后的数据包发送给LB,LB再接收到响应包后,把包的源地址改为虚拟地址(vip)然后发送给客户端
二、LVS-NAT模式下的负载均衡
实验环境:
LoadBalance 双网卡:
eth0 172.25.45.1(对外)
eth1 172.25.254.1(对内)
virtual IP :172.25.45.1
gateway :172.25.254.1
server2(RS): 172.25.254.2
server3(RS): 172.25.254.3
1、在server1中:
1)配置网络
ip link set up eth1 ##**eth1网卡
ip addr add 172.25.254.1/24 dev eth1 ##添加网络
ip addr ##查看网络
2)配置域yum仓库
vim /etc/yum.repos.d/rhel-source.repo
添加:
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.45.250/rhel6.5/LoadBalancer
gpgcheck=0
yum clean all
yum repolist
3)打开打开ip转换功能
sysctl -a | grep ip_forward
sysctl -w net.ipv4.ip_forward=1
这是为什么呢:
sever1收到客户端请求后,得到一个公网的ip,跟目的主机server2和server3不在一个网段,所以如果想要将客户端来的数据包转发给后端服务器,那么必须对这个数据包进行ip转换,再进行数据包转发。出于安全考虑,Linux系统默认是禁止数据包转发的。配置Linux系统的ip转发功能,首先保证硬件连通,然后打开系统的转发功能.
4)安装ipvsadm
yum install ipvsadm -y
/etc/init.d/ipvsadm start ##开启服务
ipvsadm -C ##清空策略
ipvsadm -A -t 172.25.45.1:80 -s rr
ipvsadm -a -t 172.25.45.1:80 -r 172.25.254.2:80 -m ##给vip添加rip,>使用NAT模式
ipvsadm -a -t 172.25.45.1:80 -r 172.25.254.3:80 -m
/etc/init.d/ipvsadm save ##保存策略
ipvsadm -ln ##查看策略
ipvsadm -lnc ##查看ip调度情况
2、在server2中:
1)、配置网关
route add default gw 172.25.254.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 操作和server2一样
4、测试:
注意:此时物理机ip网段必须与eth0在同一网段,且不能与RS在同一网段,否则会不经过网关直接访问RS
在物理机中执行 for i in {1..10};do curl 172.25.45.1;done 出现轮询则配置生效
调度器处的情况: