VRRP协议
Virtual Router Redundancy Protocol 虚拟路由器冗余协议。
Vrrp协议在linux上的实现(软件实现)是keepalived。
VRRP简单的讲,就是心跳信息。
主节点不断的向备用节点广播信息,信息包含自己的心跳和优先级。
不光如此,还可以在主节点上安装一个监控,来监控其他资源,如果这些资源运行正常,就可以给其他客户端发送心跳信息(包含优先级),一旦监控的资源出现问题了,就降低自己的优先级(降低后的优先级要低于备用节点的优先级,自己设置)。
这时候,备用节点可以在主节点未出现故障的时候,就抢占主节点的资源(工作在抢占模式的备用节点)。备用节点发现自己的优先级比主节点的优先级高,就触发一次选举。将主节点变为备用节点,备用节点变为主节点。
VIP
VIP:Virtual IP
VIP和接口相关,和路由器无关
两个路由节点上,不是只可以做一个虚拟路由器。
我们可以把两个内部接口作为一个虚拟路由器,把他们的外部接口做成一个虚拟路由器。
免费ARP广播:Grescious arp
每一台主机上,都会有网关的MAC是有缓存的。当主节点故障,备用节点开始使用的时候,客户机并不知道网关改变了。所以,备用节点开始使用的时候,就需要进行广播,告知所有的主机。就是Grescious arp广播。
这个广播自问自答,目的就是让全网都知道。
VRRP工作过程
Keepalived的VMAC有固定的:00-00-5e-00-01-VRID,每一个虚拟路由器都有一个虚拟MAC(VMAC)。
(1) 虚拟路由器中的路由器根据优先级选举出Master。Master路由器通过发送免费 ARP 报文,将自己的虚拟 MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务;
(2) Master 路由器周期性发送 VRRP报文,以公布其配置信息(优先级等)和工作状况;
(3) 如果 Master 路由器出现故障,虚拟路由器中的Backup 路由器将根据优先级重新选举新的 Master;
(4) 虚拟路由器状态切换时,Master路由器由一台设备切换为另外一台设备,新的 Master路由器只是简单地发送一个携带虚拟路由器的 MAC 地址和虚拟 IP地址信息的免费 ARP报文,这样就可以更新与它连接的主机或设备中的ARP 相关信息。网络中的主机感知不到Master路由器已经切换为另外一台设备。
(5) Backup 路由器的优先级高于 Master 路由器时,由Backup 路由器的工作方式(抢占方式和非抢占方式)决定是否重新选举 Master。
由此可见,为了保证Master路由器和Backup路由器能够协调工作,VRRP需要实现以下功能:
vMaster 路由器的选举;
vMaster 路由器状态的通告;
v同时,为了提高安全性,VRRP 还提供了认证功能;
抢占式和非抢占式
选举
认证方式
VRRP提供了三种认证方式:
1.无认证:不进行任何 VRRP 报文的合法性认证,不提供安全性保障。一般不要用这种。
2.简单字符认证:在一个有可能受到安全威胁的网络中,可以将认证方式设置为简单字符认证。发送 VRRP 报文的路由器将认证字填入到
VRRP 报文中,而收到 VRRP 报文的路由器会将收到的 VRRP 报文中的认证字和本地配置的认证字进行比较。如果认证字相同,则认为接收到的报文是合法的 VRRP 报文;否则认为接收到的报文是一个非法报文。
一般用的就是这种。
3. MD5 认证:在一个非常不安全的网络中,可以将认证方式设置为 MD5 认证。发送 VRRP 报文的路由器利用认证字和 MD5 算法对 VRRP 报文进行加密,加密后的报文保存在 Authentication Header(认证头)中。收到 VRRP报文的路由器会利用认证字解密报文,检查该报文的合法性。MD5比较麻烦,有一些路由设备不支持。
VRRP和IPVS
VRRP设计的目的是为了高可用IPVS服务,主要表现在:
1、用VRRP协议完成地址流动(IP转移)
2、为VIP地址所在的节点生成IPVS规则(在KeepAlived的配置文件中预先定义)
3、为IPVS集群的各RS做健康状态检查
4、基于脚本调用接口通过执行脚本完成脚本中定义的功能,进而影响集群事务(比如降低或提升优先级);
所以,VRRP主要用于高可用Director的IPVS的
原创文章,作者:m20-吴清玲,如若转载,请注明出处:http://www.178linux.com/56850