lvs-dr原理及配置

Lvs-dr配置

客户端通过路由器将请求交给director的VIP。director接收请求,将通过相应的算法将请求转发给相应的realserver。在转发的过程中,会修改请求包的目的mac地址,目的ip地址不变。realserver接收请求,并直接响应客户端。但这有个问题:director此时与realserver位于同一个网络中,当director直接将请求转发给realserver时,realserver检测到该请求包的目的ip是vip而并非自己,便会丢弃,而不会响应。所以,我们需要在所有realserver上都配上VIP。但又会有二个问题:director与realserver位于同一个网络中,当出现多个vip时,通过arp广播,整个网络必然混乱,我们无法保证客户端的请求一定会发往director。为保证当客户端请求抵达网络时,只有director来响应请求。我们需要realserver忽略对vip的arp请求,并且在arp通告时,不通告vip地址。我们需要配置如下两个内核参数:
arp_ignore :
  当一台主机某个接口接收到arp请求时,这台机上的ip地址是否通过该接口响应给对应请求的限制级别。简单来说,当这台主机有多块网卡,或者有多个ip地址时,是否通过该接口将所有ip地址响应给对应的请求。

0:不作任何限制。将所有本机的ip地址都响应给对应请求。

1:当请求的ip就配置在本接口上时,才予以响应。换句话说,就是只响应当前接口的ip地址。

arp_announce:
  当一台主机加入到一个新的网络。会发出ARP通告,向网络中其他主机通告自己的ip地址及mac等信息。arp_anounce就用来限制通告的级别。当这台主机有多块网卡或者多个ip地址时,是否通过某一个接口将所有ip地址通告给该网络中的主机。

0:不作任何限制。从任意接口通告所有ip地址。

1:尽可能避免通告非本接口上的ip。

2:只通知本接口的ip。非本接口的ip不予通告。

由此我们亦可知,在realserver上配置vip时显然也不能配置的物理接口的虚接口上,而应该配置在loopback上。

dr模型的特点:
1、保证前端路由将目标地址为VIP的报文统统发往Directory,而不能是RS;

解决方案:

(1)静态地址绑定:在前端路由器上操作

问题:未必有路由操作权限

(2)aprtables

(3)修改RS上内核参数,将RS上的VIP配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求;

2、RS可以使用私有地址;但也可以使用公网地址,此时可通过互联网通过RIP对其直接访问;

3、RS跟Directory必须在同一物理网络中;

4、请求报文经由Director,但响应报文必须不能经过Director;

5、不支持端口映射;

6、RS可以是大多数常见的OS;

7、RS的网关绝不允许指向DIP;

实验配置如下(共需三台主机)

1,  在虚拟机2上

[[email protected]~]# ifconfig eth0 172.16.31.31/16 up

[[email protected]~]# route add default gw 172.16.0.1

2,  在虚拟机3上

[[email protected] ~]# ifconfig eth0 172.16.31.32/16 up

[[email protected]~]# route add default gw 172.16.0.1

3,  在虚拟机1上配置

[[email protected]~]# ifconfig eth0:0 172.16.31.100/16 up

[[email protected]~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:D0:61:EB

inet addr:172.16.31.30  Bcast:172.16.255.255  Mask:255.255.0.0

inet6 addr:fe80::20c:29ff:fed0:61eb/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1

RX packets:5109 errors:0 dropped:0overruns:0 frame:0

TX packets:142 errors:0 dropped:0overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:368690 (360.0 KiB)  TX bytes:12077 (11.7 KiB)

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:D0:61:EB

inet addr:172.16.31.100  Bcast:172.16.255.255  Mask:255.255.0.0

UP BROADCASTRUNNING MULTICAST  MTU:1500  Metric:1

4,  配置节点2和3上vip,在这之前要改变配置参数并且添加路由

[[email protected]~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

[[email protected] ~]# echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore

[[email protected]~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

[[email protected] ~]# echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce

[[email protected] ~]# ifconfig lo:0 172.16.31.100/16 up    ----vip地址

[[email protected]~]#ifconfig lo:0172.16.32.88 netmask 255.255.255.255 broadcast 172.16.32.88 up

[[email protected] ~]#route add -host 172.16.32.88 dev lo:0

5,  配置集群服务

[[email protected]~]# ipvsadm -A -t 172.16.31.100:80 -s rr

[[email protected]~]# ipvsadm -a -t 172.16.31.100:80 -r 172.16.31.31 -g -w 1

[[email protected] ~]# ipvsadm -a -t 172.16.31.100:80 -r172.16.31.32 -g -w 2

[[email protected] ~]# ipvsadm -L -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

->RemoteAddress:Port           ForwardWeight ActiveConn InActConn

TCP 172.16.31.100:80 rr

->172.16.31.31:80              Route   1     0          0

->172.16.31.32:80              Route   2     0          0

时间: 2024-12-14 01:29:49

lvs-dr原理及配置的相关文章

LVS集群的基本原理、LVS/NAT模式的配置、LVS/DR模式的配置、编写自动脚本检查LVS上realserver健康性

Linux 虚拟服务器(LVS)由章文嵩在国防科技大学就读博士期间创建利用LVS可以实现高可用的.可伸缩的Web.Mail.Cache和Media等网络服务,已经被集成到linux内核里了. 1.什么是集群? 使用一组服务器提供相同的服务2.使用集群的目的? 增强可靠性   降低成本   提高可扩展性   提高性能3.集群分类? HPC 高性能计算集群    (气象   航天   航空)    LB    负载均衡集群 (平均地分摊处理)    * LVS    hproxy HA    高可用

四层负载均衡LVS/DR模式的配置

1.环境准备准备 3 台纯净的虚拟机,两台 web 服务器,并关闭所有的防火墙和selinux 2.部署说明:? 网络使用NAT模式 ? DR模式要求Director DIP 和 所有RealServer RIP必须在同一个网段及广播域 ? 所有节点网关均指定真实网关 3.LVS-server 安装lvs管理软件 yum -y install ipvsadm 4.需要手动生成ipvsadm文件否则启动会报错 [[email protected] ~]# ipvsadm --save > /etc

CentOS下LVS DR模式负载均衡配置详解

一安装LVS准备: 1.准备4台Centos 6.2 x86_64 注:本实验关闭 SELinux和IPtables防火墙. 管理IP地址 角色 备注 192.168.1.101 LVS主调度器(Master Director) 对外提供服务的VIP为192.168.1.180 192.168.1.114 LVS从调度器(Backup Director) 平时可以作为RS(真实服务器使用) 192.168.1.104 RS1(真实服务器)   192.168.1.103 RS2(真实服务器)  

LVS/DR模式实战

线上服务器清理的差不多了,准备做一下服务器分层架构,就是将LNMP环境分离开,用到了LB集群,先来点理论吧. 负载均衡LB集群主要关注的是并发处理能力,常用的有:LVS.nginx.haproxy. LVS是基于四层的负载均衡,不支持复杂特性的负载均衡,转发效率比7层略高 nginx.haproxy都是七层的负载均衡,可以根据特性进行负载均衡,比较灵活. 这里主要说说LVS的原理与配置方法, LVS原理其实就是利用iptables的INPUT链,侦听在INPUT链,拦截访问集群服务的数据包,将进

第三十三天 LVS基础原理、调度算法、NAT和DR的实现 、LXC虚拟化

大规模站点构建框架 LVS的基础原理 LVS调度方法及NAT模型的实现 LVS  dr模型及lxc虚拟化 一.大规模站点架构框架 http: stateless keep-alive cookie: session 系统的:可扩展性.高可用性:99%, 99.9%, 99.999% .性能: 可扩展性: 容量:在一定时间内能完成的工作量 scale up: 向上扩展 scale out: 向外扩展 Cluster: 集群 构建高可扩展性系统的重要原则:在系统内部尽量避免串行化和交互 调度器:di

(2)LVS+Keepalived高可用负载均衡架构原理及配置

1.keepalived 介绍2.keepalived 优缺点3.keepalived 应用场景4.keepalived 安装配置5.keepalived+lvs 高可用6.keepalived+nginx 高可用7.keepalived 切换原理8.性能优化9.常见故障 一.keepalived 介绍 1.keepalived 定义keepalived是一个基于VRRP(virtual route redundent protocol)协议来实现的LVS服务高可用方案,可以利用其来避免单点故障

LVS DR 配置

LVS DR 配置 架构图 架构说明: Vmware上实现,一共需要3台虚拟机.物理机模拟客户端.配置RR轮询的调度方法以便显示效果   Director主机配置 Director地址配置: VIP地址: 192.168.61.100 DIP地址: 192.168.93.133 ifonfig eth0:0 192.168.61.100 netmask255.255.255.255 broadcast 192.168.61.100 up route add -host 192.168.61.10

LVS集群DR、NAT模型配置, 及使用ldirectord完成LVS DR模型集群搭建

首先我们有三台主机:其中172.16.192.168作为前台主机:另外172.16.254.18和172.16.254.105作为后端主机,作为测试分别运行有web服务,并测试可用,如下图. 一.LVS NAT模型集群配置实验 1.首先在后端Real Server上设置默认网关,执行前端Virtual Server 2.在前端Virtual Server上开启路由转发功能 3.配置前端LVS集群 4.测试 总结:经过初步测试,我们可以看出已经可以实现rr轮询调度,修改相应的调度算法则可以实现不同

LVS/DR + keepalived配置

1.LVS/DR 搭建的不足及解决方法 前面的lvs虽然已经配置成功也实现了负载均衡,但是我们测试的时候发现,当某台real server把httpd进程停掉,那么director照样会把请求转发过去,这样就造成了某些请求不正常.所以需要有一种机制用来检测real server的状态,这就是keepalived.它的作用除了可以检测rs状态外,还可以检测备用director的状态,也就是说keepalived可以实现ha集群的功能,当然了也需要一台备用director. 2.搭建环境前的工作 h

基于云端虚拟机的LVS/DR+Keepalived+nginx的高可用集群架构配置

最近,公司要我部署一个集群架构,选来选取还是选择了大家都很熟悉的基于DR的LVS+Keepalived做负载分发,然后使用轻量级的nginx做中间代理层,这里呢先暂时实现一个简单web应用功能,对于代理功能和后续的web层部署.数据层安排将择机更新! 首先看一下集群框架:   下面开始我们的集群搭建行程: 一.IP规划: 做一件事情需要想想怎么去做既简单又有条理,我们做项目也应该如此.所以这里一定先做一个简单的规划,对于你后续测试的时候出现不能分发的情况有所解决. 负载均衡层