home *** CD-ROM | disk | FTP | other *** search
/ The Hacker's Encyclopedia 1998 / hackers_encyclopedia.iso / rfc / 3 / rfc2281.txt < prev    next >
Encoding:
Text File  |  2003-06-11  |  34.3 KB  |  956 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                              T. Li
  8. Request for Comments: 2281                              Juniper Networks
  9. Category: Informational                                          B. Cole
  10.                                                         Juniper Networks
  11.                                                                P. Morton
  12.                                                            Cisco Systems
  13.                                                                    D. Li
  14.                                                            Cisco Systems
  15.                                                               March 1998
  16.  
  17.  
  18.                 Cisco Hot Standby Router Protocol (HSRP)
  19.  
  20. Status of this Memo
  21.  
  22.    This memo provides information for the Internet community.  It does
  23.    not specify an Internet standard of any kind.  Distribution of this
  24.    memo is unlimited.
  25.  
  26. Copyright Notice
  27.  
  28.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  29.  
  30. IESG Note
  31.  
  32.    This document reflects an existing deployed protocol.  The IETF does
  33.    have a working group which is in the process of producing a standards
  34.    track protocol to address the same issues.
  35.  
  36. Abstract
  37.  
  38.    The memo specifies the Hot Standby Router Protocol (HSRP).  The goal
  39.    of the protocol is to allow hosts to appear to use a single router
  40.    and to maintain connectivity even if the actual first hop router they
  41.    are using fails.  Multiple routers participate in this protocol and
  42.    in concert create the illusion of a single virtual router.  The
  43.    protocol insures that one and only one of the routers is forwarding
  44.    packets on behalf of the virtual router.  End hosts forward their
  45.    packets to the virtual router.
  46.  
  47.    The router forwarding packets is known as the active router.  A
  48.    standby router is selected to replace the active router should it
  49.    fail. The protocol provides a mechanism for determining active and
  50.    standby routers, using the IP addresses on the participating routers.
  51.    If an active router fails a standby router can take over without a
  52.    major interruption in the host's connectivity.  This memo also
  53.    discusses the ARP, MAC address, and security issues with this
  54.    protocol.
  55.  
  56.  
  57.  
  58. Li, et. al.                  Informational                      [Page 1]
  59.  
  60. RFC 2281                       Cisco HSRP                     March 1998
  61.  
  62.  
  63. TABLE OF CONTENTS
  64.  
  65.    1   Introduction ..............................................  2
  66.    2   Conditions of Use .........................................  3
  67.    3   Scope .....................................................  4
  68.    3.1 Terminology ...............................................  4
  69.    4   Definitions ...............................................  4
  70.    5   Protocol ..................................................  4
  71.    5.1 Packet formats ............................................  4
  72.    5.2 Operational parameters ....................................  7
  73.    5.3 States ....................................................  8
  74.    5.4 Timers ....................................................  9
  75.    5.5 Events ....................................................  9
  76.    5.6 Actions ................................................... 10
  77.    5.7 State Transitions.......................................... 11
  78.    6   MAC address considerations ................................ 13
  79.    6.1 General ................................................... 13
  80.    6.2 Address Filter ............................................ 14
  81.    6.3 ICMP Redirect ............................................. 14
  82.    6.4 Proxy ARP ................................................. 15
  83.    7   Security Considerations ................................... 15
  84.    8   References ................................................ 15
  85.    9   Authors' Addresses ........................................ 16
  86.    10  Full Copyright Statement .................................. 17
  87.  
  88. 1. Introduction
  89.  
  90.    The Hot Standby Router Protocol, HSRP, provides a mechanism which is
  91.    designed to support non-disruptive failover of IP traffic in certain
  92.    circumstances.  In particular, the protocol protects against the
  93.    failure of the first hop router when the source host cannot learn the
  94.    IP address of the first hop router dynamically.  The protocol is
  95.    designed for use over multi-access, multicast or broadcast capable
  96.    LANs (e.g., Ethernet).  HSRP is not intended as a replacement for
  97.    existing dynamic router discovery mechanisms and those protocols
  98.    should be used instead whenever possible [1].  A large class of
  99.    legacy host implementations that do not support dynamic discovery are
  100.    capable of configuring a default router.  HSRP provides failover
  101.    services to those hosts.
  102.  
  103.    All of the routers participating in HSRP are assumed to be running
  104.    appropriate IP routing protocols and have a consistent set of routes.
  105.    The discussion of which protocols are appropriate and whether routing
  106.    is consistent in any given situation is beyond the scope of this
  107.    specification.
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Li, et. al.                  Informational                      [Page 2]
  115.  
  116. RFC 2281                       Cisco HSRP                     March 1998
  117.  
  118.  
  119.    Using HSRP, a set of routers work in concert to present the illusion
  120.    of a single virtual router to the hosts on the LAN.  This set is
  121.    known as an HSRP group or a standby group.  A single router elected
  122.    from the group is responsible for forwarding the packets that hosts
  123.    send to the virtual router.  This router is known as the active
  124.    router.  Another router is elected as the standby router.  In the
  125.    event that the active router fails, the standby assumes the packet
  126.    forwarding duties of the active router.  Although an arbitrary number
  127.    of routers may run HSRP, only the active router forwards the packets
  128.    sent to the virtual router.
  129.  
  130.    To minimize network traffic, only the active and the standby routers
  131.    send periodic HSRP messages once the protocol has completed the
  132.    election process.  If the active router fails, the standby router
  133.    takes over as the active router.  If the standby router fails or
  134.    becomes the active router, another router is elected as the standby
  135.    router.
  136.  
  137.    On a particular LAN, multiple hot standby groups may coexist and
  138.    overlap.  Each standby group emulates a single virtual router.  For
  139.    each standby group, a single well-known MAC address is allocated to
  140.    the group, as well as an IP address.  The IP address SHOULD belong to
  141.    the primary subnet in use on the LAN, but MUST differ from the
  142.    addresses allocated as interface addresses on all routers and hosts
  143.    on the LAN, including virtual IP addresses assigned to other HSRP
  144.    groups.
  145.  
  146.    If multiple groups are used on a single LAN, load splitting can be
  147.    achieved by distributing hosts among different standby groups.
  148.  
  149.    The remainder of this specification discusses the operation of a
  150.    single standby group.  In the case of multiple groups, each group
  151.    operates independently of other groups on the LAN and according to
  152.    this specification.  Note that individual routers may participate in
  153.    multiple groups.  In this case, the router maintains separate state
  154.    and timers for each group.
  155.  
  156. 2  Conditions of Use
  157.  
  158.    US Patent number 5,473,599 [2], assigned to Cisco Systems, Inc. may
  159.    be applicable to HSRP.  If an implementation requires the use of any
  160.    claims of patent no. 5,473,599, Cisco will license such claims on
  161.    reasonable, nondiscriminatory terms for use in practicing the
  162.    standard.  More specifically, such license will be available for a
  163.    one-time, paid up fee.
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Li, et. al.                  Informational                      [Page 3]
  171.  
  172. RFC 2281                       Cisco HSRP                     March 1998
  173.  
  174.  
  175. 3  Scope
  176.  
  177.    This document describes the packets, messages, states, and events
  178.    used to implement the protocol.  It does not discuss network
  179.    management or internal implementation issues.
  180.  
  181. 3.1   Terminology
  182.  
  183.    The language conventions of RFC 2119 [3] are used in this document.
  184.  
  185. 4  Definitions
  186.  
  187.    Active Router   - the router that is currently forwarding packets
  188.                      for the virtual router
  189.  
  190.    Standby Router  - the primary backup router
  191.  
  192.    Standby Group   - the set of routers participating in HSRP that
  193.                      jointly emulate a virtual router
  194.  
  195.    Hello Time      - the interval between successive HSRP Hello
  196.                      messages from a given router
  197.  
  198.    Hold Time       - the interval between the receipt of a Hello
  199.                      message and the presumption that the sending
  200.                      router has failed
  201.  
  202. 5  Protocol
  203.  
  204.    Within a standby group, the routers periodically advertise state
  205.    information using various messages.
  206.  
  207. 5.1  Packet formats
  208.  
  209.    The standby protocol runs on top of UDP, and uses port number 1985.
  210.    Packets are sent to multicast address 224.0.0.2 with TTL 1.
  211.  
  212.    Routers use their actual IP address as the source address for
  213.    protocol packets, not the virtual IP address.  This is necessary so
  214.    that the HSRP routers can identify each other.
  215.  
  216.    The format of the data portion of the UDP datagram is:
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Li, et. al.                  Informational                      [Page 4]
  227.  
  228. RFC 2281                       Cisco HSRP                     March 1998
  229.  
  230.  
  231.                           1                   2                   3
  232.  
  233.    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  234.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  235.    |   Version     |   Op Code     |     State     |   Hellotime   |
  236.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  237.    |   Holdtime    |   Priority    |     Group     |   Reserved    |
  238.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  239.    |                      Authentication  Data                     |
  240.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  241.    |                      Authentication  Data                     |
  242.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  243.    |                      Virtual IP Address                       |
  244.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  245.  
  246.    Version:  1 octet
  247.  
  248.       The version of the HSRP messages.  This document describes version
  249.       0.
  250.  
  251.    Op Code:  1 octet
  252.  
  253.       The Op Code describes the type of message contained in this
  254.       packet.  Possible values are:
  255.  
  256.          0 - Hello
  257.          1 - Coup
  258.          2 - Resign
  259.  
  260.       Hello messages are sent to indicate that a router is running and
  261.       is capable of becoming the active or standby router.
  262.  
  263.       Coup messages are sent when a router wishes to become the active
  264.       router.
  265.  
  266.       Resign messages are sent when a router no longer wishes to be the
  267.       active router.
  268.  
  269.    State:  1 octet
  270.  
  271.       Internally, each router in the standby group implements a state
  272.       machine.  The State field describes the current state of the
  273.       router sending the message.  Details on the individual states are
  274.       described below.  Possible values are:
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Li, et. al.                  Informational                      [Page 5]
  283.  
  284. RFC 2281                       Cisco HSRP                     March 1998
  285.  
  286.  
  287.          0 - Initial
  288.          1 - Learn
  289.          2 - Listen
  290.          4 - Speak
  291.          8 - Standby
  292.         16 - Active
  293.  
  294.    Hellotime:  1 octet
  295.  
  296.       This field is only meaningful in Hello messages.  It contains the
  297.       approximate period between the Hello messages that the router
  298.       sends.  The time is given in seconds.
  299.  
  300.       If the Hellotime is not configured on a router, then it MAY be
  301.       learned from the Hello message from the active router.  The
  302.       Hellotime SHOULD only be learned if no Hellotime is configured and
  303.       the Hello message is authenticated.  A router that sends a Hello
  304.       message MUST insert the Hellotime that it is using in the
  305.       Hellotime field in the Hello message.  If the Hellotime is not
  306.       learned from a Hello message from the active router and it is not
  307.       manually configured, a default value of 3 seconds is RECOMMENDED.
  308.  
  309.    Holdtime:  1 octet
  310.  
  311.       This field is only meaningful in Hello messages.  It contains the
  312.       amount of time that the current Hello message should be considered
  313.       valid.  The time is given in seconds.
  314.  
  315.       If a router sends a Hello message, then receivers should consider
  316.       that Hello message to be valid for one Holdtime.  The Holdtime
  317.       SHOULD be at least three times the value of the Hellotime and MUST
  318.       be greater than the Hellotime.  If the Holdtime is not configured
  319.       on a router, then it MAY be learned from the Hello message from
  320.       the active router.  The Holdtime SHOULD only be learned if the
  321.       Hello message is authenticated.  A router that sends a Hello
  322.       message MUST insert the Holdtime that it is using in the Holdtime
  323.       field in the Hello message.
  324.  
  325.       A router which is in active state MUST NOT learn new values for
  326.       the Hellotime and the Holdtime from other routers, although it may
  327.       continue to use values which it learned from the previous active
  328.       router.  It MAY also use the Hellotime and Holdtime values learned
  329.       through manual configuration.  The active router MUST NOT use one
  330.       configured time and one learned time.  If the Holdtime is not
  331.       learned and it is not manually configured, a default value of 10
  332.       seconds is RECOMMENDED.
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Li, et. al.                  Informational                      [Page 6]
  339.  
  340. RFC 2281                       Cisco HSRP                     March 1998
  341.  
  342.  
  343.    Priority:  1 octet
  344.  
  345.       This field is used to elect the active and standby routers.  When
  346.       comparing priorities of two different routers, the router with the
  347.       numerically higher priority wins.  In the case of routers with
  348.       equal priority the router with the higher IP address wins.
  349.  
  350.    Group:   1 octet
  351.  
  352.       This field identifies the standby group.  For Token Ring, values
  353.       between 0 and 2 inclusive are valid.  For other media values
  354.       between 0 and 255 inclusive are valid.
  355.  
  356.    Authentication Data:    8 octets
  357.  
  358.       This field contains a clear-text 8 character reused password.
  359.  
  360.       If no authentication data is configured, the RECOMMENDED default
  361.       value is 0x63 0x69 0x73 0x63 0x6F 0x00 0x00 0x00.
  362.  
  363.    Virtual IP Address:     4 octets
  364.  
  365.       The virtual IP address used by this group.
  366.  
  367.       If the virtual IP address is not configured on a router, then it
  368.       MAY be learned from the Hello message from the active router.  An
  369.       address SHOULD only be learned if no address was configured and
  370.       the Hello message is authenticated.
  371.  
  372. 5.2  Operational parameters
  373.  
  374.    The following information MUST be known to each router in the standby
  375.    group.  The mechanisms used to determine this information are outside
  376.    of the scope of this document.
  377.  
  378.       Standby group number
  379.  
  380.       Virtual MAC address
  381.  
  382.       Priority
  383.  
  384.       Authentication Data
  385.  
  386.       Hellotime
  387.  
  388.       Holdtime
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Li, et. al.                  Informational                      [Page 7]
  395.  
  396. RFC 2281                       Cisco HSRP                     March 1998
  397.  
  398.  
  399.    The following information MUST be known to at least one router in
  400.    each standby group and MAY be known by any of the other routers in
  401.    the group.
  402.  
  403.       Virtual IP Address
  404.  
  405.    The following information MAY be configured on any router:
  406.  
  407.       Preemption capability
  408.  
  409.          If a router has higher priority than the active router and
  410.          preemption is configured, it MAY take over as the active router
  411.          using a Coup message.
  412.  
  413. 5.3 States
  414.  
  415.    Each router in the group participates in the protocol by implementing
  416.    a simple state machine.  This specification describes the externally
  417.    visible behavior of this state machine.  Implementations MAY vary
  418.    their internal implementations within the functional description of
  419.    the state machine.
  420.  
  421.    All routers begin in the Initial state.  This section discusses the
  422.    intent of each state.  For specific details on the actions taken in
  423.    each state, please see the state transition table in section 5.7.
  424.  
  425.    1. Initial
  426.  
  427.       This is the starting state and indicates that HSRP is not running.
  428.       This state is entered via a configuration change or when an
  429.       interface first comes up.
  430.  
  431.    2. Learn
  432.  
  433.       The router has not determined the virtual IP address, and not yet
  434.       seen an authenticated Hello message from the active router.  In
  435.       this state the router is still waiting to hear from the active
  436.       router.
  437.  
  438.    3. Listen
  439.  
  440.       The router knows the virtual IP address, but is neither the active
  441.       router nor the standby router.  It listens for Hello messages from
  442.       those routers.
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Li, et. al.                  Informational                      [Page 8]
  451.  
  452. RFC 2281                       Cisco HSRP                     March 1998
  453.  
  454.  
  455.    4. Speak
  456.  
  457.       The router sends periodic Hello messages and is actively
  458.       participating in the election of the active and/or standby router.
  459.       A router cannot enter Speak state unless it has the virtual IP
  460.       address.
  461.  
  462.    5. Standby
  463.  
  464.       The router is a candidate to become the next active router and
  465.       sends periodic Hello messages.  Excluding transient conditions,
  466.       there MUST be at most one router in the group in Standby state.
  467.  
  468.    6. Active
  469.  
  470.       The router is currently forwarding packets that are sent to the
  471.       group's virtual MAC address.  The router sends periodic Hello
  472.       messages.  Excluding transient conditions, there MUST be at most
  473.       one router in Active state in the group.
  474.  
  475. 5.4 Timers
  476.  
  477.    Each router maintains three timers, an Active timer, a Standby timer,
  478.    and a Hello timer.
  479.  
  480.    The Active timer is used to monitor the active router.  The active
  481.    timer is started anytime an authenticated Hello message is seen from
  482.    the active router.  It is set to expire in the Holdtime seen in the
  483.    Hello message.
  484.  
  485.    The Standby timer is used to monitor the standby router The Standby
  486.    timer is started anytime an authenticated Hello message is seen from
  487.    the standby router.  It is set to expire in the Holdtime seen in the
  488.    Hello message.
  489.  
  490.    The Hello timer expires once per Hellotime period.  If the router is
  491.    in Speak, Standby, or Active states, it should generate a Hello
  492.    message upon Hello timer expiry.  The Hello timer MUST be jittered.
  493.  
  494. 5.5 Events
  495.  
  496.    These are the events in the HSRP finite state machine.
  497.  
  498.       a - HSRP is configured on an enabled interface.
  499.  
  500.       b - HSRP is disabled on an interface or the interface is disabled.
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Li, et. al.                  Informational                      [Page 9]
  507.  
  508. RFC 2281                       Cisco HSRP                     March 1998
  509.  
  510.  
  511.       c - Active timer expiry.  The Active timer was set to the Holdtime
  512.       when the last Hello message was seen from the active router.
  513.  
  514.       d - Standby timer expiry.  The Standby timer was set to the
  515.       Holdtime when the last Hello message was seen from the standby
  516.       router.
  517.  
  518.       e - Hello timer expiry.  The periodic timer for sending Hello
  519.       messages has expired.
  520.  
  521.       f - Receipt of a Hello message of higher priority from a router in
  522.       Speak state.
  523.  
  524.       g - Receipt of a Hello message of higher priority from the active
  525.       router.
  526.  
  527.       h - Receipt of a Hello message of lower priority from the active
  528.       router.
  529.  
  530.       i - Receipt of a Resign message from the active router.
  531.  
  532.       j - Receipt of a Coup message from a higher priority router.
  533.  
  534.       k - Receipt of a Hello message of higher priority from the standby
  535.       router.
  536.  
  537.       l - Receipt of a Hello message of lower priority from the standby
  538.       router.
  539.  
  540. 5.6 Actions
  541.  
  542.    This section specifies the actions to be taken as part of the state
  543.    machine.
  544.  
  545.       A  Start Active Timer
  546.          If this action occurred as the result of the receipt of a an
  547.          authenticated Hello message from the active router, the Active
  548.          timer is set to the Holdtime field in the Hello message.
  549.          Otherwise the Active timer is set to the current Holdtime value
  550.          in use by this router.  The Active timer is then started.
  551.  
  552.       B  Start Standby Timer
  553.          If this action occurred as the result of the receipt of an
  554.          authenticated Hello message from the standby router, the
  555.          Standby timer is set to the Holdtime field in the Hello
  556.          message.  Otherwise the Standby timer is set to the current
  557.          hold time value in use by this router.  The Standby timer is
  558.          then started.
  559.  
  560.  
  561.  
  562. Li, et. al.                  Informational                     [Page 10]
  563.  
  564. RFC 2281                       Cisco HSRP                     March 1998
  565.  
  566.  
  567.       C  Stop Active Timer
  568.          The Active timer is stopped.
  569.  
  570.       D  Stop Standby Timer
  571.          The Standby timer is stopped.
  572.  
  573.       E  Learn Parameters
  574.          This action is taken when an authenticated message is received
  575.          from the active router.  If the virtual IP address for this
  576.          group was not manually configured, the virtual IP address MAY
  577.          be learned from the message.  The router MAY learn Hellotime
  578.          and Holdtime values from the message.
  579.  
  580.       F  Send Hello Message
  581.          The router sends a Hello message with its current State,
  582.          Hellotime and Holdtime.
  583.  
  584.       G  Send Coup Message
  585.          The router sends a Coup message to inform the active router
  586.          that there is a higher priority router available.
  587.  
  588.       H  Send Resign Message
  589.          The router sends a Resign message to allow another router to
  590.          become the active router.
  591.  
  592.       I  Send Gratuitous ARP Message
  593.          The router broadcasts an ARP response packet advertising the
  594.          group's virtual IP address and virtual MAC address.  The packet
  595.          is sent using the virtual MAC address as the source MAC address
  596.          in the link layer header, as well as within the ARP packet.
  597.  
  598. 5.7 State Transitions
  599.  
  600.    This table describes the state transitions of the state machine.  For
  601.    each event and current state of the router, the router MUST perform
  602.    the set of actions specified and transition to the designated state.
  603.    If no action is specified, no action should be taken.  If no state
  604.    change is specified, no state change should be performed.
  605.  
  606.    The notation used in this table has the specified set of actions
  607.    listed as letters corresponding to the actions listed in section 5.6.
  608.    The next state is listed as a number as specified in section 5.3.  A
  609.    slash ('/') separates the actions and states.  Certain state
  610.    transitions have alternatives which depend on external state.
  611.    Alternatives are separated by a '|'.  See the attached notes for
  612.    details on these transitions.
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Li, et. al.                  Informational                     [Page 11]
  619.  
  620. RFC 2281                       Cisco HSRP                     March 1998
  621.  
  622.  
  623.                                                  States
  624. +-----+----------+----------+----------+----------+----------+----------+
  625. |     |    1     |     2    |    3     |    4     |    5     |     6    |
  626. |     |  Initial |  Learn   |  Listen  |  Speak   |  Standby |   Active |
  627. +-----+----------+----------+----------+----------+----------+----------+
  628. |Event|                                                                 |
  629. +-----+----------+----------+----------+----------+----------+----------+
  630. |  a  |  AB/2|3+ |          |          |          |          |          |
  631. +-----+----------+----------+----------+----------+----------+----------+
  632. |  b  |          |   CD/1   |   CD/1   |   CD/1   |   CD/1   |   CDH/1  |
  633. +-----+----------+----------+----------+----------+----------+----------+
  634. |  c  |          |          |   AB/4   |          |  CDFI/6  |          |
  635. +-----+----------+----------+----------+----------+----------+----------+
  636. |  d  |          |          |   B/4    |   D/5    |          |          |
  637. +-----+----------+----------+----------+----------+----------+----------+
  638. |  e  |          |          |          |    F     |    F     |    F     |
  639. +-----+----------+----------+----------+----------+----------+----------+
  640. |  f  |          |          |          |   B/3    |   B/3    |          |
  641. +-----+----------+----------+----------+----------+----------+----------+
  642. |  g  |          |   EAB/3  |    EA    |   EA     |   EA     |   AB/4   |
  643. +-----+----------+----------+----------+----------+----------+----------+
  644. |  h  |          |   EAB/3  | A|BGFI/6*| A|BGFI/6*| A|BGFI/6*|    G     |
  645. +-----+----------+----------+----------+----------+----------+----------+
  646. |  i  |          |          |   AB/4   |   A      |  CFI/6   |          |
  647. +-----+----------+----------+----------+----------+----------+----------+
  648. |  j  |          |          |          |          |          |   ABH/4  |
  649. +-----+----------+----------+----------+----------+----------+----------+
  650. |  k  |          |          |    B     |   B/3    |  B/3     |    B     |
  651. +-----+----------+----------+----------+----------+----------+----------+
  652. |  l  |          |          |    B/4   |   D/5    |          |    B     |
  653. +-----+----------+----------+----------+----------+----------+----------+
  654.  
  655.    Notes
  656.  
  657.    +   If the virtual IP address is configured, set state 3 (Listen) If
  658.    the virtual IP address is not configured, set state 2 (Learn).  In
  659.    either case do actions A and B.
  660.  
  661.    *   If the router is configured to preempt do actions B, G, F, and I
  662.    and set state to 6 (Active).  If the router is not configured to
  663.    preempt do actions A with no state change.
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Li, et. al.                  Informational                     [Page 12]
  675.  
  676. RFC 2281                       Cisco HSRP                     March 1998
  677.  
  678.  
  679. 6  MAC Address Considerations
  680.  
  681. 6.1 General
  682.  
  683.    Each HSRP group has an associated well known virtual MAC address.  On
  684.    token ring networks, these addresses are actually functional
  685.    addresses.  The three addresses 0xC0 0x00 0x00 0x01 0x00 0x00, 0xC0
  686.    0x00 0x00 0x02 0x00 0x00, and 0xC0 0x00 0x00 0x04 0x00 0x00
  687.    correspond to groups 0, 1, and 2 respectively.
  688.  
  689.    On other media, the virtual MAC addresses are 0x00 0x00 0x0C 0x07
  690.    0xAC XX where XX represents the HSRP group number.  Routers which
  691.    implement HSRP SHOULD use well-known HSRP MAC addresses as the
  692.    group's virtual MAC address whenever possible.
  693.  
  694.    The active router MUST accept and forward traffic that is destined
  695.    for the group's virtual MAC address.  It MUST stop accepting or
  696.    forwarding such traffic when the router leaves the Active state.
  697.  
  698.    If and only if the router is in the Active state, the router MUST use
  699.    the group's virtual MAC address as the source MAC address for its
  700.    Hello messages.  This is necessary in order to allow learning bridges
  701.    to be able to determine which LAN segment the virtual MAC address
  702.    currently belongs to.
  703.  
  704.    For each group, there is one virtual IP address and one virtual MAC
  705.    address.  This is a desirable situation, since the ARP table entries
  706.    in the end stations do not need to change over time as the HSRP
  707.    active router moves from one router to another.
  708.  
  709.    Additionally, for HSRP to work in bridging environments, the bridges
  710.    must be able to quickly update themselves as the virtual MAC address
  711.    "moves".  Although learning bridges typically are able to do this,
  712.    some have been known to have problems with this.  It is RECOMMENDED
  713.    that only true learning bridges be used with HSRP.
  714.  
  715.    The movement of the virtual MAC address can cause further undesirable
  716.    side effects in environments where additional state is tied to the
  717.    MAC address.  For example on Token Ring, if Source Route Bridging is
  718.    in use, a RIF will be stored with the virtual MAC address in a host's
  719.    RIF cache.  The RIF indicates the path and final ring used to reach
  720.    the MAC address.  As routers transition into Active state, they will
  721.    not be able to affect the RIF caches on the hosts on the bridged
  722.    ring.  This may lead to packets being bridged to the ring for the
  723.    previous active router.
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Li, et. al.                  Informational                     [Page 13]
  731.  
  732. RFC 2281                       Cisco HSRP                     March 1998
  733.  
  734.  
  735.    In such circumstances, a router MAY use its normal MAC addresses as
  736.    the virtual MAC address.  This method of operation is strongly
  737.    discouraged.  In this mode, the virtual IP address will map to a
  738.    different MAC address over time.  This can create problems for end
  739.    stations, since ARP tables assume a relatively static mapping between
  740.    MAC address and IP address.  These ARP tables are normally updated
  741.    when the end stations receive the gratuitous ARP responses generated
  742.    by a router that enters the active state.
  743.  
  744. 6.2 Address Filter
  745.  
  746.    As noted, routers currently emulating a virtual router adopt their
  747.    group's MAC and IP addresses.  MAC addresses are typically provided
  748.    in an address filter or 'list' of MAC addresses in a router's
  749.    interface controller.  It is desirable for routers to be able to add
  750.    one or more virtual MAC addresses to their controllers' MAC address
  751.    filter while maintaining their primary MAC addresses.
  752.  
  753.    Unfortunately, some interface controllers support address filtering
  754.    for only one unicast MAC address.  Or, in the case of Token Ring, the
  755.    functional address which HSRP should use is already in use for some
  756.    other protocol.  In these cases, such routers can still implement
  757.    HSRP, but the protocol must change the interface's primary MAC
  758.    address when assuming or relinquishing control as the active router.
  759.  
  760.    This is potentially problematic because some traffic may otherwise
  761.    wish to use the router's primary MAC address.  However, the problem
  762.    MAY be mitigated by having the router send out gratuitous ARP packets
  763.    regarding its non-HSRP IP addresses.  Through this, other network
  764.    entities using IP should update their ARP tables to reflect that the
  765.    router is now using a group virtual MAC address rather than its
  766.    primary MAC address.
  767.  
  768.    Some protocols may not be able to run simultaneously with the standby
  769.    protocol due to the interface primary MAC address change.  For
  770.    example, DECnet phase IV and HSRP will not be able to run at the same
  771.    time on some equipment.
  772.  
  773. 6.3 ICMP Redirect
  774.  
  775.    While running HSRP, it is important to prevent the host from
  776.    discovering the primary MAC addresses of the routers in its standby
  777.    group.  Thus, any protocol that informs a host of a router's primary
  778.    address should be disabled.  Thus, routers participating in HSRP on
  779.    an interface MUST NOT send ICMP redirects on that interface.
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Li, et. al.                  Informational                     [Page 14]
  787.  
  788. RFC 2281                       Cisco HSRP                     March 1998
  789.  
  790.  
  791. 6.4 Proxy ARP
  792.  
  793.    Typically, hosts learn the HSRP virtual IP address through the
  794.    configuration of their default router.  These hosts then send packets
  795.    for destinations outside of the LAN to the virtual IP address.  In
  796.    some environments, hosts may instead make use of proxy ARP in order
  797.    to route off of the LAN.  In this case, the hosts use the MAC address
  798.    that is supplied in proxy ARP responses.  HSRP functionality is
  799.    maintained if the proxy ARP responses specify the HSRP virtual MAC
  800.    address.
  801.  
  802.    If an HSRP router is configured to support proxy ARP with HSRP, then
  803.    the router MUST specify the HSRP virtual MAC address in any proxy ARP
  804.    responses it generates.  These proxy ARP responses MUST not be
  805.    suppressed based upon HSRP state.  Suppression based upon state could
  806.    result in lack of any proxy ARP response being generated, since these
  807.    proxy ARP responses may be suppressed due to other reasons, such as
  808.    split-horizon rules.
  809.  
  810. 7. Security Considerations
  811.  
  812.    This protocol does not provide security.  The authentication field
  813.    found within the message is useful for preventing misconfiguration.
  814.    The protocol is easily subverted by an active intruder on the LAN.
  815.    This can result in a packet black hole and a denial-of-service
  816.    attack.  It is difficult to subvert the protocol from outside the LAN
  817.    as most routers will not forward packets addressed to the all-routers
  818.    multicast address (224.0.0.2).
  819.  
  820. 8. References
  821.  
  822.    [1] Deering, S., "ICMP Router Discovery Messages", RFC 1256,
  823.    September 1991.
  824.  
  825.    [2] United States Patent.  Patent Number : 5,473,599.  Standby Router
  826.    Protocol.  Date of Patent: Dec. 5, 1995.
  827.  
  828.    [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement
  829.    Levels", BCP 14, RFC 2119, March 1997.
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Li, et. al.                  Informational                     [Page 15]
  843.  
  844. RFC 2281                       Cisco HSRP                     March 1998
  845.  
  846.  
  847. 9. Authors' Addresses
  848.  
  849.    Tony Li
  850.    Juniper Networks, Inc.
  851.    3260 Jay St.
  852.    Santa Clara, CA 95054
  853.  
  854.    Phone: (408) 327-1900
  855.    EMail: tli@juniper.net
  856.  
  857.  
  858.    Bruce Cole
  859.    Juniper Networks, Inc.
  860.    3260 Jay St.
  861.    Santa Clara, CA 95054
  862.  
  863.    Phone: (408) 327-1900
  864.    EMail: cole@juniper.net
  865.  
  866.  
  867.    Phil Morton
  868.    Cisco Systems
  869.    170 Tasman Dr.
  870.    San Jose, CA 95143
  871.  
  872.    Phone: (408) 526-7632
  873.    EMail: pmorton@cisco.com
  874.  
  875.  
  876.    Dawn Li
  877.    Cisco Systems
  878.    170 Tasman Dr.
  879.    San Jose, CA 95143
  880.  
  881.    Phone: (408) 527-2014
  882.    EMail: dawnli@cisco.com
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Li, et. al.                  Informational                     [Page 16]
  899.  
  900. RFC 2281                       Cisco HSRP                     March 1998
  901.  
  902.  
  903. 10.  Full Copyright Statement
  904.  
  905.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  906.  
  907.    This document and translations of it may be copied and furnished to
  908.    others, and derivative works that comment on or otherwise explain it
  909.    or assist in its implementation may be prepared, copied, published
  910.    and distributed, in whole or in part, without restriction of any
  911.    kind, provided that the above copyright notice and this paragraph are
  912.    included on all such copies and derivative works.  However, this
  913.    document itself may not be modified in any way, such as by removing
  914.    the copyright notice or references to the Internet Society or other
  915.    Internet organizations, except as needed for the purpose of
  916.    developing Internet standards in which case the procedures for
  917.    copyrights defined in the Internet Standards process must be
  918.    followed, or as required to translate it into languages other than
  919.    English.
  920.  
  921.    The limited permissions granted above are perpetual and will not be
  922.    revoked by the Internet Society or its successors or assigns.
  923.  
  924.    This document and the information contained herein is provided on an
  925.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  926.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  927.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  928.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  929.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954. Li, et. al.                  Informational                     [Page 17]
  955.  
  956.