LVS的默认模型:默认模型DR


DR模型原理图-->


在讲DR模型要点之前,需要了解网络的相关知识:
  1. 接收的报文拆解顺序:帧(MAC)-->数据包(IP)-->数据报文(port)
  2. ARP是广播,即只能在同一个局域网之内,不能穿过路由设备,作用是通告自己的MAC和请求目标IP的MAC

DR模型要点-->

  • Real Server修改内核参数,忽略别人的ARP请求,同时禁止自己ARP通告,从而避免了外部的服务请求包转发到Real Server:
  1. echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
  2. echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  3. echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  4. echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

arp_ignore=1的意思是,仅当ARP广播查询的IP是进口网卡IP的时候,才予以回应,因为VIP不是,所以不回应。

arp_announce=2的意思是,对查询目标通告本地最合适的IP地址.那么何为最合适的IP地址.即:本地某个接口的IP地址和这个查询目标处于同一个子网内;如果这个条件不成立,则通告能接收到此ARP查询数据包的接口网卡MAC.
那么我们可以得到如下结论:
依据arp_ignore = 1,我们可以防止来自client的数据包被网关设备直接发往real server,因此,所有的client请求都到了DR上
依据arp_announce = 2,我们可以让DR获取到real server的DIP所在网卡的MAC.因此,DR就可以将目的MAC修改为real server的MAC,从而将数据包转发给Real server
  • 在Real Server的lo上添加VIP,但是VIP不能添加到RIP网卡上,原因在于内核的ARP限制是在网卡上限制的
  • 在Real Server上先修改内核参数,再配置IP地址,原因在于如果先配置IP,ARP就直接通告出去了
  • RIP和DIP必须在一个网段,原因在于服务请求的报文,它的目标IP和源IP都不能更改,所以只能通过更改目标MAC地址来进行转发,不在一个网段,怎么知晓Real Server的MAC,不知道MAC,就无从修改网络服务报文的目标MAC,从而无法转发
  • Real Server的网关必须指向RIP同一网段的另一个路由设备的lan口,从而发包到互联网上

负载均衡集群之LVS的DR模型详解(Diretor Routing)的更多相关文章

  1. 负载均衡集群之LVS算法和模型

    LVS-->Linux Virtual Server 实现算法-->静态/动态,共10种 静态算法:     rr(round robin):         解析:轮叫算法,即0-9循环 ...

  2. LVS搭建负载均衡集群(二)——DR模式

    (1).DR模式和TUN模式介绍 Direct Routing(直接路由):director分配请求到不同的real server.real server处理请求后直接回应给用户,这样director ...

  3. 负载均衡集群之LVS配置命令

    ipvs/ipvsadm 添加集群服务--> ipvsadm -A|E -t|u|f VIP[:Port] -s scheduler [-p timeout] [-O] [-M netmask] ...

  4. 负载均衡集群介绍 LVS介绍 LVS调度算法 LVS NAT模式搭建

    LVS BAT模式搭建 更改主机名: hostnamectl set-hostname centos7-three bash 准备工作 • 三台机器 • 分发器,也叫调度器(简写为dir) • 内网: ...

  5. 负载均衡集群之LVS持久链接

    原理--> 通过构建一个hash表,利用CIP与RS的对应关系,来保持来自一个CIP的各种服务都走同一个RS 目的--> 保持持久链接的同时,将多个服务合并起来,例如http和https ...

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

    LB(Load balance)负载均衡集群 LVS-[NAT+DR]单实例实验 LVS+keeplived实验 LVS是Linux Virtual Server的简写,意即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. Keepalived+LVS(dr)高可用负载均衡集群的实现

    一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+lvs双主高可用负载均衡集群及LAMP应用keepalived-1.2 ...

  9. LVS负载均衡集群--DR模式部署

    目录: 一.LVS-DR数据包流向分析 二.DR 模式的特点 三.LVS-DR中的ARP问题 四.DR模式 LVS负载均衡群集部署 一.LVS-DR数据包流向分析 1.为方便进行原理分析,将clien ...

随机推荐

  1. LeetCode_Palindrome Partitioning II

    Given a string s, partition s such that every substring of the partition is a palindrome. Return the ...

  2. Qt基于FFmpeg播放本地 H.264(H264)文件(灿哥哥的博客)

    最近在弄H264的硬件编解码,基于DM3730,但是为了调试方便,在小红帽上用FFmpeg实现了H264的软件编解码.现在弄了一个Windows的例子,给需要的同学参考一下,如果大家觉得有帮助,可以小 ...

  3. DLNA架构在机顶盒上播放云存储文件的实现

    DLNA 架构在机顶盒上播放云存储文件的实现   摘要: 随着越来越多的数码设备,音像设备等对 UPNP 协议的支持和普及,业界对多媒体内容提供服务的需求越越来越强烈,为了实现遵循 UPNP 协议和  ...

  4. 转:C# 定时任务实现

    原文地址:http://blog.csdn.net/Netself/article/details/5766398 C#实现的定时任务类,核心代码如下: 以下代码可直接封装成 TimerTask.dl ...

  5. 【剑指offer】面试题31:连续子数组的最大和

    题目: 在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2, ...

  6. QQ聊天界面的布局和设计(IOS篇)-第一季

    我写的源文件整个工程会再第二季中发上来~,存在百度网盘, 感兴趣的童鞋, 可以关注我的博客更新,到时自己去下载~.喵~~~ QQChat Layout - 第一季 一.准备工作 1.将假数据messa ...

  7. SQL生成随机字符串

    1.SQLserve生成随机字符串 SELECT replace(newid(), '-', '')

  8. nyoj 234 吃土豆

    描述 Bean-eating * grid. Now you want to eat the beans and collect the qualities, but everyone must ob ...

  9. C#模拟网站用户登录

    我们在写灌水机器人.抓资源机器人和Web网游辅助工具的时候第一步要实现的就是用户登录.那么怎么用C#来模拟一个用户的登录拉?要实现用户的登录,那么首先就必须要了解一般网站中是怎么判断用户是否登录的. ...

  10. 一个简单的面试题 很多人也会懵 i++ 和++i的区别

    以下分别输出i的值分别为多少 NSInteger i = 0 ; NSLog(@"%ld",i++); NSLog(@"%ld",i++); NSLog(@&q ...