本博文主要简单介绍一下LVS负载均衡集群的一个基本负载均衡机制:LVS-DR;如有汇总不当之处,请各位在评论中多多指出。

LVS-DR原理:

LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。它是我们国家的章文嵩博士的一个开源项目。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。我们都知道LVS有LVS-DR,LVS-NAT,LVS-TUN三种模式,其中DR模式意为Direct Routing(直接路由),是调度器与实际服务器都有一块网卡连在同一物理网段上的情况。

而LVS-DR的工作原理就是:通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址,源IP/PORT,以及目标IP/PORT均保持不变

LVS-DR:直接路由的特点

Director和各RS上都配置使用VIP

(1)确保前端路由将目标IP为VIP的请求报文发往Director

(a)在前端网关做静态绑定

(b)在RS上使用arptables

(c)在RS上修改内核参数以限制ARP通告和应答级别

arp_announce

arp-ignore

(2)RS的RIP可以使用私网地址,也可以是公网地址,RIP与DIP在同一IP网络,RIP的网关不能指向DIP,以确保响应报文不会经由Director

(3)RS跟Director要在同一个物理网络

(4)请求报文要经由Director,但响应不能经由Director,而是由RS直接发往Client

(5)不支持端口映射

LVS-DR部署简单步骤介绍:

下图为LVS-DR的拓扑配置图:

1.服务器IP分配:

2.在RS服务器端安装nginx,并配置好RS的测试页面文件(test.html)

~]#yum install -y nginx

~]#vim /usr/share/nginx/html/test.html

RS1设置:

~]# cat /usr/share/nginx/html/test.html

<h1>RS1-192.168.73.142</h1>

RS2设置:

~]# cat /usr/share/nginx/html/test.html

<h1>RS2-192.168.73.143</h1>

注意:RS1与RS2配置步骤一致,但在配置测试页面文件时,为了显示测试效果,会显示实际RS的hostname以及对于IP地址

3.配置RS1网卡的VIP,添加本地route限定并修改arp_announce和arp_ignore的设置

~]#ifconfig lo:0 192.168.73.160 netmask 255.255.255.255 broadcast 192.168.73.160 up

~]#route add -host 192.168.73.160 dev lo:0

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

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

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

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

注:配置RS2服务器,步骤跟RS1配置一致即可

4.在Director安装ipvsadm,并配置网卡设置,添加ipvsadm规则

~]#yum install -y ipvsadm

~]#ifconfig ens33:0 192.168.73.160 netmask 255.255.255.255 broadcast 192.168.73.160 up

~]#route add -host 192.168.73.160 dev ens33:0

~]# ipvsadm -At 192.168.73.160 -s rr

Zero port specified for non-persistent service

~]# ipvsadm -At 192.168.73.160:80 -s rr

~]# ipvsadm -a -t 192.168.73.160:80 -r 192.168.73.142 -g

~]# ipvsadm -a -t 192.168.73.160:80 -r 192.168.73.143 -g

~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.73.160:80 rr

-> 192.168.73.142:80            Route   1      0          0

-> 192.168.73.143:80            Route   1      0          0

5.启动各服务器的nginx服务,同时为了简便,关闭所有服务器的firewalld

~]#systemctl start nginx

~]#systemctl stop firewalld

~]#setenforce 0

6.在客户端测试访问,http://192.168.73.160/test.html

注意:LVS-DR模式其实可以通过脚本来直接实现,下面为各服务器的简单脚本,建议为了熟悉配置,前期还是自己手动设置比较好,

此脚本较简单,请大神勿喷!

#!/bin/bash

#lvs-dr模式部署脚本

vip=192.168.73.160

mask=255.255.255.255

iface='lo:0'

case $1 in

start)

ifconfig $iface $vip netmask $mask broadcast $vip up

route add -host $vip dev $iface

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

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

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

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

;;

stop)

ifconfig $iface down

echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce

echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce

;;

*)

echo "Usage:$(basename $0) start|stop"

exit 2

;;

esac

同步博客地址:https://blog.51cto.com/12068974

LVS负载均衡机制之LVS-DR模式工作原理以及简单配置的更多相关文章

  1. LB负载均衡集群及DR模式配置

    一.系统环境准备: 1.dir服务器 主机名称:dir 系统环境:CentOS release 6.5 (Final) 外网ip:192.168.1.203(网络模式桥接) vip:192.168.1 ...

  2. octavia的实现与分析(一)·openstack负载均衡的现状与发展以及lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比

    [负载均衡] 大量用户发起请求的情况下,服务器负载过高,导致部分请求无法被响应或者及时响应. 负载均衡根据一定的算法将请求分发到不同的后端,保证所有的请求都可以被正常的下发并返回. [主流实现-LVS ...

  3. openstack octavia的实现与分析(一)openstack负载均衡的现状与发展以及lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比

    [负载均衡] 大量用户发起请求的情况下,服务器负载过高,导致部分请求无法被响应或者及时响应. 负载均衡根据一定的算法将请求分发到不同的后端,保证所有的请求都可以被正常的下发并返回. [主流实现-LVS ...

  4. LVS负载均衡理论以及算法概要

    一. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.or ...

  5. Linux中keepalived+LVS负载均衡的搭建测试

    1.1 LVS简介       LVS(Linux Virtual Server),也就是Linux虚拟服务器, 是一个自由软件项目.使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Lin ...

  6. linux运维、架构之路-LVS负载均衡

    一.LVS介绍 1.介绍           LVS是Linux Virtual Server的简写,是linux虚拟的服务器集群系统,可以在unix/linux平台下实现负载均衡集群功能,由章文嵩博 ...

  7. centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课

    centos   LB负载均衡集群 三种模式区别 LVS/NAT 配置  LVS/DR 配置  LVS/DR + keepalived配置  nginx ip_hash 实现长连接  LVS是四层LB ...

  8. LVS负载均衡DR模式

    什么是集群? 一组相互独立的计算机,利用高速通信网络组成的一个计算机系统,对于客户机来说像是一个单一服务器,实际上是一组服务器.简而言之,一堆机器协同工作就是集群.集群的基本特点:高性能.高并发.高吞 ...

  9. LVS负载均衡之DR模式部署

      1.LVS的DR模式介绍 参考自官网:http://www.linuxvirtualserver.org/zh/lvs3.html     VS/DR利用大多数Internet服务的非对称特点,负 ...

随机推荐

  1. php中http_build_query函数

    http_build_query ( array $formdata [, string $numeric_prefix ] ) 使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求 ...

  2. AdvStringGrid使用小结

    结合最近自己做的一些工作,用到了第三方控件AdvStringGrid,这里就常用的一些技巧做个小小的总结 (1)如何设置表格固定的列数,如下图所示: 这里固定的列数为3列,通过设置下面属性来改变固定的 ...

  3. XSS防范之Encode(转)

    防范XSS有三道防火墙:数据的输入校验,数据输出Encode,浏览器安全(主要就是CSP),这里主要介绍Encode. #用于XSS防范的Encode 用户防范XSS的Encode主要有三种:Html ...

  4. vs2015新建web应用程序空模板和添加webapi的模板生成文件的比较

    文件名为全红色的,是使用webapi模板生成的新文件夹或文件

  5. Ddos 反射性防护 simple

    加固NTP服务: 1.通过Iptables配置只允许信任的IP,访问本机的UDP的123端口,修改配置文件执行echo "disable monitor" >> /et ...

  6. 已经不再使用的表为什么数据页还在SQLServer的内存缓存中

    1. 问题发现 在学习内存调优时,使用如下代码,查询目前内存缓冲区中生产数据库的每个对象缓存页计数 SELECT count(*)AS cached_pages_count ,name ,index_ ...

  7. laravel middleware

    当你使用larvel创建一个相对比较复杂的web网站时,往往你的routes文件就会变得很庞大.一般来说在开始网站编码之前,最好做一个整体规划,把这些route逻辑上划分为不同的group,每一个gr ...

  8. HTML5离线存储之webstorage

    html5在引入webStorage之前,主要用cookies. html5的webstorage 分两种:LocalStorage 和SessionStorage,两者的差别主要在生命周期不同. 1 ...

  9. 查询login什么时候过期

    -- Show all logins where the password is over 60 days old --查看60天没改密码的login SELECT name, LOGINPROPER ...

  10. 深圳云栖大会人工智能专场:探索视频+AI,玩转智能视频应用

    摘要: 在人工智能时代,AI技术是如何在各行业和领域真正的发挥应用和商业价值,带来产业变革才是关键.在3月28日深圳云栖大会的人工智能专场中,阿里云视频服务技术专家邹娟将带领大家探索熟悉的视频场景中, ...