初识LVS(三)——DR工作模式实际环境中的应用

背景介绍

LVS的NAT模型所有的请求和响应报文会经过director,此时director就成为了性能瓶颈,而为了解决这个问题LVS也默认采用的是DR模型(下图),请求报文(蓝色)向director发出请求,响应报文(红色)由RS服务器直接返还给用户不经由director,通常RS的网关都是指向IDC机房的出口路由,这样性能比通过director要好很多。VIP为公网IP地址,RIP和DIP需要连接在同一物理交换设备上,只要中间没有隔路由器,即使不是同一网段也可以,大多数情况RIP和DIP都位于内网所以习惯上将它们放在同一网段。

实验介绍

为便于实验,将上图简化下面的结构,目的是演示VIP和DIP在不同的网段。本实验在workstation上进行模拟,所有设备连载VMnet1虚拟交换机上,创建5台虚拟机,操作系统版本为CentOS6.5

操作步骤

1.在路由器上添加20网段地址,并开启核心转发功能,其他设备的网关都指向路由器

]# ip addr add 172.16.20.40/24 dev eth0

]# sysctl -w net.ipv4.ip_forward=1

2.给director的本地接口绑定VIP地址,安装ipvsadm包并设置规则

]# yum install ipvsadm.i686 -y

]# ip addr add 172.16.10.100/32 dev eth0

]# ipvsadm -A -t 172.16.10.100:80 -s rr

]# ipvsadm -a -t 172.16.10.100:80 -r 172.16.20.30 -g

]# ipvsadm -a -t 172.16.10.100:80 -r 172.16.20.30 -g

注:经测试VIP地址也可绑定到lo接口,必须是32位掩码

3.修改realserver内核参数,开启arp抑制,并在lo接口绑定VIP地址。为演示效果给realserver安装httpd服务,设置不同的主页(步骤略)

]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore

]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

]# ip addr add 172.16.10.100/32 dev lo

注:经测试VIP地址也可绑定到本地接口,必须是32位掩码

4.适用客户端访问172.16.10.100测试效果,至此操作全部完成

补充说明

在绑定VIP地址时注意,在使用ip或ifconfig绑定地址时一定要将地址设置为32位掩码,即172.16.10.100/32,否则网站无法正常访问。以realserver为例,在本地接口绑定32位掩码的VIP地址,或在lo接口绑定任意掩码长度的VIP地址,路由条目保持不变

如果本地接口绑定非32位掩码的VIP地址,以24位掩码为例,会增加一条路由条目

第一次测试时将director和realserver上VIP地址掩码写成24位,即172.16.10.100/24,发现realserver的web页面无法正常打开,在realserver上抓包发现,mac地址在传输过程中发生了改变

对照mac表印证了DR模式下director时通过修改mac地址完成请求的调度,说明请求已送到realserver,但此时realserver未做出响应

将realserver上的VIP地址掩码改为32位恢复正常,需要注意的是:经测试realserver上VIP地址掩码无论在哪种接口必须为32位,director上本地接口VIP地址掩码是24位还是32位无所谓,lo接口VIP地址掩码必须为32位

产生的疑惑

将director上本地接口VIP地址掩码长度设置为32位,即172.16.10.100/32,客户端172.16.10.10/24使用ping命令ping该地址,发送时会将目标地址(172.16.10.100)与自己的掩码(255.255.255.0)做与运算,得出目标地址与自己(172.16.10.10)在同一网段,而返回时realserver同样会使用目标地址(172.16.10.10)与自己的掩码(255.255.255.255)做与运算,得出目标地址与自己(172.16.10.100)不在同一网段从而走默认路由。下图时路由器上的抓包截图

对照下图客户端的arp地址表得知:客户端发起ping命令后,由于判断目标地址与自己在同一网段,所以直接会找到目标地址(红框1);目标地址再返回时判断目标地址于自己不在同一网段所以走默认路由(红框2)

从红框3、4看到数据流向在进入路由器后由172.16.10.40>172.16.10.100,对照路由器的arp地址表知道172.16.10.100与172.16.20.30认为是同一个mac地址,这也印证了DR模式在工作时director会将mac地址改为挑选出来realserver的mac地址再返回给路由器的机制,此处挑选出来的realserver是172.16.20.30,所以172.16.10.100与172.16.20.30是同一个mac地址,至于在ping操作时为啥会有这一步原因尚不清楚

最后通过路由器将结果返回给客户端(红框5),至此结束。

时间: 2024-10-04 00:22:53

初识LVS(三)——DR工作模式实际环境中的应用的相关文章

LVS 三种工作模式基本配置(不含HA)

类别:原创 服务器 本文参考 LVS三种工作模式简介及案例参考http://www.sxt.cn/u/324/blog/3188 LVS DR模式基本配置参考http://www.21ops.com/ops/26717.html LVS TUN模式配置参考(其它的文档全都少了内容) http://outofmemory.cn/wr/?u=http%3A%2F%2Fwww.jizhuomi.com%2Fsoftware%2F365.html ipvsadm 命令详细参数参考 http://blog

初识LVS(二)——LVS的DR工作模式

LVS的DR模式介绍 LVS在NAT模式下所有的请求和响应报文都需要经过director,尽管LVS工作在内核层不受套接字文件65535的数量限制,但也有可能会成为性能瓶颈(如视频网站),以下介绍LVS的另一种工作模式--dr模式,它是LVS默认的工作模式.与nat模式通过单边修改源或目标的IP地址实现负载均衡功能不同,dr模式则是通过修改mac地址来实现该功能,整个过程中源和目标的IP地址不发生变法. LVS的dr模式工作原理 与nat模式下LVS负载均衡器充当内网中RS服务器的网关不同,dr

LVS三种工作模式、十种调度算法介绍

工作模式介绍:1.Virtual server via NAT(VS-NAT)优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,物理服务器可以分配Internet的保留私有地址,只有负载均衡器需要一个合法的IP地址.缺点:扩展性有限.当服务器节点(普通PC服务器)数据增长到20个或更多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包都需要经过负载均衡器再生.假使TCP包的平均长度是536字节的话,平均包再生延迟时间大约为60us(在Pentium处理器上计算的,采用更快的

LVS 三种工作模式原理、以及优缺点比较(转载)

原文地址:http://9ilinux.com/149.html 一.NAT模式(VS-NAT) 原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可?期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器? 优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址. 缺

LVS 三种工作模式原理、以及优缺点比较

原文地址:http://9ilinux.com/149.html 一.NAT模式(VS-NAT) 原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可?期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器? 优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址. 缺

LVS概念类型及三种工作模式和十种调度算法介绍

一.LVS概念 LVS(Linux Virtual Server):Linux 虚拟服务器 LVS是个负载均衡设备,它不提供任何服务,用户请求到这里的时候,它是将客户需求转发至后端真正提供服务的服务,所以说后端的服务称作real server.LVS分为两段,前一段称为ipvsadm(管理集群服务的命令行工具),后面一段叫做ipvs(内核模块)[提示:LVS和iptables不能同时使用]. 二.LVS类型 LB(Load Balancing):负载均衡集群 特性:为了增加能力能力 HA(Hig

LVS负载均衡器NAT和DR工作模式详解

在试验之前为了更好理解设置的参数,所以先讲解一下命令. 一.lvs配置文件和命令: 程序包:ipvsadm(LVS管理工具) 配置文件:/etc/sysconfig/ipvsadm-config [rpm -ql ipvsadm  查询包的具体列表] -A  在服务器列表中新添加一条新的虚拟服务器记录 -t 表示为tcp服务 -u 表示为udp服务 -s 使用的调度算法  (rr|wrr|wlc|lc|dh|sh|lblb|lblcr -a 在服务器里添加一条新的真是主机记录 -m 说明lvs提

LVS负载均衡(LVS简介、三种工作模式、十种调度算法)《转》

一.LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中.该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器

LVS负载均衡群集(三种工作模式原理详解)

LVS负载均衡群集(三种工作模式原理详解) 一.前言 ? 在互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等要求越来越高,单台服务器力不从心.所以我们需要通过一些方法来解决这样的瓶颈. ? 最简单的方法就是使用价格昂贵的大.小型的主机:但这样在大多数企业中显然是不可取或者说不现实的.那么我们就需要通过多个普通服务器构建服务器群集. 二.相关概念概述 2.1何为LVS? ? LVS--Linux Virtual Server,即Linux虚拟服务器(虚拟主机.共享主机),虚拟主