来说说 VRRP 协议?

简介: keepalived 是一个基于 VRRP 协议来实现的服务高可用方案,从而可以避免 IP 单点故障。一般与其他负载均衡技术,如 LVS,Nginx 等一起来工作来达到集群高可用的目的 今天阿粉来说说 VRRP 协议

VRRP 简介(转发机制)

  1. VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)将可以承担网关功能的路由器加入到备份组中,形成一台虚拟路由器,由 VRRP 的选举机制决定哪台路由器承担转发任务,局域网内的主机只需将虚拟路由器配置为缺省网关
  2. VRRP 是一种选择协议,它可以把一个虚拟路由器的责任动态分配到局域网上的 VRRP 路由器中的一台。控制虚拟路由器 IP 地址的 VRRP 路由器称为主路由器,它负责转发数据包到这些虚拟 IP 地址。一旦主路由器不可用,这种选择过程就提供了动态的故障转移机制,这就允许虚拟路由器的 IP 地址可以作为终端主机的默认第一跳路由器 3.VRRP是一种容错协议,在提高可靠性的同时,简化了主机的配置。在具有多播或广播能力的局域网(如以太网)中,借助 VRRP 能在某台设备出现故障时仍然提供高可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,而无需修改动态路由协议、路由发现协议等配置信息
  3. VRRP 协议的实现有 VRRPv2 和 VRRPv3 两个版本, VRRPv2 基于 IPv4 , VRRPv3 基于 IPv6
  4. VRRP 路由器:所有运行 VRRP 协议的路由器就叫做 VRRP 路由器
  5. VRRP 备份组:多台路由器被分到一个组中,在这个组中选举出一台主路由器,其他作为备份路由器。平常时候都是主路由器一个工作,备份路由器空闲,当主路由器故障后,从多台备份路由器中选举出一台替代故障的主路由器工作。这一组中的路由器构成了一个备份组。
  6. 虚拟路由器:虚拟路由器是 VRRP 备份组中所有路由器的集合,它是一个逻辑概念,并不是正真存在的。从备份组外面看备份组中的路由器,感觉组中的所有路由器就像一个一样,你可以理解为在一个组中:主路由器 + 所有备份路由器=虚拟路由器。虚拟路由器有一个虚拟的 IP 地址和 MAC 地址。如果虚拟 IP 和备份组中的某台路由器的 IP 相同的话,那么这台路由器称为 IP 地址拥有者,并且作为备份组中的主路由器

VRRP 状态

VRRP 路由器在运行过程中有三种状态:

  • Initialize 状态:系统启动后就进入 Initialize ,此状态下路由器不对 VRRP 报文做任何处处理,可以理解为初始化
  • Master 状态:路由器会发送 VRRP 通告,发送免费 ARP 报文。
  • Backup状态:接受 VRRP 通告。

一般主路由器处于 Master 状态,备份路由器处于 Backup 状态。

VRRP工作过程如下:

  1. 路由器使用 VRRP 功能后,会根据优先级确定自己在备份组中的角色。优先级高的路由器成为 Master 路由器,优先级低的成为 Backup 路由器。Master 路由器定期发送 VRRP 通告报文,通知备份组内的其他设备自己工作正常;Backup 路由器则启动定时器等待通告报文的到来。
  2. 在抢占方式下,当 Backup 路由器收到 VRRP 通告报文后,会将自己的优先级与通告报 文中的优先级进行比较。如果大于通告报文中的优先级,则成为 Master 路由器;否则将保持 Backup 状态
  3. 在非抢占方式下,只要 Master 路由器没有出现故障,备份组中的路由器始终保持 Master 或 Backup 状态,Backup 路由器即使随后被配置了更高的优先级也不会成为 Master 路由器
  4. 如果 Backup 路由器的定时器超时后仍未收到 Master 路由器发送来的 VRRP 通告报文,则认为 Master 路由器已经无法正常工作,此时 Backup 路由器会认为自己是 Master 路由器,并对外发送 VRRP 通告报文。备份组内的路由器根据优先级选举出 Master 路由器,承担报文的转发功能

在项目中的体现

119.jpg

如图,我们能够看到前端在请求后端时,我们并不是让它直接将请求打到实际的服务器上面来,而是去请求虚拟 IP ,此时如果 master 服务器没有出现故障的话,就会由它将前端的请求打到真实的服务器上面去

如果 master 不能工作的话,就会由 backup 服务器将前端请求打到真实的服务器上面(阿粉在图中拿虚线来表示当 master 宕掉时,由 backup 来负责转发请求),这样就实现了服务高可用

以上,感谢你的阅读哇~

相关文章
突然yml文件不显示绿叶子问题
记一次解决突然yml文件不显示绿叶子问题,原来好好的,今天打开突然就坏了,奇了怪了。。。
417 0
|
缓存 移动开发 JavaScript
uniapp H5 公众号微信自定义分享qq,微信带图片标题内容
uniapp H5 公众号微信自定义分享qq,微信带图片标题内容
1469 0
uniapp H5 公众号微信自定义分享qq,微信带图片标题内容
|
网络架构 Docker 容器
Docker的网络模式和如何跨主机通信
Docker有四种网络模式:Bridge、Host、Container、None,一般常用的是前面两种,默认的是第一种,不安全的是第二种,以下介绍一下四种网络模式,并重点介绍一下如何配置自己的跨主机通信网络。
4473 0
|
安全 数据安全/隐私保护 Python
基于Flask框架实现一个简易后台用户登录系统
基于Flask框架实现一个简易后台用户登录系统
377 1
|
8月前
|
存储 安全 Linux
CentOS 7.9系统备份:每日定期发送最新备份文件到另一台服务器。
注意,这个解决方案忽略了很多细节,例如错误处理和通知、备份版本控制、循环处理旧的备份文件等等。此外,你也应该尽量保持源服务器和目标服务器之间快速,稳定且安全的网络连接,并且目标服务器应该有足够的空间用于存放每天的备份文件。如果你需要更高级的备份解决方案,可能需要考虑一下使用专门的备份工具或者服务。
376 18
|
负载均衡 网络协议 安全
【计算机网络】虚拟路由冗余(VRRP)协议原理与配置
【计算机网络】虚拟路由冗余(VRRP)协议原理与配置
635 0
|
存储 JSON 监控
开源日志分析Logstash
【10月更文挑战第22天】
286 1
|
Kubernetes 网络安全 网络架构
Docker不同宿主机网络打通
【8月更文挑战第20天】在不同宿主机上打通Docker网络可通过多种方法:1) 使用Docker原生的Overlay或Macvlan网络驱动实现跨主机通信,如Overlay网络利用VXLAN技术连接多台宿主机,Macvlan则让容器直接接入物理网络;2) 利用第三方工具如Weave Net或Flannel构建虚拟网络,Weave Net简化网络配置,Flannel则适用于Kubernetes环境并通过UDP封装数据包实现通信。实施前需确保宿主机间网络畅通且防火墙设置适当。
546 2
|
NoSQL Redis
Redis性能优化问题之为什么配置为 appendfsync everysec 的 AOF 也可能导致 Redis 延迟变大
Redis性能优化问题之为什么配置为 appendfsync everysec 的 AOF 也可能导致 Redis 延迟变大
|
JavaScript 前端开发
【JS】获取当前时间,且格式为yyyy-MM-dd hh:mm:ss
【JS】获取当前时间,且格式为yyyy-MM-dd hh:mm:ss
445 0