基于VRRP协议的Keepalived原理详解

一、VRRP概述
随着Internet的发展,人们对网络的可靠性的要求越来越高。对于局域网用户来说,能够时刻与外部网络保持联系是非常重要的。通常情况下,内部网络中的所有主机都设置一条相同的缺省路由,指向出口网关,实现主机与外部网络的通信。局域网客户端判定哪个路由器应该为其到达目标主机的下一跳网关的方式有动态及静态决策两种方式,其中动态路由发现方式有如下几种:

  • Proxy ARP —— 客户端使用ARP协议获取其想要到达的目标,而后,由某路由以其MAC地址响应此ARP请求;
  • Routing Protocol —— 客户端监听动态路由更新(如通过RIP或OSPF协议)并以之重建自己的路由表;
  • ICMP IRDP (Router Discovery Protocol) 客户端 —— 客户端主机运行一个ICMP路由发现客户端程序;

动态路由发现协议的不足之处在于它会导致在客户端引起一定的配置和处理方面的开销,并且,如果路由器故障,切换至其它路由器的过程会比较慢。解决此类问题的一个方案是为客户端静态配置默认路由设备,这大大简化了客户端的处理过程,但也会带来单点故障类的题。当出口网关发生故障时,主机与外部网络的通信就会中断,LAN客户端仅能实现本地通信。
VRRP诞生
IETF(Internet Engineering Task Force)推出了VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议,来解决局域网主机访问外部网络的可靠性问题。VRRP可以通过在一个路由器组(一个VRRP组)之间共享一个虚拟IP(VIP),此时仅需要客户端以VIP作为其默认网关即可。可以认为VRRP是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个MASTER和多个BACKUP,MASTER上有一个对外提供服务的VIP(该路由器所在局域网内其他机器的默认路由为该VIP),MASTER会发组播,当BACKUP收不到vrrp包时就认为MASTER宕掉了,这时就需要根据VRRP的优先级来选举一个BACKUP当MASTER,及时将业务切换到其它设备,从而保持通讯的连续性和可靠性,消除了静态路由配置的单点故障。VRRP协议对应的是RFC3768,该协议仅适用于IPv4。
基本概念
这里写图片描述
工作原理
1、一个VRRP路由器有唯一的标识:
VRID,范围为0-255该路由器对外表现为唯一的虚拟MAC地址,地址的格式为00-00-5E- 00-01-[VRID]主控路由器负责对ARP请求用该MAC地址做应答这样,无论如何切换,保证给终端设备的是唯一一致的IP和MAC地址,减少了切换对终端设备的影响。
2、VRRP控制报文只有一种:
VRRP通告(advertisement)它使用IP多播数据包进行封装,组地址为224.0.0.18,发布范围只限于同一局域网内。这保证了VRID在不同网络中可以重复使用。为了减少网络带宽消耗,只有主控路由器才可以周期性的发送VRRP通告报文,备份路由器在连续三个通告间隔内收不到VRRP或收到优先级为0的通告则启动新的一轮VRRP选举。
3、在VRRP路由器组中按优先级选举主控路由器:
VRRP协议中优先级范围是0-255。若VRRP路由器的IP地址和虚拟路由器的接口IP地址相同,则称该虚拟路由器作VRRP组中的IP地址所有者。IP地址所有者自动具有最高优先级:255。优先级0一般在IP地址所有者主动放弃主控者角色时使用。可配置的优先级范围为1-254,优先级的配置原则可以依据链路的速度、成本、路由器性能和可靠性以及其它管理策略来设定。在主控路由器的选举中,高优先级的虚拟路由器获胜,因此,如果在VRRP组中有IP地址所有者,则它总是作为主控路由的角色出现。对于相同优先级的候选路由器,则按照IP地址大小顺序选举。VRRP还提供了优先级抢占策略,如果配置了该策略,高优先级的备份路由器便会剥夺当前低优先级的主控路由器而成为新的主控路由器。
4、为了保证VRRP协议的安全性,提供了两种安全认证措施:
明文认证和IP头认证明文认证方式要求:在加入一个VRRP路由器组时,必须同时提供相同的VRID和明文密码适合于避免在局域网内的配置错误,但不能防止通过网络监听方式获得密码IP头认证的方式提供了更高的安全性,能够防止报文重放和修改等攻击
VRRP的优势:

  • 负载共享:允许来自LAN客户端的流量由多个路由器设备所共享;
  • 多VRRP组:在一个路由器物理接口上可配置多达255个VRRP组;
  • 抢占:在master故障时允许优先级更高的backup成为master;
  • 通告协议:使用IANA所指定的组播地址224.0.0.18进行VRRP通告;
  • VRRP追踪:基于接口状态来改变其VRRP优先级来确定最佳的VRRP路由器成为master;
  • 冗余:可以使用多个路由器设备作为LAN客户端的默认网关,大大降低了默认网关成为单点故障的可能性;
  • 多IP地址:基于接口别名在同一个物理接口上配置多个IP地址,从而支持在同一个物理接口上接入多个子网;

二、Keepalived详解
Keepalived是基于VRRP协议实现的保证集群高可用的一个服务软件,运行在LVS之上,它的主要功能是实现真机的故障隔离及负载均衡器间的失败切换FailOver,可以防止单点故障。LVS结合keepalived,就实现了3层、4层、5/7层交换的功能,下面摘录来自官网的一段描述http://www.keepalived.org/
The main goal of the keepalived project is to add a strong & robust keepalive facility to the Linux Virtual Server project. This project is written in C with multilayer TCP/IP stack checks. Keepalived implements a framework based on three family checks : Layer3, Layer4 & Layer5/7. This framework gives the daemon the ability

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值