负载均衡技术分析.

上传人:我** 文档编号:114449160 上传时间:2019-11-11 格式:DOCX 页数:62 大小:558.43KB
返回 下载 相关 举报
负载均衡技术分析._第1页
第1页 / 共62页
负载均衡技术分析._第2页
第2页 / 共62页
负载均衡技术分析._第3页
第3页 / 共62页
负载均衡技术分析._第4页
第4页 / 共62页
负载均衡技术分析._第5页
第5页 / 共62页
点击查看更多>>
资源描述

《负载均衡技术分析.》由会员分享,可在线阅读,更多相关《负载均衡技术分析.(62页珍藏版)》请在金锄头文库上搜索。

1、高可用方案1. Keepalived详解1.1. VRRP vs Heartbeat 1 Keepalived使用更简单:从安装、配置、使用、维护等角度上对比,Keepalived都比Heartbeat要简单得多,尤其是Heartbeat2.1.4后拆分成3个子项目,安装、配置、使用都比较复杂,尤其是出问题的时候,都不知道具体是哪个子系统出问题了;而Keepalived只有1个安装文件、1个配置文件,配置文件也简单很多; 2 Heartbeat功能更强大:Heartbeat虽然复杂,但功能更强大,配套工具更全,适合做大型集群管理,而Keepalived主要用于集群倒换,基本没有管理功能; 3

2、协议不同:Keepalived使用VRRP协议进行通信和选举,Heartbeat使用心跳进行通信和选举;Heartbeat除了走网络外,还可以通过串口通信,貌似更可靠; 4 使用方式基本类似:如果要基于两者设计高可用方案,最终都要根据业务需要写自定义的脚本,Keepalived的脚本没有任何约束,随便怎么写都可以;Heartbeat的脚本有约束,即要支持service start/stop/restart这种方式,而且Heartbeart提供了很多默认脚本,简单的绑定ip,启动apache等操作都已经有了; 使用建议:优先使用Keepalived,当Keepalived不够用的时候才选择Hea

3、rtbeat1.2. VRRP 协议简介1.1.1 问题描述VRRP(Virtual Router Redundancy Protocol)-虚拟路由器冗余协议,其最新技术标准是RFC3768。为什么要用VRRP呢,主要是为了实现数据链路层互通设备的冗余备份功能,我们来看图一:通过上图可以看到,常规的局域网一般都是多个终端接到交换机上,然后通过单独的出口路由器连接到Internet,这时候问题来了,如果这个出口路由器坏掉了,那么整个上行的流量就会全部断掉,这就是传说中的单点故障。现在,这个网络一共有两个Internet出口,这样任何一个出口路由器出现故障都不会导致终端用户的上行流量断掉。另外一

4、个问题出现了,我们怎么让终端PC知道局域网中有两个出口路由器,并在其中一个出现故障后自动选择另外一个呢?可采用的方案包括让终端PC运行动态路由协议,比如RIP、OSPF,或者ICMP router Discovery client(DISC),或者指定一条静态缺省路由。但是这三种实现方法都有其劣势及不可行之处,我们来具体分析一下。首先对于在每一个终端PC上运行动态路由协议来讲,几乎是不可能的,这其中牵涉到网管的技术能力和日常维护、安全性问题、以及某些终端平台不支持动态路由协议,比如我们常用的XP、Windows7都不支持,而windows Server系列OS支持。假定我们在终端PC上部署了动

5、态路由协议,那么每一个终端用户都会遇到下面这种情况:10086:尊敬的用户您好,申报RIP故障请按1,申报OSPF故障请按2,申报ISIS故障请按3.用户:( o )啊!我家是OSPF,按2。10086:您好,您申报的故障是OSPF,请进一步选择,OSPF邻居无法建立请按1,OSPF密钥不对请按2,链路状态数据库异常请按3,路由表错误请按4.用户:( o )啊!然后吐血身亡.所以说,N多现实问题和困难导致在终端PC上部署动态路由协议具有不可行性。那么对于在终端PC上部署DISC等邻居或路由器发现协议呢?也存在种种问题,例如在网络内存在大量主机,每一台都需要运行DISC,除了增加主机的处理负担外

6、,也会导致协议收敛缓慢,从而不能及时发现不可用邻居路由器,产生路由黑洞,这是不可接受的。现在只剩下在终端PC上配置静态缺省路由了(其具体表现形式一般是设置网关),这是几乎每一个IP平台都支持的配置功能,即使是一部IP电话机,根据这个思路,我们在终端上配置多个默认网关即可实现路由备份了,但是存在以下两个问题:1.对于下行设备是PC来讲,配置了多个默认网关之后,其中一个会作为活动默认网关,其它的作为备份默认网关,其按照下列过程执行流量转发和失效网关检测:当TCP/IP在通过活动默认网关向某个目标IP地址进行TCP通信时,如果失败的尝试次数达到TcpMaxDataRetransmissions注册表

7、值(默认为5)的一半(即3次)还没有收到响应,TCP/IP将到达该目标IP地址的通信改为使用列表中的下一默认网关,这一步是通过更改该远程IP地址的路由缓存项(Route Cache Entry,RCE)来实现的,从而使用列表中的下一个默认网关来作为下一跳地址。其中RCE是路由表中的一个条目,用于存储目的地的下一跳IP地址。当超过25%的TCP连接转向下一默认网关时,TCP/IP将活动默认网关修改为这些连接当前使用的默认网关。如果此时原始默认网关从故障中回复,TCP/IP将继续使用当前的活动默认网关,而不会转移到原始默认网关,除非重启计算机。如果当前的活动默认网关也出现故障,那么TCP/IP就会

8、继续尝试使用列表中的下一个默认网关,在尝试完整个列表后将返回到列表的开始,又从第一个默认网关开始进行尝试。死网关检测仅监视TCP流量,如果其他类型的流量连接失败,不会切换默认网关。另外TCP是端到端的协议,因此即使当前默认网关完全正常,本地计算机的TCP通信失败也可能会导致切换默认网关。当不同网络接口所连接的网络之间没有连接性时(如一个网络接口连接到Internet,而一个网络接口连接到内部网络),如果在多个网络接口上同时配置默认网关,在活动默认网关出现故障导致切换默认网关时,就可能会引起连接性故障。比如活动默认网关为Internet连接,当它出现问题时,此时默认网关切换为内部连接,此时,本地

9、计算机将无法再访问位于Internet连接上的主机。对于这种情况,微软建议使用 route add 来添加对应目的网络的匹配路由,而不是设置多个默认网关,这其实就是最长匹配原则,精确路由优先于缺省路由。2对于下行设备是路由器的情况,其不会切换默认路由,只会按照配置好的缺省路由优先级进行流量转发,从而导致路由黑洞。结合上面两个原因,在网络出口路由器的下行设备上配置缺省路由的方法也不可行。综上所述,要想消除单点故障,又同时实现下行设备在故障发生时的流量无障碍转发,以上的三个方法均不可行,所以人们开发出了一种全新的协议:VRRP,这种协议无需下行设备与出口路由器进行交互性操作,却完全实现了网络出口的

10、冗余备份,下一节,我们就来详细讨论下VRRP的基本原理及实现过程。1.1.1 VRRP基本概念VRRP路由器:运行VRRP协议一个或多个实例的路由器虚拟路由器:由一个Master路由器和多个Backup路由器组成。其中,无论Master路由器还是Backup路由器都是一台VRRP路由器,下行设备将虚拟路由器当做默认网关。VRID:虚拟路由器标识,在同一个VRRP组内的路由器必须有相同的VRID,其实VRID就相当于一个公司的名称,每个员工介绍自己时都要包含公司名称,表明自己是公司的一员,同样的道理,VRID表明了这个路由器属于这个VRRP组。Master路由器:虚拟路由器中承担流量转发任务的路

11、由器Backup路由器:当一个虚拟路由器中的Master路由器出现故障时,能够代替Master路由器工作的路由器虚拟IP地址:虚拟路由器的IP地址,一个虚拟路由器可以拥有一个或多个虚拟IP地址。IP地址拥有者:接口IP和虚拟路由器IP地址相同的路由器就叫做IP地址拥有者。主IP地址:从物理接口设置的IP地址中选择,一个选择规则是总是选用第一个IP地址,VRRP通告报文总是用主IP地址作为该报文IP包头的源IP。虚拟MAC地址:组成方式是00-00-5E-00-01-VRID,前三个字节00-00-5E是IANA组织分配的,接下来的两个字节00-01是为VRRP协议指定的,最后的VRID是虚拟路

12、由器标识,取值范围1,2551.1.2 VRRP报文组成下面我们来看VRRP报文的具体组成:图三(VRRP报文格式,取自RFC3768)具体字段含义:Version:VRRP协议版本号,RFC3768定义了版本2.Type:该字段指明了VRRP报文的类型,RFC3768只定义了一种VRRP报文,那就是VRRP通告报文,所以该字段总是置为1,若收到的VRRP通告报文拥有非1的类型值,那么会被丢弃。Virtual Rtr ID:也就是我们上面介绍过的VRID,一个VRID唯一地标识了一个虚拟路由器,取值范围是1,255,所以一台路由器的接口可以同时运行最多255个VRRP实例,此字段没有缺省值,必

13、须人为设定。Priority:优先级,在一个虚拟路由器中用来选取Master路由器和Backup路由器,值越大表明优先级越高,此字段共有8个bit,取值范围1,254,若没有人为指定,缺省值是100。其中,VRRP协议会将IP地址拥有者路由器的该字段永远设置为255,若人为指定为其它值,也不会影响VRRP协议的默认行为,即IP地址拥有者路由器的该字段总是255。另外,此字段设置为0会出现在下面这种情形中,当Master路由器出现故障后,它会立刻发送一个Priority置0的VRRP通告报文,当Backup路由器收到此通告报文后,会等待Skew time时间,然后将自己切换为Master路由器,

14、其中Skew time=(256-Backup路由器的优先级)/256,单位为秒,例如若Backup路由器的优先级为100,那么Skew time=156/256=0.609秒,对于主路由器来说,Skew time并没有实际意义,虽然cisco的路由器也会计算并显示出来。Count IP Addrs:VRRP通告报文中包含的IP地址数量,这个字段其实就是为一个VRRP虚拟路由器所分配的IP地址的数量,我们来看一个cisco的实际例子:配置如下:interface Ethernet1/0ip address 192.168.10.102 255.255.255.0duplex halfvrrp

15、1 ip 192.168.10.52vrrp 1 ip 192.168.10.51 secondaryvrrp 1 ip 192.168.10.53 secondaryend我们来看一下上面的配置在封装成VRRP通告报文的时候,是如何进行的,如下图:图四(VRRP报文的抓包分析)大家可以看到,VRRP通告报文中的Count IP Addrs字段的值为3,这是因为我们配置了3个虚拟IP地址,另外,下面的IP Address字段也按照我们配置虚拟IP的顺序进行了封装。Auth Type:认证类型字段,是一个8位的无符号整数,一个虚拟路由器只能使用一种认证类型,如果Backup路由器收到的通告报文中认证类型字段是未知的或和本地配置的不匹配,那么它将丢弃该数据包。值得注意的是,在RFC2338中为VRRP定义了3种认证类型:无认证、明文认证、MD5认证,但是在后续的实践中发现,这些手段无法提供行之有效的安全性,并且还会导致多个Master路由器的问题,所以在最新的VRRP标准:RFC3768中已经去掉了所有的认证类型。目前认证类型字段的定义如下:0 无认证,此时下面的Authentication Data字段将会被置为全0,接收到的路由器也会忽略此字段。1 保留,是为了向前一个版本的RFC2338提供兼容性2 保留,是为了向前一个版本的RFC2338提供兼容性Adver Int::此

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号