一、VRRP基础概念

1)VRRP概述

  1. Virtual Router Redundancy Protocol,也即虚拟路由器冗余协议。

  2. 利用VRRP,一组路由器(同一个LAN中的接口)协同工作,但只有一个处于Master状态,处于该状态的路由器(的接口)承担实际的数据流量转发任务。在一个VRRP组内的多个路由器接口共用一个虚拟IP地址,该地址被作为局域网内所有主机的缺省网关地址。

  3. VRRP决定哪个路由器是Master,Master路由器负责接收发送至用户网关的数据包并进行转发,以及响应PC对于其网关IP地址的ARP请求。

  4. Backup路由器侦听Master路由器的状态,并在Master路由器发生故障时,接替其工作,从而保证业务流量的平滑切换。

2)技术诞生背景

VRRP基础概念及配置_IP
VRRP的作用:提供了局域网上的设备备份机制。VRRP是一种容错协议,它保证当主机的下一跳路由器坏掉时,可以及时由另一台路由器来代替,从而保证通讯的连续性和可靠性。VRRP工作时会在网络中加入一个含有虚拟IP和虚拟MAC地址的虚拟路由器,该路由器充当网络用户的网关,使得网络上的主机与虚拟路由器通信无需了解这个网络上物理路由器的任何信息。

PS:Master报文的发送:当Master正常工作时,它会每隔一段时间(缺省为1秒)向组内Backup设备发送vrrp通告报文,通告自己工作正常。(注:只有Master发送VRRP报文)VRRP通告报文被封装在IP报文里,通过组播地址224.0.0.18发送,TTL为255,协议号为112

VRRP基础概念及配置_优先级_02
VRRP报文是一种组播报文,由Master路由器发出来通告它的存在,使用VRRP报文可以检测虚拟路由器的各种参数,用于主路由器的选择。VRRP报文是封装在IP报文中,通过组播的方式传送。也就是说VRRP协议跟ICMP协议一样,工作在第三层(网络层),它是不具有端口的说法的。

  1. Version:VRRP协议版本号,RFC3768定义了版本号2

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

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

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

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

  6. Auth Type: 认证类型字段,一个虚拟路由器只能使用一种认证类型,若Backup路由器收到的通告报文段中认证类型字段是未知或者和本地配置不匹配,则将该数据包丢弃。认证类型字段的定义:0 表示无认证1 表示保留,向前一个版本的RFC2338提供兼容性2 表示保留,向前一个版本的RFC2338提供兼容性

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

  8. Checksum:整个VRRP报文的校验和

  9. IP Address:VRRP虚拟路由器的虚拟IP地址(可配置多个)(10) Authentication Data:验证字。为了向RFC2338兼容,在实际的封装时,全置为0,接收方会忽略此字段

3)VRRP带来什么?

VRRP基础概念及配置_IP_03VRRP基础概念及配置_优先级_04

4)VRRP术语

VRRP路由器

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

VRRP组 :

VRRP组由多个VRRP路由器组成,使用相同的VRID (Virtual Router ID虚拟路由器ID)进行标识,属于同一VRRP组的VRRP路由器互相交换信息,每一个VRRP组中只能有一个Master。

虚拟路由器:

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

虚拟IP地址、MAC地址:

虚拟IP地址就是虚拟路由器的IP地址,该地址实际上就是用户的网关地址。

虚拟MAC地址是虚拟路由器根据VRID生成的MAC地址。一个虚拟路由器拥有一个虚拟MAC地址,格式为: 00-00-5E-00-01-{VRID}。

Master、Backup路由器:

Master路由器:在VRRP组中实际转发数据包的路由器,在每一个VRRP组中,仅有Master响应对虚拟IP地址的ARP请求。Master路由器同时以一定的时间间隔发送VRRP消息,以便通知Backup路由器自己的存活情况。

Backup路由器:处于监听状态的路由器,一旦Master路由器出现故障Backup路由器就开始接替工作。

选举依据: 先比较接口VRRP优先级(比大),如果相等,则比较接口IP地址(比大 )。

5)虚拟MAC地址

通过VRRP形成的虚拟路由器使用虚拟IP地址和虚拟MAC与网络中的PC进行通信。

虚拟MAC的格式如下:最后1个字节的VRID表示虚拟路由器ID的16进制,例如VRID是1,虚拟MAC地址为00-00-5E-00-01-01。

6)VRRP状态机

VRRP协议的状态共有三种,分别是Initialize,Master,Backup,初始状态都是lnitialize,通过比较优先级产生Master和Backup,在规定时间内,Backup若没有收到Master发来的心跳报文,将切换为Master。
VRRP基础概念及配置_Backup_05

7)Master/Backup路由器

Master路由器:

定时( Advertisement Interval) 发送VRRP通告报文,以便向Backup路由器告知自己的存活情况。

以虚拟MAC地址响应其他设备对虚拟IP地址的ARP请求。

转发目的MAC地址为虚拟MAC地址的IP报文

如果它是这个虚拟IP地址的拥有者( 接口实际IP地址为虚拟IP地址 ),则接收目的IP地址为这个虚拟IP地址的IP报文。否则,丢弃这个IP报文。

如果收到比自己优先级大的报文,立即成为Backup。

如果收到与自己优先级相等的VRRP报文且本地接口IP地址小于对端接口IP立即成为Backup。

Backup路由器:

接收Master设备发送的VRRP通告报文,判断Master设备的状态是否正常。

对虚拟IP地址的ARP请求,不做响应。

丢弃目的IP地址为虚拟IP地址的IP报文。

如果收到优先级和自己相同或者比自己大的报文,则重置Master_Down_Interval定时器,不进一步比较IP地址。

如果收到比自己优先级小的报文且该报文优先级是0时,定时器时间设置为Skew_time(偏移时间),如果该报文优先级不是0,丢弃报文,立刻成为Master。

Master_Down_Interval定时器:Backup设备在该定时器超时后仍未收到通告报文,则会转换为Master状态。计算公式如下: Master_Down_Interval=(3*Advertisement_Interval) + Skew_time。其中 , Skew_Time=(256-Priority)/256。

8)VRRP工作过程

  • VRRP组中的设备选举出Master。Master设备通过发送免费ARP报文,将虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务。
  • Master设备周期性向备份组内所有Backup设备发送VRRP通告报文。
  • 如果Master设备出现故障,VRRP备份组中的Backup设备重新选举新的Master。
  • VRRP组状态切换时,Master设备由一台设备切换为另外一台设备,新的Master设备会立即发送携带虚拟路由器的虚拟MAC地址和虚拟IP地址信息的免费ARP报文刷新与它连接的主机或设备中的MAC表项,从而把用户流量引到新的Master设备上来,整个过程对用户完全透明。
  • 原Master设备故障恢复时,若该设备为IP地址拥有者(则其优先级为255 ),将直接切换至Master状态。若该设备优先级小于255,将首先切换至Backup状态,且其优先级恢复为故障前配置的优先级。
  • Backup设备的优先级高于Master设备时,由Backup设备的工作方式(抢占方式和非抢占方式)决定是否重新选举Master。
抓包展示

VRRP基础概念及配置_IP_06

总结:

VRRP 虚拟路由器冗余协议
VRRP 组播地址 224.0.0.18

TTL 255

协议号 112

作用:vrrp是一种路由器备份机制。保证网络主机的下一跳路由器故障时,可及时由另一台路由器代替,从而保证网络的连续性和可靠性。

概念:
VRID:每一个VRRP组都有一个vrid,作为唯一标识

虚拟路由、虚拟IP、虚拟MAC

虚拟路由:VRRP虚拟出的逻辑路由器,上面由虚拟IP、虚拟MAC

虚拟IP:VRRP组中由MASTER设备承载的虚拟IP地址,并且是所有网络设备的默认网关

虚拟MAC: 00-00-5E-00-01-{vrid}

MASTER:承载虚拟IP,实际负责用于接受用户发送的数据和数据包的转发,响应局域网主机的ARP请求,周期性的给BACKUP发送VRRP报文通告自己的存活情况

MASTER,BACKUP的选举依据:优先使用VRRP优先级来选举,值越大,优先级越高

如果优先级一样,则通过接口的IP地址来选举,IP越大优先级越高

BACKUP:监听MASTER发送的VRRP报文,当在一定时间范围内没接收到VRRP报文,则会替代MASTER角色

VRRP报文:封装在IP报文里,通过组播地址224.0.0.18发送,TTL为255,协议号112

二、VRRP配置

1.实验拓扑

VRRP基础概念及配置_Backup_07

2.配置步骤

(1).基础配置:
CORE1:
[CORE1]vlan 10    //创建vlan10

[CORE1-vlan10]int vlan 10    //进入vlanif 10

[CORE1-Vlan-interface10]ip add 192.168.10.1 24    //配置ip

[CORE1-Vlan-interface10]int g1/0/2    //进入接口

[CORE1-GigabitEthernet1/0/2]port link-type trunk    //配置接口类型为trunk

[CORE1-GigabitEthernet1/0/2]port trunk  permit vlan 10    //允许vlan10通过

[CORE1-GigabitEthernet1/0/2]quit    //返回系统视图
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
CORE2:
[CORE2]VLAN 10    //创建vlan10

[CORE2-vlan10]INT VLAN 10    //进入vlanif 10

[CORE2-Vlan-interface10]IP ADD 192.168.10.2 24    //配置ip

[CORE2-Vlan-interface10]int g1/0/2    //进入接口

[CORE2-GigabitEthernet1/0/2]port link-type trunk    //配置接口类型为trunk

[CORE2-GigabitEthernet1/0/2]port trunk permit vlan 10    //允许vlan 10通过

[CORE2-GigabitEthernet1/0/2]quit    //返回系统视图
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
SW:
[SW]vlan 10    //创建vlan10

[SW-vlan10]int range g1/0/1 g1/0/2    //进入接口组

[SW-if-range]port link-type trunk    //配置接口类型为trunk

[SW-if-range]port trunk permit vlan 10    //允许vlan10通过

[SW-if-range]int g1/0/3    //进入接口

[SW-GigabitEthernet1/0/3]port link-type access    //配置接口类型为access

[SW-GigabitEthernet1/0/3]port access vlan 10    //把端口加入到vlan10

[SW-GigabitEthernet1/0/3]quit    //返回到系统视图
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
PC:

VRRP基础概念及配置_优先级_08

(2).vrrp基础配置:
CORE1:
[CORE1]int vlan 10    //进入vlanif 10

[CORE1-Vlan-interface10]vrrp vrid 10 virtual-ip 192.168.10.254    //创建一个vrid为10的vrrp组,配置虚拟ip为192.168.10.254

[CORE1-Vlan-interface10]vrrp vrid 10 priority 120    //配置该接口在vrrp组的优先级为120,保证该设备选举为主,默认优先级为100

[CORE1-Vlan-interface10]quit    //返回系统视图
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
CORE2:
[CORE2]int vlan 10    //进入vlanif 10

[CORE2-Vlan-interface10]vrrp vrid 10 virtual-ip 192.168.10.254    //创建一个vrid为10的vrrp组,配置虚拟ip为192.168.10.254

[CORE2-Vlan-interface10]quit    //返回系统视图
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
(3).VRRP与Track模块联动
当Master上行链路出现故障时,备份组无法感知此故障,局域网内的主机仍通过Master访问外部网络,导致网络无法访问。通过配置Track,可以解决此问题。当Master上行链路故障时,将Master的优先级降低指定数额,使备份组的设备优先级高于Master的优先级,成为新的Master,保证局域网内的主机与外部网络的通信不会中断,当原Master上行链路正常后,又会恢复优先级,重新成为Master。
CORE1:
[CORE1]track 1 interface g1/0/1    //配置接口监视,监视上行g1/0/1接口

[CORE1-track-1]int vlan 10    //进入vlanif 10

[CORE1-Vlan-interface10]vrrp vrid 10 track 1 priority reduced 30    //调用track 1,设置优先级减少30

[CORE1-Vlan-interface10]quit    //返回系统视图
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
CORE2:
[CORE2]track 1 interface g1/0/1    //配置接口监视,监视上行g1/0/1接口

[CORE2-track-1]int vlan 10    //进入vlanif 10

[CORE2-Vlan-interface10]vrrp vrid 10 track 1 priority reduced 30    //调用track 1,设置优先级减少30

[CORE2-Vlan-interface10]quit    //返回系统视图
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

3.结果检验

使用display vrrp命令,查看vrrp是否正常建立:
VRRP基础概念及配置_优先级_09
将CORE1的上行接口g1/0/1接口断开,再次查看vrrp状态:
VRRP基础概念及配置_IP_10
可以看到,CORE1设备已经从Master变为Backup ,优先级也由120降低到了90。