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提供nat工作模式

-g 说明lvs提供直接路由器模式(也是lvs默认的工作模式)

-i 指定lvs工作模式为隧道模式

-m 真实服务器的权值

-E 编辑内核虚拟服务器表中的一条虚拟服务器记录

-D  删除内核虚拟服务器列表中的一条虚拟服务器记录

-C 清楚内核虚拟服务器中的所有记录

-R 恢复虚拟服务器所有规则

-e 编辑虚拟服务器记录中一条真实服务器记录

-d  删除虚拟服务器记录中的某条真实服务器记录

-L 显示内核服务器列表

-n 以数字方式显示地址和端口号

--stats  统计信息

-Z 虚拟服务器记录器清零

-S –save 保存虚拟服务器规则,输出为-R 选项可读的格式

二、lvs负载均衡调度算法:

(1)静态

①RR 轮叫调度     【一个接着一个来,平均分配】

WRR:加权轮叫 【负载能力较大者分配的更多】

③DH:目标地址散列调度   【据请求的目标IP地址,作为散列键(HashKey)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。】

④SH:源地址hash   源【地址散列”调度算法根据请求的源IP地址,作为散列键(HashKey)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空】

(2)动态:

①LC:最少链接 【通过用户请求数和服务器承载的数量,把多余请求数发送到最少的一台服务器上】

②WLC:加权最少连接 【给服务器不忙的派发任务,同时性能较好的服务器也能劳动更多】

③SED:最短延迟调度  【在WLC基础上改进,Overhead = (ACTIVE+1)*256/加权,不再考虑非活动状态,把当前处于活动状态的数目+1来实现,数目最小的,接受下次请求,+1的目的是为了考虑加权的时候,非活动连接过多缺陷:当权限过大的时候,会倒置空闲服务器一直处于无连接状态。】

④NQ:永不排队,最小列队调度。 【需队列。如果有台 realserver的连接数=0就直接分配过去,不需要再进行sed运算,保证不会有一个主机很空间。在SED基础上无论+几,第二次一定给下一个,保证不会有一个主机不会很空闲着,不考虑非活动连接,才用NQ,SED要考虑活动状态连接,对于DNS的UDP不需要考虑非活动连接,而httpd的处于保持状态的服务就需要考虑非活动连接给服务器的压力。】

三、LVS负载均衡器NAT工作模式。

大概网络拓扑图:

详细说明:

CIP:指客户端IP

VIP:指负载均衡服务器的虚拟IP

DIP:指负载均衡服务器的真实IP

RS:指后端服务器

RIP:指后端服务器IP

LVS:负载均衡服务器

①当用户请求到达LVS,此时请求的数据报文会先到达内核空间的PREROUTING链,此刻报文源IP为CIP,目标IP为VIP。

②当PREROUTING链检查数据包是访问自己的,就将数据包发送到INPUT链。

③LVS由用户空间的ipvsadm和内核空间的IPVS组成,ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作,IPVS工作在INPUT链上,当数据包到达INPUT链时,首先会被IPVS检查,如果数据包里面的目的地址及端口没有在规则里面,那么这条数据包将被放行至用户空间,如果在就修改数据包的目标IP地址为后端服务器IP,然后将数据包发送至POSTROUTING链。此刻源IP为CIP,目标地址为RIP

④POSTROUTING链通过选路,将数据包发送到后端服务器(RS),后端服务器(RS)对比发现目标是发自己的IP,开始构建响应报文发回给LVS,此刻报文的源地址为RIP,目标地址为CIP。

⑤LVS在响应客户端钱,此刻会把源地址修改为自己的VIP地址,然后响应给客户端。此刻报文的源IP为VIP,目标地址为CIP。

具体步骤:

三台主机,一台为LVS服务器,两外两台为RS服务器。

centos7.4为LVS服务器,172.17.66.88为虚拟IP(VIP),192.168.11.11为真实IP(DIP)。

centos7和centos7-2为后台服务器(RS),两个网段分别为192.168.88.88和192.168.23.23(确保此地址和RS服务器能通)。

①装包。

命令:yum install ipvsadm

②负载就均衡服务器上配置

命令:ipvsadm -A -t 172.17.66.88:80 -s wrr 【在负载均衡服务器上开一个为80端口的虚拟记录,并使用wrr调度方式】

命令:ipvsadm -a -t 172.17.66.88:80 -t 192.168.88.88 -m -w 1 【配置web服务器后端RIP为NAT工作方式,权重为1】

命令:ipvsadm -a -t 172.17.66.88:80 -t 192.168.23.23 -m -w 1 【配置web服务器后端RIP为NAT工作方式,权重为1】

③开启LVS的转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward 【临时开启转发功能】

vim /sysctl.conf

添加net.ipv4.ip_forward=1 sysctl -p    【永久生效】

④添加RS到LVS的默认路由。

命令:route add default gw 192.168.11.11

⑤测试。

在后端两个服务器(RS)写两个测试页面index.html

以上就实现了负载均衡,由于使用的wrr调度以及权重都是1,所以每次访问都是轮流。

注意:做该实验把RS桥接断掉,不然影响添加的默认路由器工作。

四、基于LVS实现DR工作模式。

这种模式是解决基于NAT模式的弊端,因为NAT模式发送的数据进出都经过LVS服务器,会对LVS造成太大压力。

大概网络拓扑图:

详细说明:

①当客户端发送请求到LVS,此时的请求报文会先到内核的PREROUTING链。此刻的源IP为CIP,目标IP 为VIP。

②PREROUTING链检查数据包是访问自己的,就发送到INPUT链。

③IPVS对比数据包请求的服务是否在定义的规则里,如果是就将报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改为RIP的MAC地址,然后将数据包发送到POSTROUTING链。此刻的源IP和目标IP都未发送改变,只是修改了源MAC为DIP的MAC,目标MAC为RID的MAC地址。

④由于DS和RS在同一段网段,所以工作在二层。POSTROUTING检查目标地址为RIS的MAC地址,就将数据包发送到RS。

⑤RS查看MAC地址为自己的MAC地址,就接下包。处理完成后,将响应报文通过lo接口传送到eth0网卡后发出。此时的源地址为VIP,目标地址为CIP,由此完成了数据的传输。

具体步骤:

三台服务器在同一个网段,一个为lvs服务器【虚拟IP(别名):172.17.252.251;真实IP(DIP):172.17.66.88】,后台服务器1(RIP):172.17.110.111,后台服务器2(RIP)172.17.33.34

①由于都在一个网段,多以在LVS配置一个网卡别名。【并只广播自己】

 ②配置LVS的虚拟IP(VIP)和真实IP(DIP)。

③在后台服务器(RS)上配置VIP并只广播自己。

 ④设置RIP到本地VIP上的路由记录,即本地回旋网卡路由。

⑤配置只回答目标IP地址是来访网络接口本地地址的ARP查询请求以及在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.

⑥RS2服务器上设置和RS1一样的配置

     ⑦测试。

时间: 2024-08-06 22:00:33

LVS负载均衡器NAT和DR工作模式详解的相关文章

ST MCU_GPIO的八种工作模式详解。

补充: N.P型的区别,就是一个为正电压启动(NMOS),一个为负电压启动(PMOS) GPIO的八种工作模式详解 浮空输入_IN_FLOATING带上拉输入_IPU带下拉输入_IPD模拟输入_AIN开漏输出_OUT_OD推挽输出_OUT_PP开漏复用输出_AF_OD推挽复用输出_AF_PP4输入 + 2 输出 + 2 复用输出,一共是8种模式,以下是八种模式的工作原理: GPIO浮空输入_IN_FLOATING模式工作原理以上截图就是浮空输入模式的原理图,图中阴影的部分在浮空输入模式下是处于不

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

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

apache两种工作模式详解

prefork模式 这个多路处理模块(MPM)实现了一个非线程型的.预派生的web服务器,它的工作方式类似于Apache 1.3.它适合于没有线程安全库,需要避免线程兼容性问题的系统.它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求. 这个MPM具有很强的自我调节能力,只需要很少的配置指令调整.最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以致需要使用的内存超出物理内存的大小. worker模式 此多路处理模

zabbix的zabbix-proxy-agent工作模式详解

zabbix简介: zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. 作用:zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题. 组成:由zabbix server与可选组件zabbix agent2部分构成. 工作机制与适用平台:zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行

http之二: apache工作模式详解

作为web服务器,apache的主要作用就是接受并响应用户请求,显示给用户所访问的资源.那么当许多个用户同时来访问,apache该如何作出回应呢,mpm就是解决这个问题的. 一,MPM介绍 mpm(Multi Path Model),即多道处理模块,apache的核心,它有三种类型:prefork.worker.event,分别代表三种不同的响应方法. 1,prefork 这是apache默认的工作模式,它事先启动很多进程,并接受用户请求的,在众多的进程中,有一个进程的属主组是root.root

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

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

总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解

总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解 PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时

Docker Kubernetes Service 网络服务代理模式详解

Docker Kubernetes  Service 网络服务代理模式详解 Service service是实现kubernetes网络通信的一个服务 主要功能:负载均衡.网络规则分布到具体pod 注:kubernetes deployment服务分配服务器负载均衡VIP只能NODE节点单独访问,这里需要外网用户可以放问到容器内,这里就需要用到service. 网络代理模式 kube-proxy v1.0中只支持userspace模式,在v1.1中,添加了iptables代理,在v1.2开始ip

Docker:网络模式详解

Docker作为目前最火的轻量级容器技术,牛逼的功能,如Docker的镜像管理,不足的地方网络方面. Docker自身的4种网络工作方式,和一些自定义网络模式 安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络). none .host.Container host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口. Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP.端口范围. None:该模式关