图解 lvs 工作原理

blob.png

blob.png

blob.png

一.lvs 基本工作流程介绍

 如图1,ipvsadm定义lvs服务监听的ip和port,并发送给ipvs,而ipvs是工作在netfilter的input钩子上的程序,当input链中有目标ip属于lvs服务的请求报文时,ipvs就会修改该报文的链路,使其不进入用户空间而直接转到postrouting链上,并转发给其中一台real server,转发的方式由下文详述。

二.lvs 4种工作模式介绍

  • lvs-nat:

    多目标nat

    转发方式:如图2.1,Director将请求报文的目标IP修改RIP(步骤②),响应报文的源IP修改为VIP(步骤④)

    • 步骤③④中Director将响应报文源IP修改为VIP,所以RS网关需指向到DIP

    • 请求报文、响应报文都由Director转发,所以Director易成为性能瓶颈

  • lvs-dr

    direct routing(常用)

    转发方式:如图2.2,Director仅为请求报文 新封装一个MAC首部(步骤②),目标MAC为RIP的MAC,故DIP与RIP需要在同一物理网络以实现arp通信;并且RS的本地回环接口lo配置VIP,响应报文从lo的VIP发出,所以IP首部中的源IP就会是VIP

    • RS、Director都有VIP,所以需要确保请求报文只发到Director,常见方法为修改RS的内核参数arp_ignore、arp_announce设为1,使RS不响应其他主机的ARP通信

  • lvs-tun

    tunnel

    转发方式:如图2.3,Director在请求报文的原有IP上再封装一个IP首部,响应报文不经由Director,直接发到CIP,故多个RS可不在同一网络

    • 当RS不在同一网络时,很难保持会话一致性

  • lvs-fullnat

    转发方式:如图2.4,Director同时修改请求报文、响应报文的源IP和目标IP,

    • 请求报文修改后源IP是DIP,故DIP与RIP可以不在同一网络

原创文章,作者:N24_lizi1,如若转载,请注明出处:http://www.178linux.com/55919

(0)
N24_lizi1N24_lizi1
上一篇 2016-10-30 20:15
下一篇 2016-10-30 20:46

相关推荐

  • 进程和进程管理工具

    进程的相关定义以及相关工具的使用

    2017-12-17
  • 8-2 作业

    8-2作业     1.在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。 2.创建组sales,gid 3000,passwd:centos,sales admins:user2。…

    Linux干货 2016-08-05
  • linux基础知识1

    Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。文件管理工具:cp,mv,rmcp命令:copy源文件:目标文件单源复制:cp [OPTION]… [-T] SOURCE DEST多源复制:cp [OPTION]… SOURCE… DIRECTORYcp [OPTION]… -t DIRECTORY SOURCE…单源复制:如果DES…

    2018-03-12
  • 初识MySQL(一)

        数据库(DATABASES)      数据库是一个单位或是一个应用领域的通用数据处理系统,存储有企业和事业部门、团体和个人的有关数据的集合,该集合中数据是从全局观点出发建立的,按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不…

    Linux干货 2015-08-24
  • N28-第四周

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2017-12-30
  • DNS基础知识

    一、DNS介绍:   1、DNS: Domain  Name Service,域名解析服务;      部署方式为分布式部署,如图所示:        2、查询类型:     递归查询:仅发出一次请求,要求对方回复最终结果&nbs…

    Linux干货 2015-05-18

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-02 16:00

    内容格式把握得很好,原理部分可以加入一些自己的理解,加油!