【HCIP】04.VRRP与BFD

VRRP

VRRP基本概念

VRRP路由器

  • 运行VRRP协议的路由器,VRRP是配置在路由器的接口上的,而且也是基于接口来工作的。

VRID

  • 一个VRRP组由多台协同工作的路由器(的接口)组成,使用相同的VRID(Virtual Router Identifier,虚拟路由器标识符)进行标识。属于同一个VRRP组的路由器之间交互VRRP协议报文并产生一台虚拟“路由器”。一个VRRP组中只能出现一台Master路由器。VRRP组范围0-255,0不可以用。

虚拟路由器

  • VRRP为每一个组抽象出一台虚拟“路由器”(Virtual Router),该路由器并非真实存在的物理设备,而是由VRRP虚拟出来的逻辑设备。一个VRRP组只会产生一台虚拟路由器。

虚拟IP地址及虚拟MAC地址

  • 虚拟路由器拥有自己的IP地址以及MAC地址,其中IP地址由网络管理员在配置VRRP时指定,一台虚拟路由器可以有一个或多个IP地址,通常情况下用户使用该地址作为网关地址。而虚拟MAC地址的格式是“0000-5e00-01xx”,其中xx为VRID。MAC地址使用16进制方式表示。例如VRRP组的VRID为10,那么MAC地址为0000-5e00-010A

Master路由器

  • Master路由器”在一个VRRP组中承担报文转发任务。在每一个VRRP组中,只有Master路由器才会响应针对虚拟IP地址的ARP Request。Master路由器会以一定的时间间隔周期性地发送VRRP报文,以便通知同一个VRRP组中的Backup路由器关于自己的存活情况。

Backup路由器

  • 也被称为备份路由器。Backup路由器将会实时侦听Master路由器发送出来的VRRP报文,它随时准备接替Master路由器的工作。

Priority

  • 优先级值是选举Master路由器和Backup路由器的依据,优先级取值范围0-255,值越大越优先,值相等则比较接口IP地址大小,大者优先。
  • 手动可配置优先级范围1-254;0是退出VRRP组是发出的,255(虚拟IP拥有者)是将虚拟IP配置与物理接口IP一样发出的。

VRRP的报文

  • 基于IP工作,组播地址224.0.0.18;组播目的MAC,01-00-5E-00-00-12
  • VRRP只有一种报文,即Advertisement报文,组播方式发送, Advertisement报文的目的组播地址为224.0.0.18。

  1. Ver,版本
  2. Type,类型
  3. Virtual Rtr ID,VRRP组ID号
  4. Priority,路由器接口的优先级
  5. Count IP Addrs,携带了几个虚拟IP
  6. Auth Type,认证类型
  7. Adver int,通告的接口
  8. Checksum,校验和
  9. IP Address,IP地址
  10. Authentication Data,认证信息

VRRP定时器

  • ADVER_INTERVAL(通告-间隔)定时器:Master发送VRRP通告报文时间周期,缺省值为1秒。
  • MASTER_DOWN定时器:Backup设备监听该定时器超时后,会变为Master状态。大约3-4秒钟。
    • MASTER_DOWN定时器计算公式如下:
      • MASTER_DOWN =(3* ADVER_INTERVAL)+ Skew_time(偏移时间)
      • 其中,Skew_Time=(256–Priority)/256

VRRP状态机

  • VRRP协议状态机有三种状态:Initialize(初始状态)、Master(活动状态)、Backup(备份状态)。
  • 优先级小于255变为备份设备,等于255直接变为主设备(可以节约IP地址)
  • 优先级为0,是认为删除配置的时候自动发出的,可以使之前的备设备不需要等待Master-down时间。

VRRP的选举

  • 主设备比优先级+IP地址,备用设备只比较优先级;谁先成为主设备,即便优先级一样,也一直为主设备
  • 刚开机的时候都会认为自己为备用设备,会认为3-4秒的时间,会发现没有主;其中一台会升为主设备,会发送一个VRRP通过报文以组播形式,备设备会收到报文;会比较优先级,如果主设备的优先级大,那么备用设备会没有响应等待主设备的周期报文,如果备设备的优先级大,那么备用设备会立即成为主设备并向备设备发送VRRP报文。

VRRP优先级不相等时主备选举过程(比较优先级,大者为主)

  1. R1的接口VRRP优先级为200,R2的接口VRRP优先级为100,两台设备完成初始化后首先切换至Backup状态。
  2. R1与R2根据各自MASTER_DOWN定时器超时时间由Backup切换到Master状态,所以R1比R2更快切换至Master状态。
  3. R1和R2通过相互发送VRRP报文进行Master选举,优先级高的被选举为Master设备,因此R1被选为Master路由器 。
  4. R1被选举为Master路由器后,立即发送免费ARP报文将虚拟MAC地址通告给与它连接的设备和主机。

VRRP优先级相等时主备选举过程(比较IP地址,大者为主)

  1. R1与R2的GE0/0/0接口VRRP优先级都是200,两台设备完成初始化后首先切换至Backup状态。
  2. 由于优先级相同,R1与R2的MASTER_DOWN定时器超时后,同时由Backup状态切换至Master状态。
  3. R1与R2交换VRRP报文,优先级一样,通过比较接口IP地址选举Master路由器,由于R2的接口IP地址大于R1的接口IP地址,因此R2被选举为Master路由器。
  4. R2被选举为Master路由器后,立即发送免费ARP报文将虚拟MAC地址通告给与它连接的设备和主机。

配置为IP地址拥有者时主备选举过程(直接成为Master)

  1. R1与R2的GE0/0/0接口VRRP优先级都采用默认配置(默认为100),但是R1的GE0/0/0接口IP地址与Virtual IP地址相同。
  2. R1的GE0/0/0接口直接切换至Master状态,R1成为Master路由器。

VRRP主备切换

  • 主动放弃,发送为0的报文,无需等待超时时间,这个切换的时间称为Skew_time。
  • 当Master设备发生网络故障而不能发送通告报文的时候,Backup设备并不能立即知道其工作状况。等到MASTER_DOWN定时器超时后,才会认为Master设备无法正常工作,从而将状态切换为Master。

回切与抢占(默认抢占,如果备份设备没有开启抢占功能,则不抢占)

  1. 当R1从故障恢复后,网络将重新进行VRRP主备选举,由于R1的优先级大于R2,所以R1又重新成为新的Master设备负责转发用户报文。如果开启了非抢占模式,那么R1就不会成为新的Master。
  • 配置VRRP备份组中Backup设备采用非抢占方式,Backup设备在接收到VRRP通告报文的处理过程中,如果发现接收到的VRRP通告报文中的优先级比自己的优先级低,则Backup设备也不会抢占为Master设备。
  • 配置VRRP备份组中Backup设备采用抢占方式,Backup设备在接收到VRRP通告报文的处理过程中,如果发现接收到的VRRP通告报文中的优先级比自己的优先级低,则Backup设备在延迟时间超时后,会抢占成为Master设备。

配置

R1
int g0/0/1 
vrrp vrid 1 virtual-ip 192.168.1.254	配置虚拟IP
vrrp vrid 1 priorty 105	配置优先级R2
int g0/0/1
vrrp vrid 1 virtual-ip 192.168.1.254
dis vrrp
[Huawei-GigabitEthernet0/0/0]vrrp vrid 1 preempt-mode disable 	关闭抢占模式(接口要双up)

BFD

  • BFD双向转发检测提供了一个通用的、标准化的、介质无关和协议无关的快速故障检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状态。
  • BFD是一个简单的“Hello”协议。两个系统之间建立BFD会话通道,并周期性发送BFD检测报文,如果某个系统在规定的时间内没有收到对端的检测报文,则认为该通道的某个部分发生了故障。

BFD的报文结构

  1. Sta:BFD本地状态。
  2. Detect Mult:检测超时倍数,用于检测方计算检测超时时间。
  3. My Discriminator:BFD会话连接本地标识符(Local Discriminator) 。发送系统产生的一个唯一的、非0鉴别值,用来区分一个系统的多个BFD会话。
  4. Your Discriminator:BFD会话连接远端标识符(Remote Discriminator) 。从远端系统接收到的鉴别值,这个域直接返回接收到的“My Discriminator”,如果不知道这个值就返回0。
  5. Desired Min TX Interval:本地支持的最小BFD报文发送间隔。
  6. Required Min RX Interval:本地支持的最小BFD报文接收间隔。
  7. Required Min Echo RX Interval:本地支持的最小Echo报文接收间隔,单位为微秒(如果本地不支持Echo功能,则设置0)。

BFD会话的建立(静态建立与动态建立)

  • BFD会话的建立有两种方式,即静态建立BFD会话和动态建立BFD会话。BFD通过控制报文中的本地标识符和远端标识符区分不同的会话。静态和动态创建BFD会话的主要区别在于Local Discriminator和Remote Discriminator的配置方式不同。

BFD会话状态

  • BFD会话有四种状态:Down、Init、Up和AdminDown。会话状态变化通过BFD报文的State字段传递,系统根据自己本地的会话状态和接收到的对端BFD报文驱动状态改变,如左下图所示。BFD状态机的建立和拆除都采用三次握手机制,如右下图所示,以确保两端系统都能知道状态的变化。

BFD检测方式与时间

  • 查询方式只可以检测一跳

配置

[Huawei]bfd	开启bfd功能
[Huawei-bfd]qu
[Huawei]bfd dalong bind peer-ip 1.1.1.6 绑定远端ip
[Huawei-bfd-session-dalong]discriminator local 1	本地标识符1
[Huawei-bfd-session-dalong]discriminator remote 2	远端标识符2
[Huawei-bfd-session-dalong]commit[Huawei]bfd	开启bfd功能
[Huawei-bfd]qu
[Huawei]bfd gaochen bind peer-ip 2.2.2.6 绑定远端ip
[Huawei-bfd-session-dalong]discriminator local 2	本地标识符1
[Huawei-bfd-session-dalong]discriminator remote 1	远端标识符2
[Huawei-bfd-session-dalong]commit[Huawei-GigabitEthernet0/0/0]vrrp vrid  1 track  bfd-session 1	本地标识符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/48188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VR数字工厂多元化展现,打造数字企业工厂名片

5G时代,各种营销都在走数字化的路子,VR数字工厂用VR赋能工厂数字升级,将企业环境、工厂生产、产品研发、质检运输等流程,无死角720度的展示在客户面前,不仅可以提升自身企业的实力,还可以提高客户的信任感。…

如何在Java实现TCP方式发送和接收Socket消息(多线程模式)

目录 导言:正文:1. 创建Server端:2. 创建Client端:3. 多线程模式: 代码示例Server端代码示例:Client端代码示例:同步模式发送TCP消息异步模式 结论: 导言: 在Java编程中…

SpringBoot 的 RedisTemplate、Redisson

一、Jedis、Lettuce、Redisson的简介 优先使用Lettuce, 需要分布式锁,分布式集合等分布式的高级特性,添加Redisson结合使用。 对于高并发,1000/s的并发,数据库可能由行锁变成表锁,性能下降会厉害。 1.1、…

再JAVA中如何使用qsort对类进行排序?

目录 结论&#xff1a; 解析&#xff1a; 结论&#xff1a; import java.util.Arrays;class Person implements Comparable<Person>{public String name;public int age;public Person(String name, int age) {this.name name;this.age age;}Overridepublic Stri…

[保研/考研机试] KY11 二叉树遍历 清华大学复试上机题 C++实现

题目链接&#xff1a; 二叉树遍历_牛客题霸_牛客网编一个程序&#xff0c;读入用户输入的一串先序遍历字符串&#xff0c;根据此字符串建立一个二叉树&#xff08;以指针方式存储&#xff09;。题目来自【牛客题霸】https://www.nowcoder.com/share/jump/43719512169254700747…

机器学习笔记之优化算法(十五)Baillon Haddad Theorem简单认识

机器学习笔记之优化算法——Baillon Haddad Theorem简单认识 引言 Baillon Haddad Theorem \text{Baillon Haddad Theorem} Baillon Haddad Theorem简单认识证明过程证明&#xff1a;条件 1 ⇒ 1 \Rightarrow 1⇒ 条件 2 2 2证明&#xff1a;条件 3 ⇒ 3 \Rightarrow 3⇒条件 1…

【MaxKey对接一】对接gitlab的oauth登录

MaxKey的Oauth过程 引导进入 GET http://{{maxKey_host}}/sign/authz/oauth/v20/authorize?client_idYOUR_CLIENT_ID&response_typecode&redirect_uriYOUR_REGISTERED_REDIRECT_URI 登录后回调地址 YOUR_REGISTERED_REDIRECT_URI/?code{{code}} 换取Access Token GET…

「UG/NX」Block UI 曲线收集器CurveCollector

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

docker 01(初识docker)

一、docker概念 Docker是一个开源的应用容器引擎&#xff1b;诞生于2013年初&#xff0c;基于Go 语言实现&#xff0c;dotCloud公司出品(后改名为Dockerlnc);Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的Linux …

网络安全设备篇——加密机

加密机是一种专门用于数据加密和解密的网络安全设备。它通过使用密码学算法对数据进行加密&#xff0c;从而保护数据的机密性和完整性。加密机通常被用于保护敏感数据&#xff0c;如金融信息、个人身份信息等。 加密机的主要功能包括&#xff1a; 数据加密&#xff1a;加密机使…

探究Java spring中jdk代理和cglib代理!

面对新鲜事物&#xff0c;我们要先了解在去探索事物的本质-默 目录 一.介绍二者代理模式 1.1.Jdk代理模式 1.2cglib代理模式 1.3二者区别 1.3.1有无接口 1.3.2灵活性 1.4对于两种代理模式的总结 1.4.1jdk代理模式 1.4.2cglib代理模式 二.两种代理模式应用场景 2.1jd…

搜狗拼音占用了VSCode及微信小程序开发者工具快捷键Ctrl + Shit + K 搜狗拼音截图快捷键

修改搜狗拼音的快捷键 右键--更多设置--属性设置--按键--系统功能快捷键--系统功能快捷键设置--取消Ctrl Shit K的勾选--勾选截屏并设置为Ctrl Shit A 微信开发者工具设置快捷键 右键--Command Palette--删除行 微信开发者工具快捷键 删除行&#xff1a;Ctrl Shit K 或…

【开源项目】Stream-Query的入门使用和原理分析

前言 无意间发现了一个有趣的项目&#xff0c;Stream-Query。了解了一下其基本的功能&#xff0c;可以帮助开发者省去Mapper的编写。在开发中&#xff0c;我们会编写entity和mapper来完成业务代码&#xff0c;但是Stream-Query可以省去mapper&#xff0c;只写entity。 快速入…

分布式事务理论基础

今天啊&#xff0c;本片博客我们一起来学习一下微服务中的一个重点和难点知识&#xff1a;分布式事务。 我们会基于Seata 这个框架来学习。 1、分布式事务问题 事务&#xff0c;我们应该比较了解&#xff0c;我们知道所有的事务&#xff0c;都必须要满足ACID的原则。也就是 …

Hadoop集群搭建(hadoop-3.3.5)

一、修改服务器配置文件 1、配置环境变量 vim /etc/profile #java环境变量 export JAVA_HOME/usr/local/jdk/jdk8 export JRE_HOME$JAVA_HOME/jre export CLASSPATH$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH$JAVA_HOME/bin:$JRE_HOME/bin:$PATH #hadoop环境变量 …

前端开发怎么解决前端安全性的问题? - 易智编译EaseEditing

前端安全性是保护前端应用程序免受恶意攻击和数据泄露的重要方面。以下是一些解决前端安全性问题的关键方法&#xff1a; 输入验证与过滤&#xff1a; 对所有用户输入进行验证和过滤&#xff0c;防止恶意用户通过注入攻击等手段破坏应用程序或获取敏感信息。 跨站点脚本&#…

[.NET/WPF] CommunityToolkit.Mvvm 异步指令

我们在开发中, 经常会有这样的需求: 点击按钮后, 进行一些耗时的工作工作进行时, 按钮不可再次被点击工作进行时, 会显示进度条, 或者 “加载中” 的动画 RelayCommand CommunityToolkit.Mvvm 中的 RelayCommand 除了支持最简单的同步方法, 还支持以 Task 作为返回值的异步方…

【数据结构入门指南】二叉树

【数据结构入门指南】二叉树 一、二叉树的概念二、现实中的二叉树三、特殊的二叉树四、二叉树的性质五、二叉树的存储结构5.1 顺序结构5.2 链式结构 一、二叉树的概念 二叉树是一棵特殊的树。一棵二叉树是结点的一个有限集合&#xff0c;该节点&#xff1a; ①&#xff1a;或者…

Spring Boot实现IP地址解析

一、本地解析 如果使用本地ip解析的话&#xff0c;我们将会借助ip2region&#xff0c;该项目维护了一份较为详细的本地ip地址对应表&#xff0c;如果为了离线环境的使用&#xff0c;需要导入该项目依赖&#xff0c;并指定版本&#xff0c;不同版本的方法可能存在差异。 <d…

SpringBoot整合Quartz,实现数据库方式执行定时任务

springboot整合quartz&#xff0c;实现数据库方式执行定时任务。把定时任务信息存进数据库&#xff0c;项目启动后自动执行定时任务。 1.引入依赖包&#xff1a; <dependency> <groupId>org.springframework.boot</groupId> <ar…