路由实现了不同子网之间的数据通信,目前比较常用的路由配置方法大概分为两种: 动态路由 (利用RIP、OSPF进行动态学习)和 静态路由 (对终端设备静态配置路由)。动态路由可以通过学习的方式获取路由表,避免了静态路由需要手动配置以及后续变更的繁琐,但同时需要额外的占用线路带宽和CPU的处理时间。VRRP技术是在静态路由上用于在目标机器不可达之后的路由能够自动变更的一种实现手段。

二、VRRP

2.1、简介

VRRP(Virtual Router Redundancy Protocol),即虚拟路由冗余协议,它是为了避免路由器出现单点故障的一种容错协议。VRRP协议的实现有 VRRPv2 和 VRRPv3 两个版本, VRRPv2 基于 IPv4 , VRRPv3 基于 IPv6 。相关RFC文件为: RFC2338 - Virtual Router Redundancy Protocol , RFC3768 - Virtual Router Redundancy Protocol (VRRP) , RFC5798 - Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6

2.2、基础概念

  • VIP :Virtual IP, 即虚拟IP,是一个不与特定计算机或网络接口卡(NIC)相连的IP地址;
  • VRRP路由器 :运行VRRP协议的路由器(或设备),它可能属于一个或多个虚拟路由器;
  • Master路由器 :承担转发报文任务的VRRP设备;
  • Backup路由器 :一组没有担转发任务的VRRP设备,当Master设备出现故障时,它们将通过竞选成为新的Master设备;
  • 虚拟路由器 :由一组 VRRP路由器 组成,抽象成一个虚拟的路由器。它拥有一个 虚拟路由器标识符(VRID) 和一个(或多个) VIP ;
  • 虚拟MAC地址 :即虚拟路由器根据VRID生成的MAC地址,一个虚拟路由器拥有一个虚拟MAC地址,当虚拟路由器回应ARP请求时,回复虚拟MAC地址,而不是接口的真实MAC地址,格式为: 00-00-5E-00-01-{VRID}(VRRP for IPv4) , 00-00-5E-00-02-{VRID}(VRRP for IPv6) , 从VRID的用途可以看出VRID的取值范围是0~255
  • IP地址拥有者(IP Address Owner) :如果一个 VRRP路由器 将 VIP 作为真实的接口地址,则该设备是IP地址拥有者,当这台设备正常工作时,它会响应 目的地址 是VIP的报文,如ping、TCP连接等;
  • 优先级(Priority) :用来标识虚拟路由器中各成员路由器的优先级, 虚拟路由器 根据优先级选举出 Master 和 Backup ;

2.3、报文

VRRP协议报文用来将 Master设备 的 优先级 和 状态 通告给同一备份组的所有 Backup设备 。VRRP协议报文封装在IP报文中,发送到分配给VRRP的IP组播地址。

  • IP报文头中,源地址为发送报文接口的主IP地址(不是虚拟IP地址),目的地址是224.0.0.18,TTL是255,协议号是112;
  • IP报文头中,TTL必须为255,当VRRP路由器收到TTL不等于255的VRRP协议报文后,必须丢弃;

2.3.1、VRRPv2报文

  • 仅适用于IPv4网络;
  • 为了兼容早期版本(RFC2338),VRRPv2版本保留报文的认证字段,但是VRRP认证并不能提高安全性;
  • 秒级的通告报文的发送时间间隔;

2.3.2、VRRPv3报文

  • 适用于IPv4和IPv6两种网络;
  • 不支持认证功能;
  • 厘秒级(100分之1秒)的通告报文的发送时间间隔;

2.3.3、报文字段含义

  • Version :长度 4比特 ,指VRRP协议版本,VRRPv2此字段为2,VRRPv3此字段为3;
  • Type :长度 4比特 ,定义了VRRP报文的类型,本版本的协议仅定义了一个报文类型:1 :Advertisement 带有未知类型的报文必须被丢弃;
  • Virtual Rtr ID8 :长度 8比特 ,虚拟路由器标识(VRID)字段标识了此报文所报告状态的虚拟路由器。可配置的范围是1–255。没有缺省值;
  • Priority :长度 8比特 ,申明了发送此报文的VRRP路由器的优先级。值越高优先级越高。如果VRRP路由器是虚拟路由器地址的IP地址所有者,那么其优先级必须为255。备用作用的VRRP路由器的优先级必须在1–254之间。缺省的VRRP路由器优先级为100。优先级值0 用于指示当前虚拟路由器的主路由器停止参与VRRP组。主要用于触发备用路由器快速地迁移到主路由器,而不用等待当前主路由器超时;
  • Count IP Addrs :长度 8比特 。在此VRRP通告中包含的IP地址的数量;
  • Auth Type :长度 8比特 ,用于标识要用到的认证方法。在一个虚拟路由器组内认证类型是唯一的。如果报文携带未知的认证类型或者该认证类型和本地配置的认证方法不匹配,那么该报文必须被丢弃。目前定义的认证方法有:0(No Authentication) : 表明VRRP协议报文的交换不需要认证。在发送VRRP协议报文时, Authentication Data 字段将被置为 0 ,而在接收协议报文时, Authentication Data 字段被忽略;1(Simple Text Password) : 表示明文认证方式。2(IP Authentication Header) :表示MD5认证方式;
  • Adver Int :长度 8比特 ,VRRP通告间隔时间,单位为秒(默认为1秒),这个字段主要用于错误配置路由器时的故障定位和解决;
  • Checksum :长度 16比特 ,16位校验和,用于检测VRRP报文中的数据破坏情况;
  • IP Address :长度 32比特 ,VRRP备份组的虚拟IPv4地址或者虚拟IPv6地址;
  • Authentication Data :长度 32比特 ,VRRP报文的认证字,目前只有明文认证和MD5认证才用到该部分,对于其它认证方式,一律填0;

vrrp协议_Keepalived的高可用基石 - VRRP协议相关推荐

  1. Redis高可用基石--主从同步

    主从同步 当我们将Redis用于线上环境,单机肯定是不行的,即使不做集群,我们也应该做主从,有了主从,当主节点(master)挂掉时候,让运维将从节点(slave)接管,服务可以继续,否则主节点宕机后 ...

  2. lvs服务器需要开启web服务么_Nginx+Keepalived实现web服务器高可用

    1.Nginx 业务背景 现公司需求快速搭建web服务器,对外提供给用户web服务. 需求拆分 需要基于http协议的软件,搭建服务实现 介绍 常见用法: 1) web服务器软件 httpd http ...

  3. Nginx 挂了怎么办?怎么实现高可用?

    以下文章来源方志朋的博客,回复"666"获面试宝典 作者:SimpleWu 出处:www.cnblogs.com/SimpleWu/p/11004902.html 什么是高可用? ...

  4. Nginx 高可用集群解决方案 Nginx + Keepalived

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:10pcm 链接:https://blog.51cto.co ...

  5. Nginx+keepalived 实现高可用,防盗链及动静分离配置

    一.Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好, ...

  6. 生产环境:Nginx高可用方案

    准备工作: 192.168.16.128 192.168.16.129 两条虚拟机.安装好Nginx 安装Nginx 更新yum 源文件: 安装Nginx: 操作命令: 什么是高可用? 高可用HA(H ...

  7. 运维企业专题(8)LVS高可用与负载均衡后篇——LVS健康检查与高可用详解

    实验准备 1.下面的实验使用的是rhel6系列(rhel6.5)的虚拟机,因此你需要有对应的镜像和yum源 2.准备三台虚拟机,为了区分主机名与IP分别为 server1 172.25.6.1 ser ...

  8. keepalived+nginx负载均衡+ApacheWeb实现高可用

    1.Keepalived高可用软件 Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,kee ...

  9. HAProxy Keepalived L4-L7 高可用负载均衡解决方案

    目录 文章目录 目录 HAProxy 负载均衡器 应用特性 性能优势 会话保持 健康检查 配置文件 负载均衡策略 ACL 规则 Web 监控平台 Keepalived 虚拟路由器 核心组件 VRRP ...

  10. mycat mysql好可用架构_想要学会MyCat高可用集群搭建,但是这些知识点却还玩不明白?...

    一.集群架构 1.MyCat实现读写分离架构 在我前面的文章, 我已经讲解过了通过MyCat来实现MySQL的读写分离, 从而完成MySQL集群的负载均衡 , 如下面的结构图: 但是以上架构存在问题 ...

最新文章

  1. 《Linux系统初讲》学习总结(一)
  2. python连接文本文件_Python连接文本文件
  3. CentOS7 下DNS的搭建
  4. 不学无数——SpringBoot入门Ⅷ
  5. ASIHttpRequest:创建队列、下载请求、断点续传、解压缩
  6. Struts2中<s:iterator>基本用法及示例
  7. pascal voc数据集_【资源分享】数据集搜索神器BIFROST
  8. 计算机毕业设计Java医院信息管理系统(系统+源码+mysql数据库+Lw文档)
  9. 工信部发布八项互联网新通用顶级域名服务技术要求
  10. Plugin工具类-Unreal4源码拆解-UnrealBuildTool功能流程解析
  11. 亚像素卷积网络(ESPCN)学习与Pytorch复现
  12. 统计频次:统计数组中每种模的频次
  13. 利用Mycat分库分表操作
  14. 首页仪表盘echarts _封装万能表单组件
  15. SBIO | 浙大陈云组综述农业中细菌与真菌的互作机制
  16. 【福利】成为专业程序员路上用到的各种优秀资料、神器及框架
  17. 设置oracle不使用swap,安装oracle12c swap不足
  18. Qt5 实战No.01 桌面时钟
  19. 【咕泡P4人工智能机器学习】
  20. 第四章 ROBOGUIDE界面介绍

热门文章

  1. phpcmsv9 更换域名出现页面无法访问后怎么办
  2. Kruskal/Prim/Dijkstra模板
  3. 6.微服务设计 --- 部署
  4. 7.Linux性能诊断 --- 分布式追踪系统体系概要
  5. 21. RequireJS
  6. 3. Active Record(活动记录模式)
  7. html 可换行属性,html里title属性换行的方法
  8. css3中的border-image用法
  9. javascript中eval解析JSON字符串
  10. J2EE中使用jstl报http //java sun com/jsp/jstl/core cannot be reso