一、VRRP协议的基本概念

1、VRRP协议的定义:

  • VRRP协议,也即虚拟路由器冗余协议,用于解决单点故障问题。
    1018.4.png
  • 利用VRRP,一组路由器(同一个N中的接口)协同工作,但只有一个处于Master状态,处于该状态的路由器(的接口)承担实际的数据流量转发任务。在一个VRRP组内的多个路由器接口共用一个虚拟IP地址,该地址被作为局域网内所有主机的缺省网关地址。
  • VRRP决定哪个路由器是Master,Master路由器负责接收发送至用户网关的数据包并进行转发,以及响应PC对于其网关IP地址的ARP请求。
  • Backup路由器侦听Master路由器的状态并在Master路由器发生故障时,接替其工作,从而保证业务流量的平滑切换。

    2、VRRP术语

    ==VRRP路由器==

  • 运行VRRP的路由器。一台VRRP路由器(的接口)可以同时参与到多个VRRP组中,在不同的组中一台VRRP路由器可以充当不同的角色。

    ==VRRP组==

  • 一个VRRP组由多个VRRP路由器组成使用相同的VRID(VirtualRouterID虚拟路由器ID)进行标识,属于同一VRRP组的VRRP路由器互相刻奂信息,每一个VRRP组中只能有一个Master.

    ==虚拟路由器==

  • 对于每一个VRRP组,抽象出来的一个逻辑路由器,该路由器充当网络用户的网关,该路由器并非真实存在,事实上对于用户而言,只需知道虚拟路由器的IP,至于具体的虚拟路由器的角色由谁来承担、数据转发任务由谁来承担、Master故障后谁来接替,这是VRRP的工作。

    ==虚训IP地址、MAC地址==

  • 虚拟IP地址就是虚拟路由器的IP地址,该地址实际上就是用户的网关地址。
  • 虚拟MAC地址是虚拟路由器根据VRID生成的MAC地址。一个虚拟路由器拥有一个虚拟MAC地址,格式为:00-00-5E-00-01-{VRID}

    ==Master、BackupEE由器==

  • Master路由器 :在VRRP组中实际转发数据包的路由器,在每一个VRRP组中仅有Master响应对虚拟IP地址的ARP请求。Master路由器同时以一定的时间间隔发送VRRP消息,以便通知Backup路由器自己的存活情况。
  • Backup路由器: 用于监听Master发来的VRRP报文,一旦Master路由器出现故障超过一定时限,Backup就抢占Master的地位,接替Master的工作。
  • ++选举依据: 先比较接口VRRP优先级(比大)较大一方为Master;如果优先级相等,则比较接口P地址(比大),IP大的一方为Master。++

==VRRP状态机==

  • VRRP协议的状态共有三种,分别是Initialize,Master,Backup,初始状态都是Initialize,通过比较优先级产生Maste和Backup,在规定时间内,Backup若没有收到Master发来的心跳报文,将切换为Master。
    1018.91.png
    ::: hljs-center

VRRP状态机

:::

3、VRRP工作的过程

(1)、VRRP组中的设备选举出Master。Maste设备通过发送免费ARP报文将虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务。

(2)、Maste备周期性向备份组内所有Backup设备发送VRRP通知报文。

(3)、如果Master设备出现故障,VRRP%f分组中的Backup设备重新选举新的Master.

(4)、VRRP组状态切换时,Master设备由一台设备切换为另一台设备,新的Master设备会立即发送携带虚拟路由器的虚拟MAC地址和虚拟IP地址信息的免费ARP报文,刷新与它连接的主机或设备中的MAC表项,从而把用户流量引到新的Maste设备上来,整个过程对用户完全透明。

(5)、原Maste设备故障恢复时,若该设备为IP地址拥有者(则其优先级为255)将直接切换至Master状态。若该设备优先级小于255,将首先切换至Backup状态,且其优先级恢复为故障前配置的优先级。

(6)、Backup设备的优先级高于Master设备时,由Backup设备的工作方式(抢占方式和非抢占方式)决定是否重新选举Master。

4、VRRP报文:

VRRP报文是一种多播报文,由Master路由器发出来通告它的存在,使用VRRP报文可以检测虚拟路由器的各种参数,用于主路由器的选择。VRRP报文是封装在IP报文中,通过组播的方式传送。也就是说VRRP协议跟ICMP协议一样,工作在第三层(路由层),它是不具有端凵的说法的。
==VRRP通常报文被封装在IP报文里,通过组播地址:224.0.0.18发送,TTL为255,协议为112==

(1)version:VRRP协议版本号,RFc3768定义了版本号2

(2)Type:

指明VRRP报文类型,RFC3768只定义了一种VRRP报文,即VRRP通告报文,所以该字段总为1(若收到的VPPR通告报文的该字段的类型为非1则会被丢弃)

(3)VirtualRtrID:

即上面讲的大VRID。一个VRID唯一标识了一个虚拟路由器,取值范围为[1,255]。(所以一台路由器的接凵最多可以运行255个VRRP组)

(4)Priority:

优先级。虚拟路由器中用该字段来决定Master路由器和Backup路由器,值越大表明优先级越高,取值为[1,255],缺省值为100。假设虚拟路由器的IP地址跟VRRP组中某台路由器地址相同,那么该路由器的发出的报文的该字段总为255,即使人为指定为其他值也不受影响。若此字段为0表示这是Master路由器出现故障发送的VRRP通告报文,当Backup路由器收到此通告报文后,会等待(Skew time(256一Backup路由器的优先级)/256)秒时间然后将自己切换为Master路由器。

(5)count1PAddrs:

VRRP通告报文中包含的数目,即被一个VRRP虚拟路由器所分配的地址的数量。

(6)Auth Type:

认证类型字段,一个虚拟路由器只能使用一种认证类型,若Backup路由器收到的通告报文段中认证类型字段是未知或者和本地配置不匹配,则将该数据包丢弃。

  • 认证类型字段的定义:
    0表示无认证
    1表示保留,向前一个版本的RFC2338提供兼容性
    2表示保留,向前一个版本的RFC2338提供兼容性

    (7)AdverInt:

    Mater路由器向外发送VRRP通告报文的时间间隔,以秒为单位,取值范围是[1,255],缺省为1

    (8)Checksum:

    整个VRRP报文的校验和

    (9)1PAddress:

    VRRP虚拟路由器的虚拟IP地址(可配置多个)

    (10)Authentication Data:

    验证字。为了向RFC2338兼容,在实际的封装时,全置为0,接收方会忽略此字段。

二、VRRP实验实例和具体配置命令

1、VRRP实验实例

VRRP实验图.png
::: hljs-center

VRRP实验图

:::

2、VRRP具体命令配置

==(1)、路由具体配置==

已经配置好IP地址后,路由的配置命令:

[R1]ip routo-static 192.168.10.0 24 13.0.0.1
[R1]ip route-static 192.168.10.0 24 23.0.0.1 preference 70
[R1]ip route-static 192.168. 20.0 24 23.0.0.1
[R1]ip route-static 192.168.20.0 24 13.0.0.1 preference 70

==(2)、交换机具体配置==

SW1具体配置:
[SW1]vlan batch 10 20
[SW1]int e0/0/1
[SW1-Ethernet0/0/1]p l a
[SW1-Ethernet0/0/1]p d v 10
[SW1-Ethernet0/0/1]int e0/0/2
[SW1一Ethernet0/0/2]p l a
[SW1-Ethernet0/0/2]p d v 20
[SW1-Ethernet0/0/2j]inteo/0/3
[SW1一Ethernet0/0/3]p l t
[SW1一Ethernet0/0/3]p t a v a
[SW1-Ethernet0/0/3]int e0/0/4
[SW1-Etherneto/0/4]p l t
[SW1-Ethernet0/0/4]p t a v a
SW2具体配置:
[SW2]vlan b 10 20 30

[SW2]int g0/0/1
[SW2-GigabitEthernet0/0/1]p l t
[SW2-GigabitEthernet0/0/1]p t a v a
[SW2-GigabitEtherneto/0/1]int g0/0/2
[SW2-GigabitEtherneto/o/2]p l a
[SW2-GigabitEtherneto/o/2]p d v 30

[SW2]int vlanif 10
[SW2-Vlanif10]ip add 192.168.10.100 24
[SW2]int vlanif 20
[SW2-Vlanif20]ip add 192.168.20.100 24
[SW2]int vlanif 30
[SW2-Vlanif30]ip add 13.0.0.124

[SW2]int vlanif 10
[SW2-vlanif10]lvrrp vrid 10 virtual-ip 192.168.10.1
[SW2-vlanif10]vrrp vrid 10 priority 120
[SW2-vlanif10]vrrp vrid 10 preempt-mode timer delay 5
[SW2-vlanif10]vrrp vrid 10 track int g0/0/2 reduced 30
[SW2]int vlanif 20
[SW2-vlanif20]vrrp vrid 20 virtual-ip 192.168.20.1
[SW2-vlanif20]vrrp vrid 20 priority 115
[SW2]iproute-static 0.0.0.0 0.0.0.0 13.0.0.2
SW3的VRRP配置
[SW3]int vlanif 10
[SW3-vlanif10]vrrp vrid 10 virtual-ip 192.168.10.1
[SW3]int vlanif 20 
[SW3-vlanif20]vrrp vrid 20 priority 120
[SW3-vlanif20]vrrp vrid 20 preempt-mode timer delay 5
[SW3-vlanif20]vrrp vrid 20 track int g0/0/2
[SW3]iproute-static 0.0.0.0 0.0.0.0 23.0.0.2

因为SW1配置相对简单,SW2与SW3配置基本一致,所以这里我只展示SW2的配置图解
SW2.1.png
Snipaste_20211027_233524.png