一、lvs直接路由原理

由于图片还要一张一张上传,可以到下面网站下载我的word版本:

http://download.csdn.net/user/y0908105023

补充基础知识:

OSI(Open SystemInterconnection),开放式系统互联参考模型。是一个逻辑上的定义,一个规范,它把网络协议从逻辑上分为了七层。OSI七层模型是一种框架性的设计方法,建立七层模型的主要目的是为解决异种网络互联时所遇到的兼容性问题,其最主要的功能是帮助不同类型的主机实现数据传输,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通信。其中第三层网络层负责ip地址,第二层数据链路层负责mac地址。

下面开始说明lvs直接路由的原理:(我用顺序表示)

1、客户端cip访问一个数据包到一个vip,此数据包中包含该客户端的源ip地址和目标ip地址。

2、访问请求到达vip所在的路由中,于是路由器发送arp广播确定要使用的mac地址,这时只要Director回复,于是数据包就被发送到了Director(注意:在dr模式中,Director和realserver是在同一个网络中,它们拥有相同的虚拟vip,它们也是可以响应arp来被当做服务器被直接访问的,但是在RealServer上面配置了忽略请求的协议,所以只有Director会响应arp广播)。

3、当数据包到达Director时,Director将数据包转发给RealServer,源地址和目的地址不变,还是cip和vip,但是此时的mac地址为realserver的mac。

4、数据包通过mac发送到realserver中,realserver在响应信息直接发送给客户端。

5、arp广播协议:addressresolution protocol地址解析协议,ARP(Address ResolutionProtocol,地址解析协议)是获取物理地址的一个TCP/IP协议。某节点的IP地址的ARP请求被广播到网络上后,这个节点会收到确认其物理地址的应答,这样的数据包才能被传送出去。RARP(逆向ARP)经常在无盘工作站上使用,以获得它的逻辑IP地址。

二、lvs隧道模式

ip隧道可以用于将数据包从一个子网或虚拟lan转发到另一个子网或vlan,甚至在数据包必须要通过另一个网络或internet的情况下。隧道模式允许Director与集群节点放在不同的网络段。

下图是隧道模式的分析图。

搭建lvs隧道

lvs隧道图:

对dr服务器的操作:

ifconfig tunl0 192.168.181.10 broadcast192.168.181.10 netmask 255.255.255.255 up

route add -host 192.168.181.10 dev tunl0

ipvsadm -A -t 192.168.181.10:80 -s rr

ipvsadm -a -t 192.168.181.10:80 -r192.168.181.141:80 -i

ipvsadm -a -t 192.168.181.10:80 -r192.168.181.142:80 -i

对real server的操作:

ifconfig tunl0 192.168.181.10 broadcast192.168.181.10 netmask 255.255.255.255 up

route add -host 192.168.181.10 dev tunl0

echo "1">/proc/sys/net/ipv4/conf/tunl0/arp_ignore

echo "2">/proc/sys/net/ipv4/conf/tunl0/arp_announce

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

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

特别注意:

在你一直访问找不到服务器时,那么可能是因为rpfilter,当系统接收到一个ip包时,检查该ip包是否符合要求,不合要求的包会被丢掉。该技术就被叫做rpfilter,反向过滤技术,可以通过修改真实服务器realserver的sysctl.conf来解决:

,然后就可以访问了。

三、lvs隧道模式原理(ip隧道协议)

ip隧道是一个将ip报文封装到另一个ip报文的技术,这可以使得目标为一个ip地址的数据报文被封装和转发到另一个ip地址。ip隧道技术也成为ip封装技术。

lvs隧道模式类似于vpn的方式,使用网络分层的原理,在客户端发的数据包的基础上,封装一个新的ip头标记,根据调度算法,将封装后的数据包放松给realserver,realserver收到后,先把dr发过来的数据包的头给解开,还原其数据包原样,处理后直接返回给客户端。由于realserver需要将封装后的数据包还原,也就是将一个数据包变为另一个数据包,所以realserver也需要支持ip隧道协议。

参考网址:

http://www.linuxidc.com/Linux/2012-06/64065.htm

http://www.cnblogs.com/oldjiang/archive/2013/02/01/LVS-Nat-Tun-Dr.html

[置顶] lvs-tun隧道模式搭建的更多相关文章

  1. Lvs Tun隧道模式配置

    ######## TUN是IP Tunneling ,IP隧道的简称,它将调度器收到的IP数据包封装在一个新的IP数据包中,转交给应用服务器,然后实际服务器的返回数据会直接返回给用户. 工作原理: 用 ...

  2. 虚拟集群LVS及DR模式搭建笔记

    LVS(虚拟集群Linux Virtual Server) LVS-NAT:地址转换,数据包来回都要经过NAT转换,所以Director Server(即LVS服务器)将成为系统瓶颈.使用NAT模式将 ...

  3. LVS基于DR模式搭建负载均衡群集

    LVS -DR模式集群架构原理图

  4. LVS基于NAT模式搭建负载均衡群集

    LVS的基本架构图 负载均衡群集中,包括三个层次的组件: 1.第一层,负载调度器(BL) 前段至少有一个负载调度器(Load Balancer 或称为Director)负责响应并分发来自客户端的访问请 ...

  5. LVS DR模式搭建 keepalived lvs

    LVS DR模式搭建• 三台机器 • 分发器,也叫调度器(简写为dir)172.16.161.130 • rs1 172.16.161.131 • rs2 172.16.161.132 • vip 1 ...

  6. Linux centosVMware Linux集群架构LVS DR模式搭建、keepalived + LVS

    一.LVS DR模式搭建 三台机器 分发器,也叫调度器(简写为dir) davery :1.101 rs1 davery01:1.106 rs2 davery02:11.107 vip 133.200 ...

  7. LVS负载均衡IP隧道模式原理介绍以及配置实战

    LVS 基本工作原理 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 PREROUTING 链首先会接收到用户请求,判断目标 IP 确定是本机 IP,将数 ...

  8. Linux中级之lvs三个模式的图像补充(nat,dr,tun)

    负载均衡(Load Balance)集群提供了一种廉价.有效.透明的方法,来扩展网络设备和服务器的负载.带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. (1)单台计算机无法承受大规 ...

  9. LVS DR模式搭建、keepalived+lvs

    1.LVS DR模式搭建 条件: 即三台机器,在同一内网. 编辑脚本文件:/usr/local/sbin/lvs_dr.sh #! /bin/bashecho 1 > /proc/sys/net ...

随机推荐

  1. ubuntu 中c 语言编程(学习)

    ubuntu下c编程 c编程中相关文件后缀 .a    静态库(archive .c     C源代码(需要编译预处理) .h     C源代码头文件 .i      C源代码 (不需要编译预处理) ...

  2. Java中的深复制与浅复制

    1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不 复制它所引用的对象. ...

  3. ubuntu 安装openproj-1.4-2.noarch.rpm

    一 openproj是rpm包,ubuntu下需要转成deb安装.具体步骤1:下载:http://sourceforge.net/projects/openproj/2:安装alien sudo ap ...

  4. BZOJ 1458 士兵占领

    http://www.lydsy.com/JudgeOnline/problem.php?id=1458 题意:n x m的棋盘,k个位置不能放,每行和每列都有要求至少的士兵,求能否有最少的满足条件的 ...

  5. invesments 第三章 上

    1. How firms issue securities: 公司如何发行股票 A.       primary market: 新的股票,债券和其他的证券第一次发行的market B.        ...

  6. ##解决 ViewPager 调用 notifyDataSetChanged()无刷新:原理、解决办法##

    一.原理 转自:http://www.cnblogs.com/maoyu417/p/3740209.html 转载 http://www.67tgb.com/?p=624 最近项目结束,搞了一次代码分 ...

  7. poj 1001 求高精度幂

    本题的测试用例十分刁钻,必须要考虑到很多的细节问题,在这里给出一组测试用例及运行结果: 95.123 12 548815620517731830194541.899025343415715973535 ...

  8. HDOJ2553-N皇后问题(DFS)

      N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  9. [置顶] 九度笔记之 1434:今年暑假不AC

    题目1434:今年暑假不AC 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:307 解决:180 题目描述: “今年暑假不AC?”“是的.”“那你干什么呢?”“看世界杯呀,笨蛋!”“@# ...

  10. serialVersionUID作用

    serialVersionUID适用于Java的序列化机制.简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的.在进行反序列化时,JVM会把传来的字节流中的 ...