分享免费的编程资源和教程

网站首页 > 技术教程 正文

虚拟路由冗余协议VRRP 虚拟路由冗余协议 (VRRP)?

goqiw 2024-09-29 16:25:04 技术教程 23 ℃ 0 评论

什么是VRRP?

虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)是一种用于提高网络可靠性的容错协议。通过VRRP,可以在主机的下一跳设备出现故障时,及时将业务切换到备份设备,从而保障网络通信的连续性和可靠性。

VRRP的工作原理

VRRP的三种状态

VRRP协议中定义了三种状态机:初始状态(Initialize)、活动状态(Master)、备份状态(Backup)。其中,只有处于Master状态的设备才可以转发那些发送到虚拟IP地址的报文。下表详细描述了三种状态。

VRRP选举机制

VRRP根据优先级来确定虚拟路由器中每台路由器的角色(Master路由器或Backup路由器)。优先级越高,则越有可能成为Master路由器。

初始创建的路由器工作在Backup状态,通过VRRP报文的交互获知虚拟路由器中其他成员的优先级:

如果VRRP报文中Master路由器的优先级高于自己的优先级,则路由器保持在Backup状态;

如果VRRP报文中Master路由器的优先级低于自己的优先级,采用抢占工作方式的路由器将抢占成为Master状态,周期性地发送VRRP报文,采用非抢占工作方式的路由器仍保持Backup状态;

如果在一定时间内没有收到VRRP报文,则路由器切换为Master状态。

VRRP优先级的取值范围为0到255(数值越大表明优先级越高),可配置的范围是1到254,优先级0为系统保留给路由器放弃Master位置时候使用,255则是系统保留给IP地址拥有者使用。当路由器为IP地址拥有者时,其优先级始终为255且不能修改。因此,当虚拟路由器内存在IP地址拥有者时,只要其工作正常,则为Master路由器,选举方式如下图所示。

注:当vrrp组中的优先级相同时,先启动完成初始化的路由器为Master不比较IP大小,backup不抢占;只有vrrp组中的所有路由器同时启动且优先级相同才比较IP大小,IP大的为Master

配置命令

vrrp主备备份

[SwitchA] interface vlanif 100
[SwitchA-Vlanif100] vrrp vrid 1 virtual-ip 10.1.1.111
[SwitchA-Vlanif100] vrrp vrid 1 priority 120                  //设备在VRRP备份组中的优先级缺省为100,修改Master设备的优先级大于Backup设备
[SwitchA-Vlanif100] vrrp vrid 1 preempt-mode timer delay 20   //设备在VRRP备份组中缺省采用立即抢占方式。修改Master设备的延迟抢占时间,以避免在网络环境不稳定时,由于双方频繁抢占而导致流量中断的问题
[SwitchA-Vlanif100] quit
SwitchB配置相同

[SwitchA] display vrrp
  Vlanif100 | Virtual Router 1
    State : Master
    Virtual IP : 10.1.1.111
    Master IP : 10.1.1.1
    PriorityRun : 120
    PriorityConfig : 120                                                        
    MasterPriority : 120                                                        
    Preempt : YES   Delay Time : 20 s
    TimerRun : 1 s
    TimerConfig : 1 s
    Auth type : NONE                                                            
    Virtual MAC : 0000-5e00-0101                                                
    Check TTL : YES                                                             
    Config type : normal-vrrp                                                   
    Backup-forward : disabled
    Create time : 2012-01-12 20:15:46
    Last change time : 2012-01-12 20:20:56

vrrp实现负载分担

[SwitchA] interface vlanif 100
[SwitchA-Vlanif100] vrrp vrid 1 virtual-ip 10.1.10.111
[SwitchA-Vlanif100] vrrp vrid 1 priority 120                 //设备在VRRP备份组中的优先级缺省为100,修改Master设备的优先级大于Backup设备
[SwitchA-Vlanif100] vrrp vrid 1 preempt-mode timer delay 20  //设备在VRRP备份组中缺省采用立即抢占方式。修改Master设备的延迟抢占时间,以避免在网络环境不稳定时,由于双方频繁抢占而导致流量中断的问题
[SwitchA-Vlanif100] quit

[SwitchA] interface vlanif 500
[SwitchA-Vlanif500] vrrp vrid 2 virtual-ip 10.1.50.111
[SwitchA-Vlanif500] quit

[SwitchB] interface vlanif 100
[SwitchB-Vlanif100] vrrp vrid 1 virtual-ip 10.1.10.111
[SwitchB-Vlanif100] quit

[SwitchB] interface vlanif 500
[SwitchB-Vlanif500] vrrp vrid 2 virtual-ip 10.1.50.111
[SwitchB-Vlanif500] vrrp vrid 2 priority 120                 //设备在VRRP备份组中的优先级缺省为100,修改Master设备的优先级大于Backup设备
[SwitchB-Vlanif500] vrrp vrid 2 preempt-mode timer delay 20  //设备在VRRP备份组中缺省采用立即抢占方式。修改Master设备的延迟抢占时间,以避免在网络环境不稳定时,由于双方频繁抢占而导致流量中断的问题
[SwitchB-Vlanif500] quit

VRRP与BFD联动

VRRP备份组通过收发VRRP协议报文进行主备状态的协商,以实现设备的冗余备份功能。当VRRP备份组之间的链路出现故障时,由于此时VRRP报文无法正常协商,Backup设备需要等待3倍协商周期(通常为3秒左右)后才会切换为Master设备,在等待切换期间内,业务流量仍会发往Master设备,此时会造成业务流量丢失。

BFD能够快速检测、监控网络中链路或者IP路由的连通状况,通过部署VRRP与BFD联动,可以使主备切换的时间控制在1秒以内,有效解决上述问题。通过在Master设备和Backup设备之间建立BFD会话并与VRRP备份组进行绑定,由BFD机制快速检测VRRP备份组的通信故障,并在出现故障时及时通知VRRP备份组进行主备切换,从而大大减少应用中断时间。


[SwitchA] interface vlanif 100
[SwitchA-Vlanif100] vrrp vrid 1 virtual-ip 10.1.1.3
[SwitchA-Vlanif100] vrrp vrid 1 priority 120                 //设备在VRRP备份组中的优先级缺省为100,修改Master设备的优先级大于Backup设备
[SwitchA-Vlanif100] vrrp vrid 1 preempt-mode timer delay 20  //设备在VRRP备份组中缺省采用立即抢占方式。修改Master设备的延迟抢占时间,以避免在网络环境不稳定时,由于双方频繁抢占而导致流量中断的问题
[SwitchA-Vlanif100] quit

[SwitchB] interface vlanif 100
[SwitchB-Vlanif100] vrrp vrid 1 virtual-ip 10.1.1.3
[SwitchB-Vlanif100] quit

[SwitchA] bfd
[SwitchA-bfd] quit
[SwitchA] bfd atob bind peer-ip 10.1.1.2 interface vlanif 100 //配置静态BFD会话,监测备份组之间的链路。
[SwitchA-bfd-session-atob] discriminator local 1 //配置BFD会话的本地标识符,SwitchA上的本地标识符需要与SwitchB上的远端标识符一致
[SwitchA-bfd-session-atob] discriminator remote 2 //配置BFD会话的远端标识符,SwitchA上的远端标识符需要与SwitchB上的本地标识符一致
[SwitchA-bfd-session-atob] min-rx-interval 100 //配置BFD报文的接收间隔
[SwitchA-bfd-session-atob] min-tx-interval 100 //配置BFD报文的发送间隔
[SwitchA-bfd-session-atob] commit //提交BFD会话配置,使配置生效
[SwitchA-bfd-session-atob] quit
[SwitchA] display bfd session all
--------------------------------------------------------------------------------
Local Remote PeerIpAddr      State     Type        InterfaceName                
--------------------------------------------------------------------------------
1     2      10.1.1.2      Up        S_IP_IF     Vlanif100         
--------------------------------------------------------------------------------
     Total UP/DOWN Session Number : 1/0     


[SwitchB] bfd
[SwitchB-bfd] quit
[SwitchB] bfd btoa bind peer-ip 10.1.1.1 interface vlanif 100
[SwitchB-bfd-session-btoa] discriminator local 2
[SwitchB-bfd-session-btoa] discriminator remote 1
[SwitchB-bfd-session-btoa] min-rx-interval 100
[SwitchB-bfd-session-btoa] min-tx-interval 100
[SwitchB-bfd-session-btoa] commit
[SwitchB-bfd-session-btoa] quit

配置vrrp与bfd联动
在SwitchB上配置VRRP与BFD联动,当BFD会话状态Down时,SwitchB的优先级增加40
[SwitchB] interface vlanif 100
[SwitchB-Vlanif100] vrrp vrid 1 track bfd-session 2 increased 40 //其中2代表BFD会话的本地标识符
[SwitchB-Vlanif100] quit

验证
[SwitchA] display vrrp
  Vlanif100 | Virtual Router 1
    State : Master
    Virtual IP : 10.1.1.3
    Master IP : 10.1.1.1
    PriorityRun : 120
    PriorityConfig : 120
    MasterPriority : 120
    Preempt : YES   Delay Time : 20 s
    TimerRun : 1 s
    TimerConfig : 1 s
    Auth type : NONE
    Virtual MAC : 0000-5e00-0101
    Check TTL : YES
    Config type : normal-vrrp
    Backup-forward : disabled
    Create time : 2012-01-12 20:15:46
    Last change time : 2012-01-12 20:15:46

[SwitchB] display vrrp
  Vlanif100 | Virtual Router 1
    State : Backup
    Virtual IP : 10.1.1.3
    Master IP : 10.1.1.1
    PriorityRun : 100
    PriorityConfig : 100
    MasterPriority : 120
    Preempt : YES   Delay Time : 0 s
    TimerRun : 1 s
    TimerConfig : 1 s
    Auth type : NONE
    Virtual MAC : 0000-5e00-0101
    Check TTL : YES
    Config type : normal-vrrp
    Backup-forward : disabled
    Track BFD : 2  Priority increased : 40
    BFD-session state : UP
    Create time : 2012-01-12 20:15:46
   Last change time : 2012-01-12 20:15:46

模拟故障

# 在SwitchA的接口GE1/0/1上执行shutdown命令,模拟链路故障。此时在SwitchA和SwitchB上分别执行display vrrp命令,可以看出SwitchA状态变为Initialize,SwitchB状态变为Master,联动的BFD会话状态为DOWN。

在SwitchA的接口GE1/0/1上执行undo shutdown命令,模拟故障恢复。等待20秒后,分别在SwitchA和SwitchB上执行display vrrp命令,可以看出SwitchA状态恢复为Master,SwitchB状态恢复为Backup,联动的BFD会话状态恢复为UP。

VRRP与接口状态联动监视上行接口


[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 virtual-ip 10.1.1.3
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 priority 120
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 preempt-mode timer delay 20
[RouterA-GigabitEthernet2/0/0] quit

[RouterB] interface gigabitethernet 2/0/0
[RouterB-GigabitEthernet2/0/0] vrrp vrid 1 virtual-ip 10.1.1.3
[RouterB-GigabitEthernet2/0/0] quit
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 track interface gigabitethernet 1/0/0 reduced 40 监视的接口GE1/0/0状态Down时,RouterA的优先级降低40。
[RouterA-GigabitEthernet2/0/0] quit

[RouterA] display vrrp
  GigabitEthernet2/0/0 | Virtual Router 1
    State          : Master
    Virtual IP       : 10.1.1.3
    Master IP        : 10.1.1.1
    PriorityRun      : 120
    PriorityConfig   : 120
    MasterPriority   : 120
    Preempt          : YES   Delay Time : 20 s   
    TimerRun         : 1 s 
    TimerConfig      : 1 s
    Auth Type        : NONE
    Virtual Mac      :  0000-5e00-0101
    Check TTL        : YES
    Config type      : normal-vrrp              
    Backup-forward   : disabled
    Track IF         : GigabitEthernet1/0/0   Priority reduced : 40
    IF state       : UP
    Create time      : 2012-05-22 17:32:56
    Last change time : 2012-05-22 17:33:00

VRRP与路由联动监视上行链路

如图7-17所示,局域网内的主机通过Switch双归属到部署了VRRP备份组的RouterA和RouterB,其中RouterA为Master。正常情况下,RouterA承担网关工作,用户侧流量由Switch → RouterA → RouterC → RouterE进行转发。

用户希望当RouterC到RouterE之间路由撤销或者状态变为非激活时,VRRP备份组能感知并进行主备切换。启用RouterB承担业务转发,以减小链路故障对业务转发的影响。


[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] vrrp vrid 1 virtual-ip 10.1.1.10
[RouterA-GigabitEthernet1/0/0] vrrp vrid 1 priority 120
[RouterA-GigabitEthernet1/0/0] vrrp vrid 1 preempt-mode timer delay 20
[RouterA-GigabitEthernet1/0/0] quit

[RouterB] interface gigabitethernet 1/0/0
[RouterB-GigabitEthernet1/0/0] vrrp vrid 1 virtual-ip 10.1.1.10
[RouterB-GigabitEthernet1/0/0] quit

[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] vrrp vrid 1 track ip route 172.16.1.0 24 reduced 40
[RouterA-GigabitEthernet1/0/0] quit

验证

在RouterA上执行display isis route命令,可以看到存在一条去往172.16.1.0/24网段的路由。

# 分别在RouterA和RouterB上执行display vrrp命令,可以看到RouterA的状态为Master,联动的路由状态为Reachable,RouterB的状态为Backup


# 在RouterE的接口GE1/0/0上执行shutdown命令,模拟链路故障。

# 分别在RouterA和RouterB上执行display vrrp命令,可以看到RouterA的状态切换为Backup,联动的路由状态为Unreachable,RouterB的状态切换为Master。

# 在RouterE的接口GE1/0/0上执行undo shutdown命令,恢复链路故障。等待20秒后,分别在RouterA和RouterB上执行display vrrp命令,可以看到RouterA的状态恢复为Master,联动的路由状态恢复为Reachable,RouterB的状态恢复为Backup。

VRRP与NQA联动监视上行链路

组网需求

如图7-16所示,局域网内的主机通过Switch双归属到部署了VRRP备份组的RouterA和RouterB,其中RouterA为Master。正常情况下,RouterA承担网关工作,用户侧流量由Switch → RouterA → RouterC → RouterE进行转发。

用户希望当RouterC到RouterE之间的链路故障或链路质量较差时,VRRP备份组可以感知并进行主备切换,启用RouterB承担业务转发,以减小链路故障对业务转发的影响。

配置思路

采用VRRP与NQA联动实现对上行链路故障的感知及主备网关的切换,配置思路如下:

  1. 配置各设备接口IP地址及路由协议,使网络层路由可达。
  2. 在RouterA和RouterB上配置VRRP备份组,其中RouterA的优先级为120,抢占延时为20秒,作为Master设备;RouterB的优先级为缺省值,作为Backup设备,实现网关的主备备份。
  3. 在RouterA上配置ICMP类型的NQA测试例,配置目的地址为RouterE上接口GE1/0/0的IP地址,监测RouterA到RouterE的接口GE1/0/0间链路的连通性。
  4. 在RouterA上配置VRRP和NQA联动,当NQA检测到链路故障时,触发VRRP备份组进行主备切换。
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] vrrp vrid 1 virtual-ip 10.1.1.10
[RouterA-GigabitEthernet1/0/0] vrrp vrid 1 priority 120
[RouterA-GigabitEthernet1/0/0] vrrp vrid 1 preempt-mode timer delay 20
[RouterA-GigabitEthernet1/0/0] quit

[RouterB] interface gigabitethernet 1/0/0
[RouterB-GigabitEthernet1/0/0] vrrp vrid 1 virtual-ip 10.1.1.10
[RouterB-GigabitEthernet1/0/0] quit

在RouterA上配置目的IP地址为20.1.1.2/24的ICMP类型的NQA测试例,当丢包率达到80%时,判定测试例failed。
[RouterA] nqa test-instance user test
[RouterA-user-test] test-type icmp
[RouterA-user-test] destination-address ipv4 20.1.1.2
[RouterA-user-test] frequency 20  探测频率
[RouterA-user-test] probe-count 5   计数
[RouterA-user-test] fail-percent 80 失败百分比
[RouterA-user-test] start now
[RouterA-user-test] quit

在RouterA配置VRRP与NQA联动功能,当NQA测试例failed时,RouterA的优先级降低40。
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] vrrp vrid 1 track nqa user test reduced 40
[RouterA-GigabitEthernet1/0/0] quit

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表