zoukankan      html  css  js  c++  java
  • VRRP

    一、简述

    VRRP:虚拟网关冗余协议,是为了预防单台网关设备发生单点故障的一项网关冗余技术。

    VRRP是运行在三层接口上的,无论这个接口是真实的还是虚拟的,三层交换机、路由器、防火墙等设备均可配置部署。

    当三层接口激活了VRRP协议之后,便会发送和侦听VRRP报文,需要协同的VRRP设备必须属于同一个广播域,否则组播VRRP报文无法正常交互。

    虚拟路由器是一台逻辑设备,有自己单独的IP和MAC地址,当VRRP开始工作时,R2和R2会进行选举,胜出的路由器成为master,其他的路由器成为backup路由器,master承担虚拟路由器的具体工作,如此一来当PC需要发送数据包到外部网络时,数据包实际被发送给master路由器,而当R1故障之后,通过VRRP协议的运作,R2能够感知到当前的master路由器发生故障,从而将自己的状态自动切换到master,接下来它将接替原来属于R1的工作,在整个VRRP的切换过程当中,用户是完全没有感觉的,PC的配置也不需要任何变更。

    二、基本概念

    1、VRRP组及VRID

    一个VRRP组由多台协同工作的设备接口共同组成,使用相同的VRID(虚拟路由器标识符)号,也就是说需要协同的两台设备在配置VRRP时,VRID必须是一样的,一个VRRP组当中只能出现一台master路由器,值得一提的是,一个接口可以加入多个VRRP组,只要VRID不同即可。

    虚拟出来的路由器有自己单独的IP地址和MAC地址,虚拟出来的MAC地址的格式是0000-5e00-01xx,其中xx指的是VRID。当master路由器收到请求虚拟路由器MAC地址的ARP request时,回复的并不是自己物理接口的MAC地址,而是虚拟MAC地址。

    通常情况下,虚拟路由器的地址都是单独的一个IP,但是并不是说不能使用与VRRP接口重复的IP地址,这样是可以的,一般不推荐这么做,如果在IP资源短缺的场景中,是可以这么做的,此时与虚拟网关IP重叠的那台路由器将会无条件成为master,这么做的时候master的优先级会加到最大255。

    2、master路由器与backup路由器

    master路由器其实指的并不是整个路由器的状态是master,而仅仅指的是运行VRRP协议的那个接口状态是master。master路由器在一个VRRP组中承担转发任务,这就要求当有用户发送ARP报文请求网关的MAC地址时,只能是master进行响应,响应的不是自己的mac地址,而是虚拟路由器的mac地址,这是第二次强调了。

    master路由器会周期性的发送VRRP报文给backup路由器,目的是告诉backup路由器自己存活,如果backup在一定的时间周期内收不到master路由器的报文,backup路由器就会判断主路由器死了,backup路由器将会将自己的状态切换成master.

    主从的选举是通过优先级进行选举的,比大,优先级大的将成为主路由器,缺省的优先级是100。

    3、抢占模式(preempt mode)

    如果backup路由器激活了抢占功能,那就当成发现master路由器的优先级比自己更低的时候就会立刻切换至master状态,成为新的master路由器。如果bakcup路由器没有激活抢占功能时,那么即使它发现master路由器的优先级比自己更小时,只要master路由器不死(不死意味着正常发送VRRP存活报文),backup不会抢占,也只能默默地保持bakcup状态,直到master路由器死掉。

    backup路由器就像古代的太子,只有皇帝死了,太子才能上位,皇上如果得了大病长时间卧床不起,身体不如太子了,太子没有开启抢占模式也不能抢占皇帝的位置;一旦太子开启了抢占模式,只要一发现皇帝的身体不行了,就会立马将自己的太子身份升级,自动升级,成为皇帝。当皇帝也不容易,不能轻易露出虚弱,要一直给太子传达自己身体非常好的信号。

    三、工作机制

    VRRP协议的正常工作依赖于VRRP的正常收发,出了问题一般大部分都是VRRP协议报文无法正常收发了。VRRP只定义了一种报文格式:通告报文,可能你也猜到了,只有master路由器使用通告报文,bakcup路由器并不需要进行回复,通告报文的组播地址是224.0.0.18,我觉得你必须要记住这个地址,因为这个知识点面试的时候经常会问到的。

    VRRP协议是三层协议,所以封闭在IP报废当中,协议号是112。

    2、状态机

    init初始状态,如果接口被down或者没插线的话接口状态就是init。

    当接口up之后,如果其VRRP的优先级为255,这种情况会发生了接口的实际IP地址是VRRP虚拟IP地址的情况,那么接口的VRRP状态将由init切换到master,而如果接口的VRRP优先级不为255,则进入bakcup状态。

    backup路由器只干一件事,就是等着master路由器死掉,它对于虚拟IP的ARP请求不予回应;丢弃目的MAC地址为VRRP虚拟MAC地址的数据帧;不接收目的IP地址为VRRP虚拟IP地址的数据包;如果他收到一个VRRP报文时:

    如果VRRP的优先级为0,这可能意味着master路由器主动放弃了master状态

    四、配置及实现

    1、路由器上配置VRRP

    img

    基础配置

    R1:默认激活抢占
    interface GigabitEthernet0/0/0
     ip address 192.168.1.253 255.255.255.0 
     vrrp vrid 1 virtual-ip 192.168.1.254
     vrrp vrid 1 priority 120
     vrrp vrid 1 preempt-mode timer delay 60  #将抢占延时设置为60秒
     vrrp vrid 1 track interface GigabitEthernet0/0/1 reduced 30  #监视上行链路,上行接口down之后将优先级减去30。
     R2:
     interface GigabitEthernet0/0/0
     ip address 192.168.1.252 255.255.255.0 
     
     
     vrrp vrid 1 virtual-ip 192.168.1.254  #默认优先级就是100,所以不用配置
    

    查看命令(两条)

    [R1]dis vrrp
      GigabitEthernet0/0/0 | Virtual Router 1
        State : Master              #当前状态是master
        Virtual IP : 192.168.1.254  #虚拟IP
        Master IP : 192.168.1.253   #物理接口的IP
        PriorityRun : 120           #本设备运行的优先级
        PriorityConfig : 120        #本设置配置的优先级
        MasterPriority : 120        #master的优先级
        Preempt : YES   Delay Time : 60 s   #抢占激活,延时为60秒 
        Virtual MAC : 0000-5e00-0101    #虚拟MAC地址3
        Track IF : GigabitEthernet0/0/1   Priority reduced : 30  #监视上行接口,故障之后减去30
    
    [R2]dis vrrp brief 
    Total:1     Master:0     Backup:1     Non-active:0      
    VRID  State        Interface                Type     Virtual IP     
    ----------------------------------------------------------------
    1     Backup       GE0/0/0                  Normal   192.168.1.254 
    

    NOTE:

    VRRP的监视功能还可以监视IP路由前缀,也可以与BFD、NQA联动。

    2、路由器上子接口上配置VRRP

    img

    interface GigabitEthernet0/0/2
     port link-type trunk
     port trunk allow-pass vlan 10 20
    interface GigabitEthernet0/0/3
     port link-type trunk
     port trunk allow-pass vlan 10 20
    

    R1:

    interface GigabitEthernet0/0/0.10
     dot1q termination vid 10      #是搞清楚为什么加这一条命令?为什么三层交换机做VRRP的时候不用?
     ip address 192.168.10.253 255.255.255.0 
     vrrp vrid 10 virtual-ip 192.168.10.254
     vrrp vrid 10 priority 120             #VRRP10的master 
     vrrp vrid 10 preempt-mode timer delay 30
     vrrp vrid 10 track interface GigabitEthernet0/0/1
    interface GigabitEthernet0/0/0.20
     ip address 192.168.20.253 255.255.255.0 
     vrrp vrid 20 virtual-ip 192.168.20.254   #VRRP20的backup
     vrrp vrid 20 track interface GigabitEthernet0/0/1
    

    R2

    interface GigabitEthernet0/0/0.10
     ip address 192.168.10.252 255.255.255.0 
     vrrp vrid 10 virtual-ip 192.168.10.254
     vrrp vrid 10 track interface GigabitEthernet0/0/1
    interface GigabitEthernet0/0/0.20
     ip address 192.168.20.252 255.255.255.0 
     vrrp vrid 20 virtual-ip 192.168.20.254
     vrrp vrid 20 priority 120
     vrrp vrid 20 preempt-mode timer delay 30
     vrrp vrid 20 track interface GigabitEthernet0/0/1
    
    [R1]dis vrrp brief
    Total:2     Master:1     Backup:1     Non-active:0      
    VRID  State        Interface                Type     Virtual IP     
    ----------------------------------------------------------------
    10    Master       GE0/0/0.10               Normal   192.168.10.254 
    20    Backup       GE0/0/0.20               Normal   192.168.20.254 
    [R2]dis vrrp brief
    Total:2     Master:1     Backup:1     Non-active:0      
    VRID  State        Interface                Type     Virtual IP     
    ----------------------------------------------------------------
    10    Backup       GE0/0/0.10               Normal   192.168.10.254 
    20    Master       GE0/0/0.20               Normal   192.168.20.254 
    

    2、三层交换机上配置VRRP

    img

    中间交换机的配置:

    e0/0/1配置为access,vlan 10

    e0/0/2配置为access,vlan 20

    e0/0/3和e0/0/4配置为trunk,允许vlan10和vlan20通过

    vlan batch 10 20
    int e0/0/1
    port link-ty ac
    port de vlan 10
    int e0/0/2 
    port link-ty ac
    port de vlan 20
    int e0/0/3
    port link-ty tr
    port tr all vlan all
    int e0/0/4
    port link-ty tr
    port tr all vlan all
    

    上面的两台交换机的两个接口也要配置成trunk接口,后面的配置由于过于简单,略过。P

  • 相关阅读:
    OK335x mksd.sh hacking
    Qt jsoncpp 对象拷贝、删除、函数调用 demo
    OK335xS 256M 512M nand flash make ubifs hacking
    Qt QScrollArea and layout in code
    JsonCpp Documentation
    Qt 4.8.5 jsoncpp lib
    Oracle数据库生成UUID
    freemarker得到数组的长度
    FreeMarker中if标签内的判断条件
    freemarker语法
  • 原文地址:https://www.cnblogs.com/yizhangheka/p/12519687.html
Copyright © 2011-2022 走看看