设为首页 收藏本站
查看: 1899|回复: 0

[经验分享] LVS之NAT模式简单示例

[复制链接]

尚未签到

发表于 2015-11-20 15:12:39 | 显示全部楼层 |阅读模式
  LVS简介

LVS(Linux Virtual Server),即Linux上虚拟的服务器集群系统。其实LVS就是一个前端的负载调度器,它在软件层次上实现了负载均衡,将接收到的请求均衡地转移至多个不同的服务器上运行,用较低的成本实现了将一组服务器构建成高性能、高可用的服务器集群。

LVS由两部分组成ipvsadm和ipvs,ipvsadm工作于用户空间,用于编写集群服务。ipvs工作于内核空间。ipvsadm定义的集群服务交由ipvs来具体实现。到达Director的数据包首先会经过PREROUTING,而后经过路由发现其目标地址为本地某接口的地址,因此,接着就会将数据包发往INPUT(LOCAL_IN HOOK)。此时,正在运行内核中的ipvs(始终监控着LOCAL_IN HOOK)进程会发现目标地址是VIP的数据包请求的是一个集群服务,于是,此数据包的本来到达本机(Director)目标行程被改变为经由POSTROUTING HOOK发往RealServer。

  • Director Server     # 调度器,即实现负载均衡的地方
  • Real Server           # 正真能够提供服务的服务器
  • VIP                        # Director上用于接收用户请求的IP
  • DIP                        # Director上用于和Real Server交互的IP
  • RIP                        # Real Server上的IP
  • CIP                        # Client IP
  NAT模式全称是 Network Address Translation,通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。

DSC0000.jpg

本文演示一个简单的示例:LVS的NAT模式的配置和测试,该模式下LVS服务器很可能成为系统性能瓶颈(请求和返回都要经过LVS服务器),实验前做好如下准备:

  • 所有的后端服务器和LVS服务器(调度器)要在同一个网段内
  • 后端服务器IP是私有地址,仅用于集群节点之间进行通信
  • LVS服务器同时处理请求和应答数据包
  • 后端服务器的网关要指向LVS服务器的IP
  • 可以实现端口映射
  • 后端服务器可以是任意操作系统
  配置环境:

Director server:  
eth0:10.33.1.129(对外提供服务的IP)
eth1:192.168.126.130

Real Server:

Real server1:  eth0: 192.168.126.9

Real server2:  eth0: 192.168.126.7

网络topology图如下:

Real server1和Real server2的网关要指向Director server的eth1:192.168.126.130,需要注意的是服务器都要关闭防火墙

DSC0001.jpg

Director需要做NAT和负载调度:

客服端访问10.33.1.129,Director需要做DNAT(将目的地址改为real server的IP),将请求分发到Real server,

Real server处理完成后,请求返回到Director,Director需要先做SNAT(将源的地址改为10.33.1.129),然后返回给客户端。
  查看内核中与ipvs相关功能

[iyunv@DQ ~]# grep -i "ipvs" /boot/config-2.6.32-431.el6.i686
DSC0002.jpg

需要安装ipvsadm命令行工具

DSC0003.jpg

将Director server,Real server1,Real server2的网络适配器设置为仅主机模式

开启Real server1,Real server2的Web服务,并确保确保Director server的eth1和Real server1,Real server2之间可以互相通信

Real server1

DSC0004.jpg

DSC0005.jpg

Real server2

DSC0006.jpg

DSC0007.jpg

Director

DSC0008.jpg

DSC0009.jpg

DSC00010.jpg

设置lvs策略

第1行是添加一条新的虚拟IP记录,同时指定采用轮询算法。

第2,3行是在新加虚拟IP记录中添加两条新的Real Server记录,并且指定LVS的工作模式为NAT模式。

-g(gateway):直接路由DR模式

-i(internet):隧道,TUN模式

-m(masq):伪装,NAT模式

在NAT模式下确保启用系统的包转发功能,从而使系统充当路由器

DSC00011.jpg

物理机访问Director,刷新网页测试负载均衡效果,可以发现返回的内容由Real server1和Real server2轮流提供

DSC00012.jpg

DSC00013.jpg

查看调度状况

ipvsadm -L
-n以数字方式查看集群的信息
–rate显示速率
–stats统计数据包近来出去的个数和字节数

DSC00014.jpg

修改LVS算法为Weight Round Robin


[iyunv@Director ~]# ipvsadm -E -t 10.33.1.129:80 -s wrr
[iyunv@Director ~]# ipvsadm -e -t 10.33.1.129:80 -r 192.168.126.7 -m -w 3
[iyunv@Director ~]# ipvsadm -e -t 10.33.1.129:80 -r 192.168.126.9 -m -w 1
  查看加权轮询调度算法的效果,可以发现返回的内容由Real server1和Real server2轮询提供比例大致为3:1

DSC00015.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-141589-1-1.html 上篇帖子: LVS的工作原理和相关算法 下篇帖子: LVS-DR模式配置详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表