LVS之我见

lvs第一种工作模型 NAT 原理图如下:

首先客户端发送请求报文当报文到达Director后,Director将请求按照指定的调度算法,从后端挑选一个服务器进行响应,所用到的方法是将目标IP地址改写为一个后端真正服务器的IP地址,并用一定的方法记录下来此次的转发记录。当后端服务器处理完请求后,发送相应报文,送至Director此时根据事先的记录将相应报文改写源地址,并将其发送至客户端。

因此NAT模型的特性:

1,R-server应当使用私有地址网关必须指向Director的地址DIP,一方面可以达到隐藏真实服务器的目的,提高安全性,另一方面降低成本

2,请求和响应都会经过Director,在高负载场景下Director容易成为整个系统的性能瓶颈

3,支持端口映射

4,R-server可以是任意类型的OS

实验拓扑如下:

首先打开Dirctor转发功能

[[email protected] ~]# echo "1" > /proc/sys/net/ipv4/ip_forward

[[email protected] ~]# cat !$

cat /proc/sys/net/ipv4/ip_forward

1

配置Dirctor IP地址

[[email protected] ~]# ifconfig eth0 172.16.101.34

[[email protected] ~]# ifconfig eth1 10.0.0.1

查看

[[email protected] ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 08:00:27:0F:E9:CF

inet addr:172.16.101.34  Bcast:172.16.255.255  Mask:255.255.0.0

inet6 addr: fe80::a00:27ff:fe0f:e9cf/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

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

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

collisions:0 txqueuelen:1000

RX bytes:29569 (28.8 KiB)  TX bytes:21519 (21.0 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:79:86:58

inet addr:10.0.0.1  Bcast:10.255.255.255  Mask:255.0.0.0

inet6 addr: fe80::a00:27ff:fe79:8658/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

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

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

collisions:0 txqueuelen:1000

RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

配置lvs

配置server1

安装LAMP,在此不再赘述

为了测试方便设置主页文件

vim /var/www/html/index.html

server1

配置server2

同样安装LAMP

为了测试方便设置主页文件

vim /var/www/html/index.html

server2

客户端测试

查看Dirctor连接状态

ipvsadm -l  -n  -c

lvs 第二种模型DR

客户端请求到达Dirctor后,调度器仅仅修改MAC地址为后端的r-server,基于arp协议请求会被发送至后端的服务器,注意此时的真实服务器上的网卡上配置的ip地址为和DIp一个物理网段的地址因此可以基于mac进行通信。但是会有一个问题那就是为了保持回的响应的源IP为VIP那么就要在r-server上配置VIP才行,这样就会造成一个问题,就是同一个网段上会出现3个主机都会使用VIP怎样才能保证请求会被发送至Director上呢。这就需要在r-server上调整两个内核参数

arp_ignore=1

apr_announce=2

到底这两个参数是什么含义请看下图

这两个参数是用来定义linux系统是如何来响应(apr_ignore)和通告(apr_announce)MAC地址的。默认情况下apr_ignore的值为零他表示的含义是只要网络中有arp请求的广播假设是从eth0所在的网络来的arp请求那么eth0这时会毫无保留的将此主机的所有的网卡的MAC地址统统都予以回应也就是说,此次请求的到三个网卡的MAC,但是当此选项的值设为1时那么,eth0仅仅告诉对方自己的MAC地址其他两块网卡的MAC对方是不会知道的。而apr_annouce的作用是:就算没有arp请求到来 网卡也会自己向网络中通告这台主机的MAC地址只不过值为0时,通告此台主机所有网卡的MAc地址,而当此选项为2时仅仅通告自己的MAC地址。也就是说这两个选项的值设置是用来告诉eth0只管好自己的事就行,不要多管闲事。。

所以此时将VIP设置在lo:0上就不会被得知它上面也有此地址了,达到隐藏的目的,但是当Director将请求转发到R-server上时拆开数据包看到目标地址是VIP而自己的主机上就有这个地址,就予以接受处理请求。

实验拓扑如下,并且此次会以共享NFS共享存储的方式安装Discuz论坛程序并且实现lvs会话保持的功能:

首先配置Director

配置server1

配置server2

准备数据库服务器

安装就不再赘述

在server1创建nfs服务器

vim /etc/exports

/var/www/html 172.16.101.37(rw,no_root_squash)

启动服务

server2挂载此目录到相应目录

将discuz上传到server1的/var/www/html

然后客户端浏览器启动安装

过程不再赘述

安装成功

注册后输入密码登录同一主机会话不会丢失如何刷新都会转发至172.16.101.36

现在更换客户端ip地址

lvs第三种模型tun很少用到这里不再详述 只不过是在转发时将ip报文再封装一层ip首部在发送。

时间: 2024-12-29 04:27:17

LVS之我见的相关文章

使用LVS实现负载均衡原理及安装配置详解

转:http://www.cnblogs.com/liwei0526vip/p/6370103.html 使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录. 一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director

heartbeat+LVS

####heartbeat简介####Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能.这个集群方案是利用第三方软件搭建的,要比RedHat自带的集群软件在功能上简化一些,但是搭建起来非常的方便.而且是一种快速解决方案.heartbeat的高可用集群采用的通信方式是udp协议和串口通信,而且heartbeat插件技术实现了集群间的

LVS集群之工作原理

  首先我们要了解LVS的工作机制: LVS里Director本身不响应请求,只是接受转发请求到后方,Realservers才是后台真正响应请求. LVS 工作原理基本类似DNAT,又不完全相像,它是一种四层交换,默认情况下通过用户请求的地址和端口来判断用户的请求,从而转发到后台真正提供服务的主机,而判断这种请求的是通过套接字来实现,所以四层就可以实现. 而且这个转发的过程对用户而言是透明的(简单的讲,就是用户访问DR的IP,而DR转发给RSS,而用户不知道这个过程) LVS的工作模式: 1.D

centos 7 LVS+keepalived实现nginx的高可用以及负载均衡

一.准备工作:关闭防火墙,selinux以免对实验结果造成影响,准备虚机,设置IP地址.主机名 hostname:Nginx01 IP:192.168.1.87 Role:Nginx Server hostname:Nginx02 IP: 192.168.1.88 Role:Nginx Server hostname:LVS01 IP: 192.168.1.89 Role:LVS+Keepalived hostname:LVS02 IP: 192.168.1.90 Role:LVS+Keepal

LB负载均衡集群之LVS(DR)

配置DR LVS工具ipvsadm 环境说明 四台机器: Director负载均衡调度器,网卡(公网IP,实验用nat)eth0:192.168.134.140 Vip:etho:0:192.168.134.150 Real server1真实机器.真实服务器,网卡(公网IP,实验用nat)eth0:192.168.134.137 Real server2真实机器.真实服务器,网卡(公网IP,实验用nat)eth0:192.168.134.138 Client 客户端 网卡(公网IP,实验用na

LB负载均衡集群之LVS(NAT)

NAT模式 调度过程IP包详细图: 原理请看:<LVS算法转载> 实验准备 三台机器 一台为负载均衡调度器director,两张网卡,一个外网(客户请求)192.168.134.141,一个内网192.168.143.136 两台真实服务器real server,一张网卡,内网192.168.143.130和192.168.143.134 真实服务器的网关设置为负载均衡器的内网IP 192.168.143.136 实验环境为虚拟机,所以先用nat模式下载需要的服务ipvsadm,nginx,然

LB(Load balance)负载均衡集群--{LVS-[NAT+DR]单实例实验+LVS+keeplived实验} 菜鸟入门级

LB(Load balance)负载均衡集群 LVS-[NAT+DR]单实例实验 LVS+keeplived实验 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. 逻辑可分为: 1调度层 (Director):它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的. 2[服务器池(server pool)/集群层(Real server)]:是一组真正执行客

LVS高性能集群

LVS高性能集群  ====负载均衡硬件设备 1.什么是LVS?   linux virtual service,linux虚拟服务,使用多台服务器一起工作来提高服务的访问和处理性能   2.lvs的工作模式   (1)nat:通过地址转换访问服务   (2)tun:通过IP隧道访问服务   (3)dr:直接调度访问服务  ====直接路由调度 1.轮寻    2.加权,根据硬件的好坏来设置权值   3.最小连接4. 加权最小连接5. 基于地址的最小连接调度6. 目标7. 源        3.

LVS负载均衡之持久性连接介绍(会话篇)

在实际生产环境中,往往需要根据业务应用场景来设置lvs的会话超时时间以及防session连接丢失的问题提,如在业务支付环节,如若session丢失会导致重复扣款问题,严重影响到安全性,本小节解将会讲到关于lvs持久性连接问题 一.lvs负载均衡持久连接介绍: 引子(案例) 对于电子商务网站来说,用户在挑选商品的时候使用的是80端口来浏览的,当付款的时候则是通过443的ssl加密的方式,当然当用户挑选完商品付款 的时候,我们当然不希望https的443跳转到另外一台REAL SERVER上,很显然