LVS_NAT实现负载均衡

简介: 

        基于NAT机制实现。当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址,同时将报文的目标端口也改成选定的realserver的相应端口,最后将报文请求发送到指定的realserver;在服务器端得到数据后,realserver将数据返给director,而director将报文的源地址和源端口改成VIP和相应端口,然后把数据发送给用户,完成整个负载调度过程。  

Client->VS(两个网卡,一个內网,一个交换机与RS互通,DNAT目标地址转换)->RS(SNAT源地址转换)->VS->Client

特点:

1. LVS-DR模型的特性

特点:保证前端路由将目标地址为VIP报文统统发给负载均衡器,而不是真实服务器

真实服务器可以使用私有地址,也可以是公网地址,如果使用公网地址,此时可以通过互联网对真实服务器IP进行直接访问

真实服务器跟负载均衡器必须在同一个局域网中

所有的请求报文经由负载均衡器,但响应报文必须不能进过负载均衡器

不支持地址转换,也不支持端口映射

真实服务器可以是大多数常见的操作系统

真实服务器的网关绝不允许指向负载均衡IP(因为我们不允许他经过director)

真实服务器上的lo接口配置VIP的IP地址

缺陷:真实服务器和负载均衡器必须在同一机房中

 

2.LVS-NAT模型的特性

真实服务器应该使用私有地址,且网关必须指向负载均衡IP

负载均衡IP和真实服务器IP必须在同一个网段内

请求和响应报文都需要经过负载均衡器,高负载场景中,负载均衡器容易成为性能瓶颈

支持端口映射

真实服务器可以使用任意操作系统

缺陷:对负载均衡器压力会比较大,请求和响应都需经过负载均衡器

 

3.LVS-Tun模型特性

真实服务器IP、VIP、负载均衡器IP全是公网地址

真实服务器的网关不会也不可能指向负载均衡器IP

所有的请求报文经由负载均衡器,但响应报文必须不能进过负载均衡器

不支持端口映射

真实服务器的系统必须支持隧道

 

LVS_NAT实验环境:

rhel6.5

test1(VS): 172.25.1.11 vip: 172.25.254.100
test2(RS): 172.25.1.12 网关:172.25.1.11
test3(RS): 172.25.1.13 网关:172.25.1.11

VS

给test1添加网卡并添加vip:172.25.254.100

[root@test1 ~]# cd /etc/sysconfig/network-scripts/
[root@test1 network-scripts]# cp ifcfg-eth0 ifcfg-eth1

[root@test1 network-scripts]# vim ifcfg-eth1        //当临时添加ip时需要执行ip link set up eth1来激活eth1

[root@test1 network-scripts]# /etc/init.d/network restart

[root@test1 ~]# yum install -y ipvsadm

[root@test1 ~]# /etc/init.d/iptables stop

[root@test1 ~]# ipvsadm -C
[root@test1 ~]# ipvsadm -A -t 172.25.254.100:80 -s wrr        //wrr加权轮叫调度算法
[root@test1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.1.12 -m -w 1  
[root@test1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.1.13 -m -w 1      //  -m表示nat模式,-w设置权重
[root@test1 ~]# ipvsadm -ln


   
[root@test1 ~]#   vim /etc/sysctl.conf     //永久设置,打开ip转发功能;若临时开启,用sysctl -w net.ipv4.ip_forward=1

sysctl -a |grep ip_forward          //查看是否为1

RS:

[root@test2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0          //添加网关,指向调度器

GATEWAY=172.25.1.11

//临时添加用route add default gw 172.25.1.11

[root@test2 ~]# cat /var/www/html/index.html

[root@test2 ~]# /etc/init.d/httpd start

test3:       进行相同的步骤添加网关172.25.1.11

[root@test3 ~]# cat /var/www/html/index.html

[root@test3 ~]# /etc/init.d/httpd start


此时进行客户端测试:

实现了轮询,即负载均衡。

但若其中一个RS出现故障,则会出现以下问题:

[root@test2 ~]# /etc/init.d/httpd stop

此时:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值