zoukankan      html  css  js  c++  java
  • HSRP 工作机制


    简介:HSRP 选举实验
    目的:HSRP的选举过程 (Lab)。包括状态、时间、超时。
    拓扑:两个路由器、一个交换机、一个主机。
    过程:1) R1, R2 都认为这自己是Active, R2收到R1的Hello后,变成Speak,并启动Standby timer. .
          2)R1, R2周期性的方式Hello.
          3) 当R2的Standby timerr超时发生时,R2变成Standby,并发送Heelo.
          4) R1收到了R2的Hello, 知道了R2就是Standby.
    一、配置HSRP路由器
    要让R1参与HSRP选举,先配置其局域网接口 "Standby 1 ip 192.168.1.1",使得R1参加HSRP第一组。然后配置”Standby 1 priority 105“: 把R1的priority设为105 (R2没设, 默认是100)。这将导致R1被选为Active。

    二、R2发送Hello: 我是Active
    一开始,R2先发送一个Hello, 告诉其它的HSRP路由器:“R2是Active, priority是100。这个Hello的IP目的地址224.0.0.2是个多播地址 (All routers),用来通知网段上所有的路由器, 目的地址是01:00:5e:00:00:02, 是个多播Mac地址与 All routers IP多播地址相应。 当S1收到Hello,把它洪泛, 送往R1, H1。

    三、R1发送Hello: 我是Active
    R1发送Hello, 宣告:我是Active。S1收到R1的Hello,发现虚拟MAC的输入接口改了,就更新MAC表。
    【注】Active路由器用虚拟 MAC来配置LInk报头的源地址。上一个Hello是R2发的,输入接口是F0/1, 这个Hello是R1发的,输入接口是F0/1。交换机得反应最新的虚拟MAC的输入接口位置。

    四、R1收Hello, 发Coup: 竞选Active
    R1收到R2的Hello时, 看到R2自称是Active,但priority比自己低, 就发送4个包: 1) Coup (R1宣称:我要当Active)。2) Hello 3) Arp回复广播包 (ff:ff:ff:ff:ff:ff),让交换机都更新MAC表,把虚拟MAC的接口指向R1。4) Arp回复组播包 (01:00:0c:cd:cd:cd) 通知生成树协议 (STP Uplink Fast )。
    这四个包的 MAC源地址都是虚拟路由器的MAC,00:00:0c:07:ac:01。

    五、R2发Resign:我不再竞选Active
    在收到R1的Coup后,R2看到自己的priority比较低,就宣告落选,发送三个包:1) Adv, 2) Resign, 3) Hello. 告诉HSRP路由器: 我不竞选Active了。在发送Hello时也启动了Hello timer (3 秒)。

    六、R1发Coup:竞选Active
    收到R2的退选通知后,R1再发送四个包: Coup声明要竞选Active,Hello让别的路由器知道我是Active,ARP reply广播虚拟路由器的虚拟MAC的位置。

    七、R2周期性的发送Hello:我是Speak
    R2的Hello计时器超时,再发Hello. HSRP路由器周期性的发送Hello, 以保持沟通,知道彼此的状态变化。
    方法是在路由器每次发送Hello时, 就启动Hello timer, 时限是三秒 (Hello timer的默认值), 相当于动画实验的15个tick。当Hello timerr超时,路由器就发送Hello.
    例,R2上一个Hello是在tick 10所发 (与Resign 同时发送),过了15个tick, Hello timer逾时,就再发送Hello。

    八、R1周期性的发Hello: 我是Active
    R1在tick 14发送Hello时, 启动了为时3秒的Hello timer。在tick 29, Hello timer 超时,R1再发送一个Hello, 宣称:我是Active. (这个动画的tick是 0.2 秒,3秒等于15个tick。)

    九、R2周期性的发送Hello:Speak
    R2 的 Hello timer 超时, 再发送Hello。

    十、R1周期性的发送Hello: 我是Active
    过了3秒 (15个tick),Hello timer超时,R1再发送Hello.
    R2周期性的发送Hello:Speak
    R1周期性的发送Hello:Active
    R1的Hello timer 超时,R1再发送Hello。
    R2 Standby timerr超时,发Hello
    在tick 10 R2退出Active选举变成Speak时,启动了Standby timer (10 秒)。到了tick 60, Standby timer超时,根据 HSRP的状态表,R2成为 Standby. 并发送 Hello, 宣称:我是Standby. (见附录:分析)
    R1收到Hello: R2被选上Standby
    R1收到R2的Hello, 宣称自己是Standby,更新R1的HSRP status table, 把Standby router从unknow变成R2 (192.168.1.3)
    附录一: 分析
    1. 地址
        -  虚拟IP地址: 外面的路由器和内部的主机只知道虚IP地址, 不用HSRP路本身的IP地址。
        - 虚拟Mac地址:交换机转发、主机传送只用虚拟Mac地址,它们不用HSRP路本身的Mac地址。
       - HSRP选举:HSRP路由器间的选举及路由协议所用的是HSRP路由器本身的地址,不是虚拟地址。
    2. R2怎么从Active变成Speak?
        结合R2收到R1的Hello, 及HSRP协议标准RFC2281的状态表,外面可以做出以下分析:
         R2目前的状态是Active, 收到一个R1所发的Hello, 知道R1是Active, priority是105,比自己高。
         那么, 根据RFC2281的状态表,R2应把状态从Active改为Speak.
         参考: RFC2281 > 5.7 State Transitions > AB/4 (row g, colum 6 Active
                      RFC2281 > 5.5 Events > g
    3. R2怎么从Speak变成Standby?
         - Tick 10, 当R2收到R1的Hello, 看到R1是Active,prioority也比自己大,就启动Standby timer,其值为10秒 (50 tick)。
            参考: RFC2281 > 5.6 Actions > B
         - Tick 60: 当R2 standby timer 超时,R2状态从Speak变成Standby. 这个动画的状态改变时间与RFC吻合。
            参考: RFC2281 > 5.7 State Transitions > D/5 (row d, colum 4- Speak
                         RFC2281 > 5.5 Events > d

    4. R1是怎么知道R2变成Standby?
         在tick 64, R1收到R2所发的Hello, 其中状态是Standby. R1得知Standby就是R2.
    附录二: Switching, Arp
    HSRP结合了三种技术:
      - HSRP主要是选举。它用比较priority 及 timer 超时来改变状态,并不复杂。
      - 交换机也比较简单:它用数据包的Mac源地址来“发现”新Mac, 用Mac目的地址来转发。
      - Arp只有两种数据包:Arp request以广播方式来查询Mac, Arp reply告知所查询的Mac地址。
      HSRP可说是一个局网的应用,要得妥善的使用switching及Arp技术,HSRP就不那么简单了。

    问一:为什么R1在发生Coup时,也发送Arp reply? 
    问二:为什么Arp reply用广播地址0xffffff, 而不是递补地址?
    问三:这个实验用了五个数据包,你能写出他们的IP 及Mac的目的地址、源地址吗?
                Hello, Coup, Resign, Arp reply, Ping.
    问四:H1要ping H2. ping的Mac地址应该怎么配置?这和H2是否在同一局网有关系吗?

    的默认网关是虚拟路由器(IP 192.168.1.1),
    简介:HSRP选举。
    1)网关down掉怎么办?
    问题:若网关坏了,局网中的主机、服务器对外通讯中断,得几小时才能修复,影响很大。
    解决方案:用一个虚拟路由器 (virtual router) 作为网关,从几个路由器中选出一个Active, 一个Standby 。Active 
        路由器代表虚拟路由器,处理路由器的具体工作。当Active出问题,Standby马上取代,通讯中断在数秒后恢复。
    什么是HSRP? Hot Standby Router Protocol是Cisco为解决网关中断问题的协议。协议招标是RFC2281.

    2)动画简介
          动画所用的数据是采集实验中路由器发送的数据包、监听路由器状态改变而来的。动画把HSRP实验过程中的数据包、状态改变可视化。例: 
        - 用动画表达数据包 (Hello, Coup, Resign, Arp reply)。使得动画与抓包根据相结合。
       - 用状态表显示HSRP状态改变 (Active, Standby, Speak)。使得动画与路由器状态演变相结合。
       - 用命令行表现路由器运行时所使用的配置、Show命令,使得动画与路由器命令行相结合。
      - HSRP包括以下动画:
        1.HSRP basic: 是手工编辑,突出HSRP协议的重点,略过一些细节,使初学者能较快的得到整体了解。
        2. HSRP election (这个动画). 用路由器上采集的数据来说明选举过程。
        3. HSRP link down: 用路由器上采集的数据来说明断线处理。

    3)实验简介
    实验目的: 把HSRP选举Active, Standby的过程可视化。用户可以看到命令行、数据包、事件、状态间的互动关系。
    拓扑:两个路由器 (R1, R2), 两个主机 (H1, H2), 一个交换机 (S1)。
     - R1, R2是HSRP选举候选人, 经交换机S1相连。它们都有连线接到外面的网络云层。
          - 交换机S1连线到R1, R2, H1,是局网主机和网关间的必经之路, 其Mac表记录虚拟路由器的Mac地址。
         - 主机H1位于局网之内,H2位于云层之后,它们经相连路由器相连。   
     实验环境:
     - 用Dynamips模拟Cisco 3620路由器,3640交换机。捕捉的数据包,用Pacp保存。
        - 运行时,监听路由器状态。
    实验过程: 整个过程可分为以下阶段:
       第一步:一开始R1, R2都自认为是Active, 发送Hello。(tick 0)
       第二步: 收到Hello后,重新定位。R1继续竞选Active, 发Coup。R2变成Speak, 发送Resign退选。(tick 8)
       第三步:Hello timer超时事件每3秒发生一次,R2周期性的发送Hello. (tick 25~59,)
       第四步:Standby timer 超时事件发生,R2变成Standby. ( tick 60)
       第五步:分析。用HSRP RFC2281的状态表,结合实验数据,解读这个实验中 R1, R2所发生的状态改变。

    4. 知识点
     HSRP知识点:
       - Virtual router (虚拟路由器):这是一个逻辑路由器,扮演网关的角色。具体工作由Active router处理。
       - Virtual IP addrss。 这是虚拟路由器的IP地址,局网内的主机、外面的路由器只和这个IP地址打交道。
       - Virtail mac address。这是虚拟路由器的Mac地址,局网内的主机、交换机用这个地址作为物理目的地址。。
       - Priroity.  HSRP选举根据priority大小而定,若priority相同,则比较router id (路由器的ip地址)。 
       - Active router。HSRP路由器中priority最高的被选为Actyive, 处理虚拟路由器的工作。.
       - Standby router。HSRP路由器中priority第二高的被选为Standby, 当Active出问题,它马上递补,成为Active。.
      - Speak router。一个路由器既不是Active,也不是 Standby, 它参与选举,但是个老百姓。。
      - Hello timer。HSRP 路由器发送Hello的频率。默认值3秒。
       - Hold timer。Hello的有效期。若Active过时没有发送新的Hello,  它可能下线了。默认值10秒。
       - 如何用 Arp reply 广播来让交换机发现Active的改变,更新Mac表, 。
    相关知识点:
        - 交换机转发、Mac表。
        - Arp reply (Arp回复)
        - Default gateway (默认网关) 
    参考:HSRP., Wikipedia  http://en.wikipedia.org/wiki/Hot_Standby_Router_Protocol
               HSRP RFC2881. http://www.faqs.org/rfcs/rfc2281.html
                Multicastaddress, Wikipediahttp://en.wikipedia.org/wiki/Multicast_address
               IP multicast: IP to Mac multicast address translation. http://www.rhyshaden.com/multicas.htm
    附录三:HSRP路由器配置命令行
    R1(config)#interface eth0/0                          ;R1的E0/0接口运行HSRP.
    R1(config-if)#standby 1 ip 192.168.1.1      ;R1在HSRP 第一组,这组的虚拟路由器IP地址是192.168.1.1.
    R1(config-if)#standby 1 priority 105             ;R1的priority是105
    R1(config-if)#standby 1 preempt                  ;若发现自己的priority比Active高,立即反应,要求替代现任Actove
    R1#

    R2(config)#interface eth0/0                          ;R2的E0/0接口运行HSRP.
    R2(config-if)#standby 1 ip 192.168.1.1        ;R2在HSRP 第一组
    R2#

  • 相关阅读:
    cf1100 F. Ivan and Burgers
    cf 1033 D. Divisors
    LeetCode 17. 电话号码的字母组合
    LeetCode 491. 递增的子序列
    LeetCode 459.重复的子字符串
    LeetCode 504. 七进制数
    LeetCode 3.无重复字符的最长子串
    LeetCode 16.06. 最小差
    LeetCode 77. 组合
    LeetCode 611. 有效三角形个数
  • 原文地址:https://www.cnblogs.com/cyrusxx/p/12824330.html
Copyright © 2011-2022 走看看