一、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. 浅谈HashMap的实现原理

    1.    HashMap概述: HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变 ...

  2. SQL Server - 聚集索引 <第六篇>

    聚集索引的叶子页存储的就是表的数据.因此,表行物理上按照聚集索引列排序,因为表数据只能有一种物理顺序,所以一个表只能有一个聚集索引. 当我们创建主键约束时,如果不存在聚集索引并且该索引没有被明确指定为 ...

  3. C# System.Uri类_获取Url的各种属性_文件名_参数_域名_端口等等

    System.Uri类用于处理Uri地址信息,常用到它的地方有,相对Uri地址转绝对Uri地址,获取Uri的某部分信息等等,可以说是一个非常有用的类. 一.属性 AbsolutePath 获取 URI ...

  4. JavaScript为unicode编码转换为中文

    代码laycode - v1.1 关于这样的数据转换为中文问题,常用的以下方法. 1. eval解析或new Function("'+ str +'")()  str = eval ...

  5. 弄明白Android 接口回调机制

    以前对于这个机制理解不够深刻,现在重新整理下思路. 一.建模 我理解的接口回调就是,我这个类实现了一个接口里的方法doSomething,然后注册到你这里,然后我就去做别的事情去了,你在某个触发的时机 ...

  6. 学DSP(二):目标芯片28335,GO!

    28335开发板有了,之前没有用过TI的片子,还是先看看这个东西是啥东西. 进入28335的中文网页: http://www.ti.com.cn/product/cn/tms320f28335    ...

  7. VS Visual Studio connection(); Microsoft Visulal Studio vNext & Azure

    http://www.visualstudio.com/connect-event-vs

  8. Implement Queue using Stacks 解答

    Question Implement the following operations of a queue using stacks. push(x) -- Push element x to th ...

  9. tomcat https 未测试成功的版本

  10. 浏览器缓存相关http头

    近期看雅虎黄金34条,学习下优化站点性能的方法. 当中有一条:"为文件头指定Expires或Cache-Control",详细来说指对于静态内容:设置文件头过期时间Expires的 ...