一、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. Android 中常用代码片段

    一:AsyncTask 的使用 (1)activity_main.xml <TextView android:id="@+id/tvInfo" android:layout_ ...

  2. 35+雪花Logos设计灵感

    快中秋节放假了,给大家分享一些雪花Logos设计灵感,陶冶下心情吧! 原文地址:http://www.goodfav.com/35-snowflake-logos-ideas-17134.html V ...

  3. 内存映射与DMA

    1.mmap系统调用的实现过程,该系统调用直接将设备内存映射到用户进程的地址空间. 2.用户空间内存如何映射到内核中(get_user_pages). 3.直接内存访问(DMA),他使得外设具有直接访 ...

  4. Paper.js - Paper.js

    Paper.js - Paper.js   Paper.js is an open source vector graphics scripting framework that runs on to ...

  5. Nginx日志文件配置与切割

    Nginx日志的指令主要有两条: log_format,设置日志的格式 access_log,指定日志文件的存放路径.格式和缓存大小 两条指令在Nginx配置文件中的位置可以在http{……..}之间 ...

  6. Struts2(四)——页面相关内容

    上篇博客总结了数据流转各个方面的内容,这篇重点说一下框架对于界面上知识. 一,说到页面,记得在总体介绍中,说到Struts2比Struts1的一方面优势就是它支持更多的视图技术(Freemarker, ...

  7. Android项目打包开启proguard的混淆优化带来的问题

    1.引入一个sdk以后.打包报错: [INFO] Unexpected error while evaluating instruction: [INFO]   Class       = [com/ ...

  8. lua实现多继承

    http://my.oschina.net/u/156466/blog/401576local class1 = {} function class1:new() local obj = {} set ...

  9. SSH框架-Caused by: org.hibernate.MappingException: column attribute may not be used together with <column> subelement

    昨晚修改了一些表关系,在相关的hbm.xml文件中做了改动,今天早上起来启动tomcat后,发现项目启动不了,控制台报错: 2015-6-14 9:09:42 org.apache.catalina. ...

  10. 如何彻底解决jsp页面中文乱码及数据库乱码

    最近自己闲做一个小项目,搭建环境框架SSH+MySQL数据库,遇到一个问题:jsp页面中文显示乱码,数据库插入数据和更新数据时中文也显示乱码,后来在网上找了许多解决方法,还是折腾了两天才把问题解决,下 ...