home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft__misc / out-cyn < prev    next >
Text File  |  1997-10-06  |  30KB  |  755 lines

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