首页 > 其他分享 >HCIP-ICT实战进阶11-虚拟路由网关协议VRRP

HCIP-ICT实战进阶11-虚拟路由网关协议VRRP

时间:2023-03-31 09:23:52浏览次数:44  
标签:11 网关 进阶 报文 VRRP 虚拟 master 设备

HCIP-ICT实战进阶11-虚拟路由网关协议VRRP

0 回顾

链路聚合是为了做什么?

  • 通过多条线路实现冗余备份, 可以实现N+M备份, 同时链路聚合可以提升网络速度.

  • 二层环境通过各种生成树协议(多为MSTP)避免环路.

  • 在IGP协议中, 三层环境可以通过自身算法实现冗余备份比如SPF算法.

  • 在EGP协议中, 比如BGP协议, 同样会根据路径属性选择主备路径, 实现冗余备份.

  • 堆叠/集群用于多台设备虚拟化一台设备, 用于两台设备之间的冗余备份.

上述所有避免网络中单点故障的技术都会面临一个问题: 网络故障检测速度问题(OSPF 10s 的hello、ISIS 3s DIS、BGP的keepalive、堆叠/集群的心跳), 当然如果你看了我前一篇博客就会知道, 可以通过BFD联动技术来实现网络故障检测, 但如果是终端接入网络中出现故障该怎么办(网关的单点故障)?

image-20230330211653122

网关和默认网关

  • 网关是终端设备(PC、移动设备等)上明确写入的去往某一个具体网络, 需要发送数据到达的下一跳IP地址;

  • 默认网关其实是一条默认路由, 用于实现终端设备访问任意网络, 通常终端显示的是默认网关, 默认网关故障会导致所有终端设备无法访问外网, 一般为DHCP服务动态分配, 也可以手动输入, 通常只有一个.

如果PC要去往不同网段, 正常情况下都是把数据发送给默认网关, 但同网段不需要去往默认网关.

如果默认网关收到一条数据需要从收到的接口发回去, 会触发ICMP重定向, 告诉发送方以后要向这个目的地址发送数据时前往正确的设备, 这样发送方就会生成一条默认路由, 此时这条默认路由的目的地址能称为网关或是明细网关(但不是默认).

注: 没有强调是明细网关的情况下, 所谓"网关"通常指默认网关.

1 VRRP技术概述

为了解决默认网关的故障, 提出了类似于堆叠的机制, 将多台设备虚拟为一台虚拟路由器作为网关, 两台设备作为物理底层实现, 虚拟设备向用户提供服务, 从而保证通信的连续性和可靠性,这种技术就是VRRP(Virtual Router Redundancy Protocol, 虚拟路由冗余协议), 协议号为112.

image-20230330211531574

VRRP和堆叠/集群的区别:

VRRP主要是为了为终端提供虚拟网关服务将两个网关虚拟成一个ip地址, 堆叠/集群是将两台设备虚拟为一台逻辑设备(更彻底一点).

1.1 VRRP基本概念

image-20221202202250524

  1. VRRP路由器: 运行VRRP协议的路由器, VRRP主要是为了模拟一个虚拟IP地址, 所以VRRP是针对接口进行配置的, 在路由器上配置在接口, 在交换机上可以配置在未被其他设备使用的access+VLANIF接口.

  2. VRID: Virtual Router Identifier, 虚拟路由器标识符. 相同VRID的VRRP路由器组成一个VRRP组(VRRP Group), VRRP是在多台设备的接口上配置VRRP命令, 然后多台设备之间会交互报文并虚拟出来一台虚拟路由器, 为了VRRP多台设备直接按可以识别同一个虚拟路由器, 就设置了这个虚拟标识符.

    由于VRRP是在接口上部署的, 所以在同一个三层接口下, VRID是具有唯一性的, 不同接口之间VRID没有唯一性.

  3. 虚拟路由器: 是由VRRP虚拟出来的路由设备, 一个VRID就代表一台虚拟路由器.

  4. 虚拟IP地址/mac地址: 通过VRRP虚拟出一台虚拟设备, 该设备需要配置IP地址, 才可以向终端提供默认网关服务.

    虚拟mac地址拥有固定格式: 00-00-5e-00-0X-mn

    • 00-00-5e-00: 前缀固定, 用于表示当前是VRRP虚拟设备;
    • 0X: 表示当前使用的VRRP版本:
      • 01表示VRRPv4--ipv4;
      • 02表示VRRPv6--ipv6
    • mn: 表示VRID, 如果VRID是10, 则mn为0A;
  5. 优先级: 默认为100, 用于优选主从设备, 取值范围为0-255, 数值越大越优先, 同优先级比较IP地址, 也是越大越优, 有抢占机制.

    • 0: 表示当前设备需要退出VRRP的master;
    • 255: 表示当前有物理设备的IP地址和虚拟IP地址一致, 即虚拟出来的ip地址是VRRP组中一个设备的真实存在的物理地址, 这样的设备优先级为255且无法更改;

    所以优先级的配置范围为1-254.

  6. master路由器: 主设备, 优先级最大的设备会被选举为master, 是VRRP中正常情况下用于处理虚拟路由器收到数据的设备, 一个VRRP组中只能存在一台master路由器.

  7. backup路由器: 备份设备, 不转发数据的设备, 只有在master故障时用于转换为master设备.

注:

  • 在三层的协议中, 关于优先级通常规律为: 大就是好, 好就是大!
  • 在二层的协议中, 关于优先级通常规律为: 小就是好, 好就是小!
img

1.2 VRRP报文

VRRP报文详细内容不做细致要求.

image-20230330220448147

VRRP只有一种报文, 即Advertisement报文(VRRP通告报文), 只有master设备基于组播方式发送, 组播地址为224.0.0.18.

1.3 VRRP计时器

VRRP协议工作过程中, VRRP定义了两个定时器:

  • ADVER_INTERVAL定时器: master发VRRP通告报文(Adv报文)的时间周期, 缺省值为1s;
  • MASTER_DOWN定时器: Backup设备监听该定时器超时后会变成master路由器.

backup设备默认三次收不到Adv报文, 则会变成master设备, 实际等待时间计算如下:

Master_down时间 = 3 * ADVER_INTERVAL(3 * 1s) + 偏移时间((256 - 优先级) / 256)

所以backup设备通常在master设备故障后的3s+切换为master设备.

但是在实际情况中backup设备一般在master_down计时器老化后还需要等待一个抢占时延, 这部分内容我放在下面的思考题里展开.

2 VRRP技术原理

2.1 VRRP状态机

VRRP有三种中状态机, 分别为Initializ(初始状态)Master(活动状态)Backup(备份状态).

image-20230330221520342

  1. init: VRRP协议刚启动, 当前并没有进行选举操作, 当前设备会判断自己的优先级, 如果为255则直接切换到master, 否则切换为backup;

  2. master:

    • 活动状态, 如果有多台设备为master, 会根据adv报文中的优先级/ip地址选举保留一台master设备;
    • 定期发送Adv报文;
    • master会对终端设备的ARP报文发送携带虚拟mac地址的ARP响应报文;
    • 转发目的mac地址为虚拟mac地址的IP报文;
    • 默认允许ping通虚拟ip地址;
  3. backup:

    • 不响应对虚拟IP地址的ARP请求;
    • 丢弃目的ip地址为虚拟ip地址的报文(就不应该发到backup设备上);
    • 进入该状态的设备会开启监听定时器, 等待master设备故障;
    • 如果VRRP中没有master设备, 则定时器超时后backup进行选举;
    • 如果收到的master报文优先级和自己相同, 重置定时器, 但不会进一步比较IP地址, 不会发生抢占;
    • 如果收到master报文优先级比自己低, backup会重置master_down定时器, 并且回复一个报文抢占master设备, 然后master会发送优先级为0的报文宣布退出master.

2.2 VRRP主备选举

虽然我感觉我上面已经把VRRP的选举过程讲的差不多了, 但这里还是试着图文并茂地总结一下

2.2.1 VRRP优先级不相等的情况下主备选举

image-20230330224913605

  1. R1的接口VRRP优先级为200, R2的接口优先级为100, 两台设备完成初始化后首先切换到backup状态;

  2. R1和R2根据各自的Master_down定时器超时时间由Backup切换到master, 根据超时时间安排来看:

    R1为 3*1s+((256-200)/256)s = 3.22s

    R2为 3*1s+((256-100)/256)s = 3.61s

    R1会先切换到master状态;

  3. R1和R2通过相互发送VRRP报文进行master选举, R1因为优先级更高被选举为master;

  4. R1被选举为master有, 立即发送免费ARP报文向连接的设备通告虚拟mac地址.

2.2.2 优先级相等的情况主备选举

image-20230330225618767

  1. R1和R2的g0/0/0接口的VRRP优先级都是200, 两台设备完成初始化后首先切换至backup状态;
  2. 由于优先级相同, R1和R2的master_down定时器也相同, 二者同时由backup切换为master;
  3. R1和R2交换VRRP报文, 优先级一样, 通过比较接口IP地址选举R2作为master;
  4. R2被选举为master后, 立即发送免费arp报文将虚拟mac地址通告给连接的设备.

2.2.3 虚拟IP地址为物理设备的IP地址的主备选举

当路由器接口被配置为VRRP的IP地址拥有者时(接口IP地址与虚拟ip地址相同), 路由器无需等待任何定时器超时, 可以直接切换至master.

image-20230330225721077

  1. R1与R2的g0/0/0接口VRRP优先级都采用默认配置(100), 但是R1的g0/0/0接口地址与虚拟地址相同;
  2. R1的g0/0/0接口直接切换至master状态, R1称为master路由器.

2.3 VRRP主备切换

image-20230330231406337

2.3.1 VRRP主备回切

image-20230330231638063

  1. 正常情况下, master设备负责转发用户报文, 所有用户流量通过R1到达Internet;
  2. 当R1出现故障时, 网络会重新进行VRRP主备选举, R2会成为新的master;
  3. 当R1从故障中恢复后, 网络将重新进行VRRP选举, 由于R1的优先级大于R2, 所有R1会重新成为master;

2.3.2 VRRP抢占模式(Preempt Mode)

  • 抢占模式(默认): 如果backup设备激活了抢占功能, 那么当他发现master路由器的优先级比自己更低时, 他将立刻切换至master
  • 非抢占模式: 如果backup设备没有激活抢占功能, 那么即使他发现master设备的优先级比自己更低, 也只能保持backup状态, 直到master设备故障

3 VRRP典型应用

3.1 VRRP负载分担

image-20230330232147891

通过创建多个虚拟路由器, 每个物理路由器在不同的VRID扮演不同的角色, 不同虚拟路由器的Virtual IP作为不同的内网网关地址可以实现流量转发的负载分担.

3.2 VRRP监视上行端口

image-20230330232337240

VRRP可监视(Track)上行端口状态, 当设备感知上行端口或者链路发生故障时, 可主动降低VRRP优先级, 从而保证上行链路正常的backup设备能通过选举切换为master, 指导报文转发.

3.3 VRRP与BFD联动

image-20230330232516482

配置VRRP与BFD联动, 当backup通过BFD感知到链路故障时, 不再等待master_down超时, 而是会在BFD检测周期结束后立即切换为master, 实现毫秒级主备切换.

3.4 VRRP与MSTP结合应用

VRRP一般在网络中部署的时候,是在汇聚层交换机部署, 接入层和汇聚层之间是二层网络,一般也会部署MSTP, 所以现网中,很多企业如果接入层到汇聚层要做冗余备份(基本上VRRP和MSTP是必备的)

image-20230330232700878

一般来说, VRRP与MSTP一起组网的时候需要注意:

  1. 首先PC所属的网段要明确, 网关地址也要明确, 同时该网段在二层交换网络中使用的VLAN通信也要明确;
  2. 根据主备网关需求或是根据MSTP配置需求, 将不同网段所属的VLAN划分到不同MSTP实例中;
  3. MSTP实例的主根和VRRP的master设备尽可能保持在同一设备上, 为了确保MSTP计算的阻塞链路不会让PC访问网关时从备份网关发送到注网关, 出现次优路径.

4 VRRP基本配置

4.1 配置命令

  1. 创建VRRP备份组并给备份组分配虚拟IP地址:

    [int-g0/0/0]vrrp vrid virtual-router-id virtual-ip virtual-address
    

    注意: 各备份组直接的虚拟IP地址不能重复; 同属一个备份组的设备接口需使用相同的VRID;

  2. 配置路由器在备份组中的优先级:

    [int-g0/0/0]vrrp vrid virtual-router-id priority priority-value
    

    注意: 通常情况下, master的优先级需高于backup设备.

  3. 配置备份组中该设备的抢占时间:

    [int-g0/0/0]vrrp vrid virtual-router-id preempt-mode timer delay delay-value
    
  4. 配置VRRP备份组中采用非抢占模式:

    [int-g0/0/0]vrrp vrid virtual-router-id preempt-mode disable
    

    缺省情况下为抢占模式

  5. 配置VRRP备份组监视接口

    [int-g0/0/0]vrrp vrid virtual-router-id track interface interface-type interface-number [increased value-increased | reduced value-decreased]
    

    可配置设备当检测到上行接口或者链路故障时, 增加或减少自身优先级, IP地址拥有者和Eth-trunk成员口不允许配置VRRP监视功能.

  6. 配置VRRP备份联动普通BFD会话:

    [int-g0/0/0]vrrp vrid virtual-router-id track bfd-session {bfd-session-id | session-name bfd-configure-name} [increased value-increased | reduced value-decreased]
    
    • 如果选择参数session-name bfd-configure-name, 可以绑定静态BFD会话或标识符自动协商的静态BFD会话
    • 如果选择参数bfd-session-id, 只能绑定静态BFD会话

    这里我也不是很看得懂的, 回头琢磨琢磨再补上我的理解.

4.2 配置举例

image-20230331000245168

配置要求

  • R1与R2组成一个VRRP备份组, 其中R1为master, R2为backup;
  • master设备故障时恢复采用抢占模式, 抢占时延10s;
  • master设备监视上行接口状态实现VRRP主备自动切换.

配置脚本

R1:

int g0/0/0
	ip address 192.168.1.253 24
	vrrp vrid 1 virtual-ip 192.168.1.254
	vrrp vrid 1 priority 120
	vrrp vrid 1 preempt-mode timer delay 10
	vrrp vrid 1 track int g0/0/1 reduced 30

R2:

int g0/0/0
	ip address 192.168.1.252 24
	vrrp vrid 1 virtual-ip 192.168.1.254
	vrrp vrid 1 priority 110

配置验证

dis vrrp

image-20230331000815981

5 思考题

  1. 下列关于VRRP报文IP地址设置正确的说法是()

    A. 源IP地址为master设备端口的IP地址;

    B. 源IP地址为虚拟路由器的虚拟IP地址;

    C. 目的地址为广播IP地址;

    D. 目的地址为组播IP地址.

    答案 : AD

    解析: 在创建虚拟路由器后, 虽然使用虚拟IP地址作为网关, 但是在上面VRRP报文结构中有提到, VRRP只有一种报文, 就是Adv通告报文, 该报文是开启VRRP的设备用于交互设备信息和选举master的报文, 由master设备向其他backup设备组播发送, 因此源IP地址为master设备的地址, 目的地址为组播地址224.0.0.18

  2. 下列关于VRRP协议中各定时器说法正确的是()

    A. VRRP通告消息发送时间默认为1s, 关联到同一虚拟路由器上配置的VRRP消息通告时间间隔必须一致;

    B. 配置抢占延时为4s, 表示如果4s中之内没有收到master发送的VRRP消息, 则backup立刻成为新的master;

    C. 配置抢占延时为4s, 配置VRRP通告时间间隔为2s, 表示如果7秒中之内没有收到master发送的VRRP消息, 则backup立刻成为新的master;

    D. 在表繁忙的网络中, 应当适当的将抢占延迟设置为一个较大的值, 以避免不必要的VRRP角色振荡;

    答案: AD

    解析:

    A: 通告时间间隔当然需要一致, 假设A设备通告时间(Adv报文发送周期)为5s, B设备通告时间为1s, A设备优先级更大, 就会导致A的master_down为3x5+偏移时间, B的master_down为3x1+偏移时间, A设备每5s发送一次通告报文, B设备在3.x秒内会收不到A设备的报文, B设备抢占master, 这样导致优先级大的设备因为通告周期太长而无法成功抢占master设备;

    B: 首先理解抢占时延的概念: 网络中设备发现可抢占设备后(这里是master_down计时器到时后), 需要等待抢占时延后才进行后续的抢占动作; B选项未声明通告时间, 就算按照默认时间为1s, backup应该成为master的时间为3.xs+4s=7.xs;

    C: master_down时间为3x2+偏移时间=6.xs, 但是有4s的抢占时延, 时延在6.x+4秒后才会成为master设备;

    D: 如果在繁忙网络(网络延迟高)中抢占时延很短, B设备可能就是不能在master_down内收到A设备在周期内发送的Adv, 在抢占时延后就会抢占master, 但是如果抢占时延设置的比较高, B设备即使master_down计时器老化后也能在抢占时延内收到master设备的Adv报文, 不会发生抢占.

6 总结

看完这篇博客, 你应当了解到:

  • VRRP作为一种非常重要的可靠性技术, 常用于时间网关设备冗余, 该协议既能提高网络可靠性, 又能实现网络负载分担(健壮性);
  • VRRP主备选举、主备切换的过程, VRRP抢占时延机制;
  • VRRP联动BFD和VRRP结合MSTP组网的应用场景.

标签:11,网关,进阶,报文,VRRP,虚拟,master,设备
From: https://www.cnblogs.com/konjac-wjh/p/17275138.html

相关文章

  • The Suspects POJ - 1611 (并查集)
    题意:n个学生分属m个团体,一个学生可以属于多个团体。一个学生疑似患病则它所属的整个团体都疑似患病。已知0号学生疑似患病,以及每个团体都由哪些学生构成,求一共多少个学生疑似患病。分析:维护一个并查集,查询与0在同一集合的元素数量。#include<iostream>#include<cstdio>using......
  • Docker安装Oracle11g
    拉取镜像#拉取镜像dockerpullregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g#查看镜像dockerimages镜像比较大(6.9G),可能拉取时间会很久,需要耐心等待创建容器dockerrun-d-p1521:1521--nameoracleregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g#......
  • Exp3-免杀原理 20202211王宏韬
    目录1.基础问题回答(1)杀软是如何检测出恶意代码的?(2)免杀是做什么?(3)免杀的基本方法有哪些?(4)开启杀软能绝对防止电脑中恶意代码吗?2.实践总结与体会3.实践过程记录3.1环境准备3.1.1安装wine323.1.2安装工具veil3.2正确使用msf编码器,使用msfvenom生成如jar之类的......
  • 进阶面向对象 - 3
    11.进阶面向对象-3super方法引入上一节课程我们知道,如果父类中的方法在派生的子类中不能满足其需求的话,可以在子类中通过重写解决这个问题但是很多情况下,父类中的方法并不是全部一点都不能用,即子类的需求往往是在父类方法实现的功能基础上提出了更多的需求而已,此时如果我们......
  • 函数进阶 - 2
    8.函数进阶-2函数参数的高级用法缺省参数引入缺省参数也叫做默认参数,是指定义函数时形参变量有默认值,如果调用函数时没有传递参数,那么函数就用默认值,如果传递了参数就用传递的那个数据。示例:defprint_info(name,age=35):print(f'name:{name}')print(f'age:......
  • HCIP-ICT实战进阶10-BFD原理与配置
    HCIP-ICT实战进阶10-BFD原理与配置0引言之前学习的比如链路聚合、STP、RSTP、MSTP以及一些路由协议,所有的协议都可以实现一种能力:冗余备份网络中如果真的发生了设备的故障或者是链路故障,则以上的各种协议需要检测到故障,然后进行网络的链路切换.生成树协议发生故障生成树......
  • 浅析C++11 lambda表达式用法
    Lambda表达式(匿名函数、Lambda函数)是现代C++在C++11和更高版本中的一个新的语法糖,可以让我们快速便捷的创建一个函数。[capture-list](params)mutableexceptionattribute->return-type{body}capture-list:捕获列表,一般在Lambda表达式开头,捕获上下文中的变量,用......
  • 使用蓝牙自动解锁或锁定win11
    蓝牙配对你的手机,安卓或者苹果都可以。当你手机离开一定距离后电脑将自动锁定。......
  • MySQL导入数据库1118错误解决方案[ERR] 1118 - Row size too large (> 8126). Changing
    MySQL导入数据库1118错误解决方案[ERR]1118-Rowsizetoolarge(>8126).ChangingsomecolumnstoTEXTorBLOB编辑sql文件,在开头设置一下innodb_strict_mode为0SE......
  • 云存储继续火 Symform获1100万美元融资
    今年云储存火了,雷锋网昨天刚介绍一家云储存公司Terascala获1400万美元融资,今天一家云存储公司Symform也宣布融资1100万美元,由WestRiverCapital领头,已有投资人OVP及Longwo......