home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_i / draft-ietf-idmr-gum-00.txt < prev    next >
Text File  |  1997-08-02  |  45KB  |  1,177 lines

  1.  
  2.  
  3.  
  4.  
  5. IDMR Working Group                                          D. Thaler
  6. Internet Engineering Task Force                           U. Michigan
  7. INTERNET-DRAFT                                              D. Estrin
  8. July 30, 1997                                                 USC/ISI
  9. Expires December 1997                                        D. Meyer
  10.                                                             U. Oregon
  11.                                                               Editors
  12.  
  13.  
  14.  
  15.                      Grand Unified Multicast (GUM):
  16.                          Protocol Specification
  17.                       <draft-ietf-idmr-gum-00.txt>
  18.  
  19.  
  20.  
  21.  
  22.  
  23. Status of this Memo
  24.  
  25. This document is an Internet Draft.  Internet Drafts are working
  26. documents of the Internet Engineering Task Force (IETF), its Areas, and
  27. its Working Groups.  Note that other groups may also distribute working
  28. documents as Internet Drafts.
  29.  
  30. Internet Drafts are valid for a maximum of six months and may be
  31. updated, replaced, or obsoleted by other documents at any time.  It is
  32. inappropriate to use Internet Drafts as reference material or to cite
  33. them other than as a "work in progress".
  34.  
  35.  
  36. Abstract
  37.  
  38. This document describes GUM, a protocol for inter-domain multicast
  39. routing. GUM builds shared trees for active multicast groups, and allows
  40. receiver domains to build source-specific, inter-domain, distribution
  41. branches where needed. Building upon concepts from CBT and PIM-SM, GUM
  42. requires that each multicast group be associated with a single root (in
  43. GUM it is referred to as the root domain).  GUM assumes that at any
  44. point in time, different ranges of the class D space are associated
  45. (e.g., with MASC [MASC]) with different domains.  Each of these domains
  46. then becomes the root of the shared domain-trees for all groups in its
  47. range.  Multicast participants will generally receive better multicast
  48. service if the session initiator's address allocator selects addresses
  49. from its own domain's part of the space, thereby causing the root domain
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61. Draft                             GUM                          July 1997
  62.  
  63.  
  64. to be local to at least one of the session participants.
  65.  
  66.  
  67. 1.  Acknowledgements
  68.  
  69.    The following individuals have contributed to the design of GUM:
  70.    Cengiz Alaettinoglu, Tony Ballardie, Steve Casner, Steve Deering,
  71.    Dino Farinacci, Bill Fenner, Mark Handley, Ahmed Helmy, Van Jacobson,
  72.    and Satish Kumar.
  73.  
  74.    This document is the product of the IETF IDMR Working Group with Dave
  75.    Thaler, Deborah Estrin, and David Meyer as editors.
  76.  
  77.  
  78. 2.  Purpose
  79.  
  80.    It has been suggested that inter-domain multicast is better supported
  81.    with a rendezvous mechanism whereby members receive source's data
  82.    packets without any sort of global broadcast (e.g., DVMRP and PIM-DM
  83.    broadcast initial data packets and MOSPF broadcasts membership
  84.    information). CBT [CBT] and PIM-SM [PIMSM] use a shared group-tree,
  85.    to which all members join and thereby hear from all sources (and to
  86.    which non-members do not join and thereby hear from no sources).
  87.  
  88.    This document describes GUM, a protocol for inter-domain multicast
  89.    routing.  GUM builds shared trees for active multicast groups, and
  90.    allows receiver domains to build source-specific, inter-domain,
  91.    distribution branches where needed. Building upon concepts from CBT
  92.    and PIM-SM, GUM requires that each global multicast group be
  93.    associated with a single root.  However, in GUM, the root is an
  94.    entire exchange or domain, rather than a single router.
  95.  
  96.    GUM assumes that ranges of the class D space have been associated
  97.    (e.g., with MASC [MASC]) with selected domains. Each such domain then
  98.    becomes the root of the shared domain-trees for all groups in its
  99.    range.  An address allocator will generally achieve better
  100.    distribution trees if it takes its multicast addresses from its own
  101.    domain's part of the space, thereby causing the root domain to be
  102.    local.
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Expires January 1998                                            [Page 2]
  115.  
  116.  
  117.  
  118.  
  119.  
  120. Draft                             GUM                          July 1997
  121.  
  122.  
  123. 3.  Terminology
  124.  
  125. This document uses the following technical terms:
  126.  
  127. Domain:
  128.      A set of one or more contiguous links and zero or more routers
  129.      surrounded by one or more multicast border routers. Note that this
  130.      loose definition of domain also applies to an external link between
  131.      two domains, as well as an exchange.
  132.  
  133. Root Domain:
  134.      When constructing a shared tree of domains for some group, one
  135.      domain will be the "root" of the tree.  The root domain receives
  136.      data from each sender to the group, and functions as a rendezvous
  137.      domain toward which member domains can send inter-domain joins, and
  138.      to which sender domains can send data.
  139.  
  140. Multicast RIB:
  141.      The Routing Information Base, or routing table, used to calculate
  142.      the "next-hop" towards a particular address for multicast traffic.
  143.  
  144. Multicast IGP (M-IGP):
  145.      A generic term for any multicast routing protocol used for tree
  146.      construction within a domain.  Typical examples of M-IGPs are:
  147.      DVMRP, PIM-DM, PIM-SM, CBT, and MOSPF.
  148.  
  149. EGP: A generic term for the interdomain unicast routing protocol in use.
  150.      Typically, this will be some version of BGP which can support a
  151.      Multicast RIB, such as BGP4++ [BATES], containing both unicast and
  152.      multicast address prefixes.
  153.  
  154. Component:
  155.      The portion of a border router associated with (and logically
  156.      inside) a particular domain that runs the multicast IGP (M-IGP) for
  157.      that domain, if any.  Each border router thus has zero or more
  158.      components inside routing domains. In addition, each border router
  159.      with external links that do not fall inside any routing domain will
  160.      have an inter-domain component that runs GUM.
  161.  
  162. External peer:
  163.      A border router in another multicast AS, to which an eBGP session
  164.      is open.
  165.  
  166. Internal peer:
  167.      Another border router of the same multicast AS.  A border router
  168.  
  169.  
  170.  
  171.  
  172.  
  173. Expires January 1998                                            [Page 3]
  174.  
  175.  
  176.  
  177.  
  178.  
  179. Draft                             GUM                          July 1997
  180.  
  181.  
  182.      either speaks iBGP directly to internal peers in a full mesh, or
  183.      indirectly through an route reflector [REFLECT].
  184.  
  185. Next-hop peer:
  186.      The next-hop peer towards a given IP address is the next EGP router
  187.      on the path to the given address, according to multicast RIB routes
  188.      in the EGP's routing table (e.g., in BGP4++, routes whose
  189.      Subsequent Address Family Identifier field indicates that the route
  190.      is valid for multicast traffic).
  191.  
  192. target:
  193.      Either an EGP peer, or an M-IGP component on the same router.
  194.  
  195. Tree State Table:
  196.      This is a table of (S-prefix,G-prefix) entries (including (*,G-
  197.      prefix) entries) that have been explicitly joined by a set of
  198.      targets.  Each entry has, in addition to the source and group
  199.      addresses and masks, a list of targets that have explicitly
  200.      requested data (on behalf of directly connected hosts or on behalf
  201.      of downstream routers).  (S,G) entries also have an "SPT" bit.
  202.  
  203.  
  204. 4.  Protocol Overview
  205.  
  206.    GUM maintains group-prefix state in response to messages from GUM
  207.    peers and notifications from M-IGP components. Group-shared trees are
  208.    rooted at the domain advertising the group prefix covering those
  209.    groups.  When a receiver joins a specific group address, the border
  210.    router towards the root domain generates a group-specific Join
  211.    message, which is then forwarded Border-Router-by-Border-Router
  212.    towards the root domain (see Figure 1).  Note that if GUM Join and
  213.    Prune messages are sent over an existing TCP connection between BGP
  214.    peers, then the GUM protocol state may be refreshed by the TCP keep-
  215.    alives; otherwise, it must be refreshed explicitly.
  216.  
  217.    GUM routers build group-specific bidirectional forwarding state as
  218.    they process the GUM Join messages. Bidirectional forwarding state
  219.    means that packets received from any target are forwarded to all
  220.    other targets in the target list without any RPF checks.  No group-
  221.    specific state or traffic exists in parts of the network where there
  222.    are no members of that group.
  223.  
  224.    GUM routers build source-specific unidirectional forwarding state
  225.    only where it is needed to be compatible with source-specific M-IGP
  226.    distribution trees.  For example, a transit domain that uses DVMRP,
  227.  
  228.  
  229.  
  230.  
  231.  
  232. Expires January 1998                                            [Page 4]
  233.  
  234.  
  235.  
  236.  
  237.  
  238. Draft                             GUM                          July 1997
  239.  
  240.  
  241.    PIM-DM, or PIM-SM as its M-IGP, may need to inject multicast packets
  242.    from different sources via different border routers (to be compatible
  243.    with the M-IGP RPF checks).  Therefore, the GUM router that is
  244.    responsible for injecting a particular source's packets may build a
  245.    source-specific GUM branch if it is not already receiving that
  246.    source's packets via the shared tree (see Transit_1 in Figure 1, for
  247.    Src_A).  Note however, that a stub domain that has only a single ISP
  248.    connection will receive all multicast data packets through the single
  249.    GUM router to which all RPF checks point; and therefore that GUM
  250.    router need never build external source-specific distribution paths
  251.    (see Rcvr_Stub_7 in Figure 1).
  252.  
  253.                     Root_Domain
  254.                      [BR61]--------------------------\
  255.                         |                            |
  256.                      [BR32]                         [BR41]
  257.                     Transit_3                     Transit_4
  258.                      [BR31]                      [BR42] [BR43]
  259.                         |                          |      |
  260.                      [BR22]                      [BR52] [BR53]
  261.                     Transit_2                     Transit_5
  262.                      [BR21]                         [BR51]
  263.                         |                            |
  264.                      [BR12]                         [BR61]
  265.                     Transit_1[BR11]----------[BR62]Stub_6
  266.                      [BR13]                        (Src_A)
  267.                         |                          (Rcvr_D)
  268.               -------------------
  269.               |                 |
  270.            [BR71]              [BR81]
  271.           Rcvr_Stub_7       Src_only_Stub_8
  272.           (Rcvr_C)             (Src_B)
  273.  
  274.    Figure 1: Example inter-domain topology. [BRXY] represents a GUM border
  275.    router.  Transit_X is a transit domain network.  *_Stub_X is a stub
  276.    domain network.
  277.  
  278.  
  279.    Data packets are forwarded based on a combination of GUM and M-IGP
  280.    rules. The router forwards to a set of targets according to a
  281.    matching (S,G) GUM tree state entry if it exists. If not found, the
  282.    router checks for a matching (*,G) GUM tree state entry. If neither
  283.    is found, then the packet is sent natively to the next-hop EGP peer
  284.    for G, according to the Multicast RIB (for example, in the case of a
  285.    non-member sender such as Src_B in Figure 1). If a matching entry was
  286.  
  287.  
  288.  
  289.  
  290.  
  291. Expires January 1998                                            [Page 5]
  292.  
  293.  
  294.  
  295.  
  296.  
  297. Draft                             GUM                          July 1997
  298.  
  299.  
  300.    found, the packet is forwarded to all other targets in the target
  301.    list. In this way GUM trees forward data in a bidirectional manner.
  302.    If a target is an M-IGP component then forwarding is subject to the
  303.    rules of that M-IGP protocol.
  304.  
  305.  
  306. 4.1.  Design Rationale
  307.  
  308.    Several other protocols, or protocol proposals, build shared trees
  309.    within domains [CBT, HPIM, PIM-SM].  The design choices made for GUM
  310.    result from our focus on Inter-Domain multicast in particular. The
  311.    design choices made by CBT and PIM-SM are better suited to the wide-
  312.    area intra-domain case.  There are three major differences between
  313.    GUM and other shared-tree protocols:
  314.  
  315.    (1) Unidirectional vs. Bidirectional trees
  316.  
  317.    Bidirectional trees (using bidirectional forwarding state as
  318.    described above) minimize third party dependence which is essential
  319.    in the inter-domain context. For example, in Figure 1, stub domains 7
  320.    and 8 would like to exchange multicast packets without being
  321.    dependent on the quality of connectivity of the root domain.
  322.    However, unidirectional shared trees (i.e., those using RPF checks)
  323.    have more aggressive loop prevention and share the same processing
  324.    rules as source-specific entries which are inherently unidirectional.
  325.  
  326.    The lack of third party dependence concerns in the INTRA domain case
  327.    reduces the incentive to employ bidirectional trees.  GUM supports
  328.    bidirectional trees because it has to, and because it can without
  329.    excessive cost.
  330.  
  331.    (2) Source-specific distribution trees/branches
  332.  
  333.    In a departure from other shared tree protocols, source-specific GUM
  334.    state is built ONLY where (a) it IS needed to pull the multicast
  335.    traffic down to a GUM router that has source-specific (S,G) state,
  336.    and (b) that router is NOT already on the shared tree (i.e., has no
  337.    (*,G) state). We build these source specific branches because most
  338.    M-IGP protocols in use today build source-specific distribution trees
  339.    and would suffer unnecessary overhead if they were not able to import
  340.    packets from high datarate sources via the border router that matches
  341.    the domain's source-specific RPF checks (e.g., BR11 in Figure 1, for
  342.    data from Src_A).  Moreover, some cases in which bidirectional-shared
  343.    tree distribution paths are significantly longer than source-specific
  344.    tree distribution paths, will benefit from these source-specific
  345.  
  346.  
  347.  
  348.  
  349.  
  350. Expires January 1998                                            [Page 6]
  351.  
  352.  
  353.  
  354.  
  355.  
  356. Draft                             GUM                          July 1997
  357.  
  358.  
  359.    short cuts.
  360.  
  361.    However, we do not build source-specific inter-domain trees because
  362.    (a) inter-domain connectivity is generally less rich than intra-
  363.    domain connectivity, so shared distribution trees should have more
  364.    acceptible path length and traffic concentration properties in the
  365.    inter-domain context, than in the intra-domain case, and (b) by
  366.    having the shared tree state always take precedence over source-
  367.    specific tree state, we avoid ambiguities that can otherwise arise.
  368.  
  369.    In summary, GUM trees are, in a sense, a hybrid between CBT and PIM-
  370.    SM trees.
  371.  
  372.    (3) Method of choosing root of group shared tree
  373.  
  374.    The choice of a group's shared-tree-root has implications for
  375.    performance and policy.  In the intra-domain case it can be assumed
  376.    that all potential shared-tree roots (RPs/Cores) within the domain
  377.    are equally suited to be the root for a group that is initiated
  378.    within that domain. In the INTER-domain case, there is far more
  379.    opportunity for unacceptably poor locality and administrative
  380.    ownership of a group's shared-tree root. Therefore in the intra-
  381.    domain case, other protocols treat all candidate roots (RPs or Cores)
  382.    as equivalent and emphasize load sharing and stability to maximize
  383.    performance.  In the Inter-Domain case, all roots are not equivalent,
  384.    and we adopt an approach whereby a group's root domain is not random
  385.    and is subject to administrative and performance input.
  386.  
  387.  
  388. 5.  Protocol Details
  389.  
  390.    In this section, we describe the detailed protocol that border
  391.    routers perform.  We assume that each border router conforms to the
  392.    component-based model described in [INTEROP].
  393.  
  394.  
  395. 5.1.  Interaction with the EGP
  396.  
  397.    A fundamental requirement imposed by GUM on the design of an EGP is
  398.    that it be able to carry multicast prefixes.  For example, a multi-
  399.    protocol BGP (MBGP) must be able to carry a multicast prefix in the
  400.    Unicast Network Layer Reachability Information (NLRI) field of the
  401.    UPDATE message (i.e., either a IPv4 class D prefix or a IPv6 prefix
  402.    with high-order octet equal to FF [IPv6MAA]). This capability is
  403.    required by GUM in the implementation of bi-directional trees; GUM
  404.  
  405.  
  406.  
  407.  
  408.  
  409. Expires January 1998                                            [Page 7]
  410.  
  411.  
  412.  
  413.  
  414.  
  415. Draft                             GUM                          July 1997
  416.  
  417.  
  418.    must be able to forward data and control packets to the next hop
  419.    towards either a unicast source S or a multicast group G (see section
  420.    5.2). It is also required that the path attributes defined in
  421.    [RFC1771] have the same semantics whether they are accompany unicast
  422.    or multicast NLRI.
  423.  
  424.    Note that BGP4++ [BATES] can be easily extended to satisfy the
  425.    requirement described above. [BATES] defines the optional transitive
  426.    attributes Multiprotocol Reachable NLRI (MP_REACH_NLRI) and
  427.    Multiprotocol Unreachable (MP_UNREACH_NRLI) to carry sets of
  428.    reachable or unreachable destinations, and the appropriate next hop
  429.    in the case of MP_REACH_NLRI. These attributes contain an Address
  430.    Family Information field [RFC1700] which indicates the type of NLRI
  431.    carried in the attribute. In addition, the attribute carries another
  432.    field, the Subsequent Address Family Identifier, or SAFI, which can
  433.    be used to provide additional information about the type of NLRI. For
  434.    example, SAFI value two indicates that the NLRI is valid for
  435.    multicast forwarding.  GUM's requirement can be satisfied by allowing
  436.    the NLRI field of the MP_REACH_NLRI (or MP_UNREACH_NLRI) to carry a
  437.    multicast prefix in the Prefix field of the NLRI encoding.
  438.  
  439.    Finally, while not required for correct GUM operation, the design of
  440.    an EGP should also provide a mechanism that allows discrimination
  441.    between NLRI that is to be used for unicast forwarding and NLRI to be
  442.    used for multicast forwarding. This property is required to support
  443.    multicast specific policy. As mentioned above, BGP4++ specified in
  444.    [BATES] has this capability.
  445.  
  446.  
  447. 5.2.  Multicast Data Packet Processing
  448.  
  449.    For GUM rules to be applied, an incoming packet must first be
  450.    "accepted":
  451.  
  452.    o  If the packet was received from an external peer, the packet is
  453.       accepted.
  454.  
  455.    o  If the packet arrived on an interface owned by an M-IGP, the M-IGP
  456.       component determines whether the packet should be accepted or
  457.       dropped according to its rules.  If the packet is accepted, the
  458.       packet is forwarded (or not forwarded) out any other interfaces
  459.       owned by the same component, as specified by the M-IGP.
  460.  
  461.    If the packet is accepted, then the router checks the tree state
  462.    table for a matching (S,G) entry.  If one is found, but the packet
  463.  
  464.  
  465.  
  466.  
  467.  
  468. Expires January 1998                                            [Page 8]
  469.  
  470.  
  471.  
  472.  
  473.  
  474. Draft                             GUM                          July 1997
  475.  
  476.  
  477.    was not received from the next hop target towards S (if the entry's
  478.    SPT bit is True), or was not received from the next hop target
  479.    towards G (if the entry's SPT bit is False) then the packet is
  480.    dropped and no further actions are taken.  If no (S,G) entry was
  481.    found, the router then checks for a matching (*,G) entry.
  482.  
  483.    If neither is found, then the packet is forwarded towards the next-
  484.    hop peer for G, according to the Multicast RIB.  If a matching entry
  485.    was found, the packet is forwarded to all other targets in the target
  486.    list.
  487.  
  488.    Forwarding to a target which is an M-IGP component means that the
  489.    packet is forwarded out any interfaces owned by that component
  490.    according to that component's multicast forwarding rules.
  491.  
  492.  
  493. 5.3.  GUM processing of Join and Prune messages and notifications
  494.  
  495. 5.3.1.  Receiving Joins
  496.  
  497.    When the GUM component receives a (*,G) or (S,G) Join alert from
  498.    another component, or a GUM (S,G) or (*,G) Join message from a peer
  499.    (either internal or external), it searches the tree state table for a
  500.    matching entry.  If an entry is found, and that peer is already
  501.    listed in the target list, then the entry's timer is restarted and no
  502.    further actions are taken.
  503.  
  504.    Otherwise, if no (*,G) or (S,G) entry was found, one is created.  In
  505.    the case of a (*,G), the target list is initialized to contain the
  506.    next-hop peer towards G, if it is an external peer. If the peer is
  507.    internal, the target list is initialized to contain the component
  508.    owning the next-hop interface.  If there is no next-hop peer (because
  509.    G is inside the domain), then the target list is initialized to
  510.    contain the next-hop component. If a (S,G) entry exists for the same
  511.    G for which the (*,G) Join is being processed, and the next-hop peers
  512.    toward S and G are different, the GUM router must first send a (S,G)
  513.    Prune message toward the source and clear the SPT bit on the (S,G)
  514.    entry, before activating the (*,G) entry.
  515.  
  516.    The component or peer from which the Join was received is then added
  517.    to the target list.  If the target list becomes non-null as a result,
  518.    the router looks up S or G in the Multicast RIB to find the next-hop
  519.    EGP peer, which must be notified as follows:
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527. Expires January 1998                                            [Page 9]
  528.  
  529.  
  530.  
  531.  
  532.  
  533. Draft                             GUM                          July 1997
  534.  
  535.  
  536.    a) If the next-hop peer towards G (for a (*,G) entry) is an external
  537.       peer, a GUM (*,G) Join message is unicast to the external peer.
  538.       If the next-hop peer towards S (for an (S,G) entry) is an external
  539.       peer, and the router does NOT have any active (*,G) state for that
  540.       group address G, a GUM (S,G) Join message is unicast to the
  541.       external peer.  A GUM (S,G) Join message is never sent to an
  542.       external peer by a router that also contains active (*,G) state
  543.       for the same group.  If the next-hop peer towards S (for an (S,G
  544.       entry) is an external peer and the router DOES have active (*,G)
  545.       state for that group G, the SPT bit is always set to False.
  546.  
  547.    b) If the next-hop peer is an internal peer, a GUM (*,G) Join message
  548.       (for a (*,G) entry) or (S,G) Join message (for an (S,G) entry) is
  549.       unicast to the internal peer, In addition, a (*,G) or (S,G) Join
  550.       alert is sent to the M-IGP component owning the next-hop
  551.       interface.
  552.  
  553.    c) If there is no next-hop peer, a (*,G) or (S,G) Join alert is sent
  554.       to the M-IGP component owning the next-hop interface.
  555.  
  556.  
  557. 5.3.2.  Receiving Prune Notifications
  558.  
  559.    When the GUM component receives a (*,G) or (S,G) Prune alert from
  560.    another component, or a GUM (*,G) or (S,G) Prune message from a peer
  561.    (either internal or external), it searches the tree state table for a
  562.    matching entry.  If no (S,G) entry was found for an (S,G) Prune, but
  563.    (*,G) state exists, an (S,G) entry is created, with the target list
  564.    copied from the (*,G) entry.  If no matching entry exists, or if the
  565.    component or peer is not listed in the target list, no further
  566.    actions are taken.
  567.  
  568.    Otherwise, the component or peer is removed from the target list. If
  569.    the target list becomes null as a result, the next-hop peer towards G
  570.    (for a (*,G) entry), or towards S (for an (S,G) entry if and only if
  571.    the GUM router does NOT have any corresponding (*,G) entry), must be
  572.    notified as follows.
  573.  
  574.    a) If the peer is an external peer, a GUM (*,G) or (S,G) Prune
  575.       message is unicast to it.
  576.  
  577.    b) If the next-hop peer is an internal peer, a GUM (*,G) or (S,G)
  578.       Prune message is unicast to the internal peer.  In addition, a
  579.       (*,G) or (S,G) Prune alert is sent to the M-IGP component owning
  580.       the next-hop interface.
  581.  
  582.  
  583.  
  584.  
  585.  
  586. Expires January 1998                                           [Page 10]
  587.  
  588.  
  589.  
  590.  
  591.  
  592. Draft                             GUM                          July 1997
  593.  
  594.  
  595.    c) If there is no next-hop peer, a (*,G) or (S,G) Prune alert is sent
  596.       to the M-IGP component owning the next-hop interface.
  597.  
  598.  
  599.  
  600. 5.3.3.  Receiving Route Change Notifications
  601.  
  602.    When a border router receives a route for a new prefix in the
  603.    multicast RIB, or a existing route for a prefix is withdrawn, a route
  604.    change notification for that prefix must be sent to the GUM
  605.    component.  In addition, when the next hop peer (according to the
  606.    multicast RIB) changes, a route change notification for that prefix
  607.    must be sent to the GUM component.
  608.  
  609.    In addition, an internal route for each class-D prefix associated
  610.    with the domain (if any) MUST be injected into the multicast RIB in
  611.    the EGP by the domain's border routers.
  612.  
  613.  
  614.    When a route for a new group prefix is learned, or an existing route
  615.    for a group prefix is withdrawn, or the next-hop peer for a group
  616.    prefix changes, a GUM router updates all affected (*,G) target lists.
  617.  
  618.    When an existing route for a source prefix is withdrawn, or the
  619.    next-hop peer for a source prefix changes, a GUM router updates all
  620.    affected (S,G) target lists.
  621.  
  622.  
  623. 5.4.  Interaction with M-IGP components
  624.  
  625.    When an M-IGP component on a border router first learns that there
  626.    are internally-reached members for a group G (whose scope is larger
  627.    than a single domain), a (*,G) Join alert is sent to the GUM
  628.    component. Similarly, when an M-IGP component on a border router
  629.    learns that there are no longer internally-reached members for a
  630.    group G (whose scope is larger than a single domain), a (*,G) Prune
  631.    alert is sent to the GUM component.
  632.  
  633.    At any time, any M-IGP domain MAY decide to join a source-specific
  634.    branch for some external source S and group G.  When the M-IGP
  635.    component in the border router that is the next-hop router for a
  636.    particular source S learns that a receiver wishes to receive data
  637.    from S on a source-specific path, an (S,G) Join alert is sent to the
  638.    GUM component.  When it is learned that such receivers no longer
  639.    exist, an (S,G) Prune alert is sent to the GUM component.  Recall
  640.  
  641.  
  642.  
  643.  
  644.  
  645. Expires January 1998                                           [Page 11]
  646.  
  647.  
  648.  
  649.  
  650.  
  651. Draft                             GUM                          July 1997
  652.  
  653.  
  654.    that the GUM component will generate external source-specific Joins
  655.    only where the source-specific branch does not coincide with the
  656.    shared tree distribution tree for that group.
  657.  
  658.    Finally, we will require that the border router that is the next-hop
  659.    internal peer for a particular address S or G be able to forward data
  660.    for a matching tree state table entry to all members within the
  661.    domain. This requirement has implications on specific M-IGPs as
  662.    follows.
  663.  
  664.  
  665. 5.4.1.  Interaction with DVMRP and PIM-DM
  666.  
  667.    DVMRP and PIM-DM are both "flood and prune" protocols in which every
  668.    data packet must pass an RPF check against the packet's source
  669.    address, or be dropped. If the border router receiving packets from
  670.    an external source is the only BR to inject the route for the source
  671.    into the domain, then there are no problems.  For example, this will
  672.    always be true for stub domains with a single border router (see
  673.    Figure 1). Otherwise, the border router receiving packets externally
  674.    is responsible for encapsulating the data to any other border routers
  675.    that must inject the data into the domain for RPF checks to succeed.
  676.  
  677.    When an intended border router injector for a source receives
  678.    encapsulated packets from another border router in its domain, it
  679.    should create source-specific (S,G) GUM state.  Note that the border
  680.    router may be configured to do this on a data-rate triggered bases so
  681.    that the state is not created for very low data rate/intermittent
  682.    sources. If source-specific state is created then its incoming
  683.    interface points to the virtual encapsulation interface from the
  684.    border router that forwarded the packet, and it has an SPT flag that
  685.    is initialized to be False.
  686.  
  687.    When the (S,G) GUM state is created, the GUM component will in turn
  688.    send a GUM (S,G) Join message to the next-hop external peer towards S
  689.    if there is no (*,G) state for that same group, G. The (S,G) GUM
  690.    state will have the SPT bit set to False if (*,G) GUM state is
  691.    present.
  692.  
  693.    When the first data packet from S arrives from the external peer and
  694.    matches on the GUM (S,G) state, and IF there is no (*,G) state, the
  695.    router sets the SPT flag to True, resets the incoming interface to
  696.    point to the external peer, and sends a GUM (S,G) Prune message to
  697.    the border router that was encapsulating the packets (e.g., in Figure
  698.    1, BR11 sends the (Src_A,G) Prune to BR12). When the border router
  699.  
  700.  
  701.  
  702.  
  703.  
  704. Expires January 1998                                           [Page 12]
  705.  
  706.  
  707.  
  708.  
  709.  
  710. Draft                             GUM                          July 1997
  711.  
  712.  
  713.    with (*,G) state receives the prune for (S,G), it should delete that
  714.    border router from its list of targets or outgoing interfaces.
  715.  
  716.    PIM-DM and DVMRP present an additional problem, i.e., no protocol
  717.    mechanism exists for joining and pruning entire groups; only joins
  718.    and prunes for individual sources are available. We therefore require
  719.    that some form of Domain-Wide Reports (DWRs) [DWR] are available
  720.    within such domains.  Such messages provide the ability to join and
  721.    prune an entire group across the domain. One simple heuristic to
  722.    approximate DWRs is to assume that if there are any internally-
  723.    reached members, then at least one of them is a sender. With this
  724.    heuristic, the presense of any M-IGP (S,G) state for internally-
  725.    reached sources can be used instead.  Sending a data packet to a
  726.    group is then equivalent to sending a DWR for the group.
  727.  
  728.  
  729. 5.4.2.  Interaction with CBT
  730.  
  731.    CBT builds bidirectional shared trees but must address two points of
  732.    compatibilty with GUM.  First, CBT is currently not specified to
  733.    accommodate more than one border router injecting a packet.
  734.    Therefore, if a CBT domain does have multiple external connections,
  735.    the M-IGP components of the border routers are responsible for
  736.    insuring that only one of them will inject data from any given
  737.    source.  This mechanism is provided in [CBTDM].
  738.  
  739.    Second, CBT cannot process source-specific Joins or Prunes.
  740.    Therefore, CBT domains should not propagate any source routes (i.e.,
  741.    non-class D routes) to their external peers for the Multicast RIB
  742.    unless it is known that no other path exists to that prefix (e.g.,
  743.    routes for prefixes internal to the domain or in a singly-homed
  744.    customer's domain may be propagated).  This insures that source-
  745.    specific joins are never received unless the source's data already
  746.    passes through the domain on the shared tree, in which case the (S,G)
  747.    Join need not be propagated anyway.  GUM border routers will only
  748.    send source-specific Joins or Prunes to an external peer if that
  749.    external peer advertises source-prefixes in the EGP.  If a GUM-CBT
  750.    border router does receive an (S,G) Join or Prune that border router
  751.    should ignore the message.
  752.  
  753.  
  754. 5.4.3.  Interaction with MOSPF
  755.  
  756.    As with CBT, MOSPF cannot process source-specific Joins or Prunes.
  757.    Therefore, MOSPF domains should not propagate any source routes
  758.  
  759.  
  760.  
  761.  
  762.  
  763. Expires January 1998                                           [Page 13]
  764.  
  765.  
  766.  
  767.  
  768.  
  769. Draft                             GUM                          July 1997
  770.  
  771.  
  772.    (i.e., non-class D routes) to their external peers for the Multicast
  773.    RIB unless it is known that no other path exists to that prefix
  774.    (e.g., routes for prefixes internal to the domain or in a singly-
  775.    homed customer's domain may be propagated).
  776.  
  777.  
  778. 5.4.4.  Interaction with PIM-SM
  779.  
  780.    Protocols such as PIM-SM build unidirectional shared and source-
  781.    specific trees.  As with DVMRP and PIM-DM, every data packet must
  782.    pass an RPF check against some group-specific or source-specific
  783.    address.
  784.  
  785.  
  786.    The fewest encapsulations/decapsulations will be done when the
  787.    intra-domain tree is rooted at the next-hop internal peer towards G
  788.    (which becomes the RP), since in general that router will receive the
  789.    most packets from external sources.  To achieve this, each GUM border
  790.    router to a PIM-SM domain should send Candidate-RP-Advertisements
  791.    within the domain for those groups for which it is the shared-domain
  792.    tree ingress router. When the border router that is the RP for a
  793.    group G receives an external data packet, it forwards the packet
  794.    according to the M-IGP (i.e., PIM-SM) shared-tree outgoing interface
  795.    list.
  796.  
  797.    Other border routers will receive data packets from external sources
  798.    that are farther down the bidirectional tree of domains. When a
  799.    border router that is not the RP receives an external packet for
  800.    which it does not have a source-specific entry, the border router
  801.    treats it like a local source by creating (S,G) state with a Register
  802.    flag set, based on normal PIM-SM rules; the Border router then
  803.    encapsulates the data packets in PIM-SM Registers and unicasts them
  804.    to the RP for the group.  As explained above, the RP for the inter-
  805.    domain group will be one of the other border routers of the domain.
  806.  
  807.    If a source's data rate is high enough, DRs within the PIM-SM domain
  808.    may switch to the shortest path tree.  If the shortest path to an
  809.    external source is via the group's ingress router for the shared
  810.    tree, the new (S,G) state in the GUM border router will not cause GUM
  811.    (S,G) Joins because that border router will already have (*,G) state.
  812.    If however, the shortest path to an external source is via some other
  813.    border router, that border router will create (S,G) GUM state in
  814.    response to the M-IGP (S,G) Join alert. In this case, because there
  815.    is no local (*,G) state to supress it, the border router will send a
  816.    GUM (S,G) Join to the next-hop external peer towards S, in order to
  817.  
  818.  
  819.  
  820.  
  821.  
  822. Expires January 1998                                           [Page 14]
  823.  
  824.  
  825.  
  826.  
  827.  
  828. Draft                             GUM                          July 1997
  829.  
  830.  
  831.    pull the data down directly.  (See BR11 in Figure 1.) As in normal
  832.    PIM-SM operation, those PIM-SM routers that have (*,G) and (S,G)
  833.    state pointing to different incoming interfaces will prune that
  834.    source off the shared tree.  Therefore, all internal interfaces may
  835.    be eventually pruned off the internal shared tree.
  836.  
  837.  
  838. 6.  Interaction with address allocation
  839.  
  840. 6.1.  Requirements for GUM components
  841.  
  842.    Each border router must be able to determine (e.g., from MASC [MASC])
  843.    which class-D prefixes (if any) belong to each domain in which a
  844.    component resides.
  845.  
  846.    Periodically, the router then multicasts to the domain-scoped ALL-
  847.    PA-RECEIVERS group within each domain that has one or more class-D
  848.    prefixes, a Prefix-Announcement message containing those prefixes.
  849.  
  850.  
  851. 6.2.  Interaction with Address Allocators
  852.  
  853.    Each address allocator SHOULD join the domain-scoped ALL-PA-RECEIVERS
  854.    group, and SHOULD allocate addresses from the prefix(es) announced to
  855.    this group.
  856.  
  857.  
  858. 7.  Transition Strategy
  859.  
  860.    There have been significant barriers to multicast deployment in
  861.    Internet backbones.  While many of the problems with the current
  862.    DVMRP backbone (MBONE) have been documented in [ISSUES], most of
  863.    these problems require longer term engineering solutions. However,
  864.    there is much that can be done with existing technologies to enable
  865.    deployment and put in place an architecture that will enable a smooth
  866.    transition to the next generation of inter-domain multicast routing
  867.    protocols (i.e., GUM).  This section proposes a near-term transition
  868.    strategy and architecture that is designed to be simple, risk-
  869.    neutral, and provide a smooth, incremental transition path to GUM. In
  870.    addition, the transition architecture provides for improved
  871.    convergence properties, some initial policy control, and the
  872.    opportunity for providers to run either native or tunneled multicast
  873.    backbones and exchanges.
  874.  
  875.    The transition strategy proposed here is to initially use BGP4++
  876.  
  877.  
  878.  
  879.  
  880.  
  881. Expires January 1998                                           [Page 15]
  882.  
  883.  
  884.  
  885.  
  886.  
  887. Draft                             GUM                          July 1997
  888.  
  889.  
  890.    [BATES] to provide the desired convergence and policy control
  891.    properties, and PIM-DM for multicast data forwarding.  Once this
  892.    architecture is in place, backbones and exchanges can incrementally
  893.    transition to GUM and domains running other M-IGPs may be
  894.    incorporated more fully.
  895.  
  896.    Since the current MBone uses a broadcast-and-prune backbone running
  897.    DVMRP, GUM may view the entire MBone as a single multi-homed stub
  898.    domain (with a new AS number).  The members-are-senders heuristic can
  899.    then be used initially to provide membership notifications within
  900.    this stub domain.
  901.  
  902.    A GUM backbone can then be formed by designating a neutral PIM-DM
  903.    domain (say, a particular exchange) as the initial GUM backbone.
  904.    This domain is then associated with the group prefix 224/4 which is
  905.    injected into the Multicast RIB by all BGP4++/GUM border routers on
  906.    that exchange.
  907.  
  908.    Any domain which meets the following constraints may then transition
  909.    from a normal MBone-connected domain to one running GUM:
  910.  
  911. (1)  Must peer with another GUM domain and participate in M-BGP to
  912.      propagate routes in the Multicast RIB.
  913.  
  914. (2)  Must establish an internal (to the MBone AS) EGP (e.g., iBGP) peer
  915.      relationship with other border routers of the MBone "stub" domain,
  916.      as is done with unicast routing.  We expect this to eventually
  917.      involve the use of one or more route reflectors [REFLECT] inside
  918.      the MBone domain.
  919.  
  920. (3)  If the transition will partition the MBone "stub" domain, then it
  921.      must be insured that the MBone domain will be administratively
  922.      split into multiple domains, each with a different multicast AS
  923.      number.
  924.  
  925.  
  926. 7.1.  Preventing transit through the MBone stub
  927.  
  928.    We desire that two AS's which are mutually reachable through GUM use
  929.    paths which do not pass through the MBone stub domain.  This is
  930.    illustrated in Figure 2, where the MBone stub is AS 5, which is
  931.    multi-homed to both AS 3 and AS 4.  Paths between sources and
  932.    destinations which have already transitioned to BGP4++/GUM should not
  933.    use AS 5 as transit unless no other path exists.
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940. Expires January 1998                                           [Page 16]
  941.  
  942.  
  943.  
  944.  
  945.  
  946. Draft                             GUM                          July 1997
  947.  
  948.  
  949.            ----------------------\   /----------------------------
  950.                                  |   |
  951.            DVMRP         /----\  |   |  /----\  IGP/iBGP
  952.            ..............| BR |+++++++++| BR |-----------
  953.                          \----/  | E |  \----/
  954.                             +    | B |     +          AS 3
  955.            MBone            +    | G |     +
  956.                             +    | P \-----+----------------------
  957.            AS 5        iBGP +    |         + eBGP
  958.                             +    |   /-----+----------------------
  959.                             +    |   |     +
  960.                             +    |   |     +
  961.            DVMRP         /----\  |   |  /----\  IGP/iBGP
  962.            ..............| BR |+++++++++| BR |-----------
  963.                          \----/  |   |  \----/
  964.                                  |   |                AS 4
  965.                                  |   |
  966.            ----------------------/   \----------------------------
  967.  
  968.               Figure 2: Preventing Transit through MBone Stub
  969.  
  970.  
  971.    This requirement is easily solved using standard BGP policy
  972.    mechanisms. The MBone border routers should prefer EGP routes to
  973.    DVMRP routes, since DVMRP cannot tag routes as being external.  Thus,
  974.    external routes may appear in the DVMRP routing table, but will not
  975.    be imported into the EGP since they will be overridden by iBGP
  976.    routes.
  977.  
  978.    Other EGP routers should prefer routes whose ASpath does not contain
  979.    the well-known MBone AS number.  This will insure that the route
  980.    through the MBone stub is not used unless no other path exists.  For
  981.    safety, routes whose ASpath begins with the MBone AS should receive
  982.    the worst preference.
  983.  
  984.  
  985. 8.  To Be Done
  986.  
  987. o    Timer details
  988.  
  989. o    Packet formats
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999. Expires January 1998                                           [Page 17]
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005. Draft                             GUM                          July 1997
  1006.  
  1007.  
  1008. 9.  References
  1009.  
  1010. [BATES]
  1011.      Bates, T., Chandra, R., Katz, D., and Y. Rekhter., "Multiprotocol
  1012.      Extensions for BGP-4", draft-bates-bgp4-multiprotocol-03.txt, July
  1013.      1997.
  1014.  
  1015. [CBT]
  1016.      Ballardie, A. J., "Core Based Trees (CBT) Multicast: Architectural
  1017.      Overview and Specification", University College London, November
  1018.      1994.
  1019.  
  1020. [CBTDM]
  1021.      Ballardie, A., "Core Based Tree (CBT) Multicast Border Router
  1022.      Specification for Connecting a CBT Stub Region to a DVMRP Backbone"
  1023.      draft-ietf-idmr-cbt-dvmrp-00.txt, March 1997.
  1024.  
  1025. [DVMRP]
  1026.      Pusateri, T., "Distance Vector Multicast Routing Protocol", draft-
  1027.      ietf-idmr-dvmrp-v3-03.txt, September 1996.
  1028.  
  1029. [DWR]
  1030.      Fenner, W., "Domain-Wide Reports", Work in progress.
  1031.  
  1032. [INTEROP]
  1033.      Thaler, D., "Interoperability Rules for Multicast Routing
  1034.      Protocols", draft-thaler-interop-00.txt, November 1996.
  1035.  
  1036. [IPv6MAA]
  1037.      R. Hinden, S. Deering, "IPv6 Multicast Address Assignments",
  1038.      draft-ietf-ipngwg-multicast-assgn-04.txt, July 1997.
  1039.  
  1040. [ISSUES]
  1041.      Meyer, D., "Some Issues for an Inter-domain Multicast Routing
  1042.      Protocol", draft-ietf-mboned-imrp-some-issues-02.txt, June 1997.
  1043.  
  1044. [MASC]
  1045.      Estrin, D., Handley, M, and D. Thaler, "Multicast-Address-Set
  1046.      advertisement and Claim mechanism", Work in Progress, June 1997.
  1047.  
  1048. [MOSPF]
  1049.      Moy, J., "Multicast Extensions to OSPF", RFC 1584, Proteon, March
  1050.      1994.
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058. Expires January 1998                                           [Page 18]
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064. Draft                             GUM                          July 1997
  1065.  
  1066.  
  1067. [PIMDM]
  1068.      Estrin, et al., "Protocol Independent Multicast-Dense Mode (PIM-
  1069.      DM): Protocol Specification", draft-ietf-idmr-pim-dm-spec-04.ps,
  1070.      October 1996.
  1071.  
  1072. [PIMSM]
  1073.      Estrin, et al., "Protocol Independent Multicast-Sparse Mode (PIM-
  1074.      SM): Protocol Specification", RFC 2117, June 1997.
  1075.  
  1076. [REFLECT]
  1077.      Bates, T., and R. Chandra, "BGP Route Reflection: An alternative to
  1078.      full mesh IBGP", RFC 1966, June 1996.
  1079.  
  1080. [RFC1700]
  1081.      S. J. Reynolds, J. Postel, "ASSIGNED NUMBERS", RFC 1700, October
  1082.      1994.
  1083.  
  1084. [RFC1771]
  1085.      Y. Rekhter, T. Li, "A Border Gateway Protocol 4 (BGP-4)", RFC 1771,
  1086.      March 1995.
  1087.  
  1088.  
  1089. 10.  Security Considerations
  1090.  
  1091. Security issues are not discussed in this memo.
  1092.  
  1093.  
  1094.  
  1095. 11.  Authors' Addresses
  1096.  
  1097.      Dave Thaler
  1098.      Department of Electrical Engineering and Computer Science
  1099.      University of Michigan
  1100.      1301 Beal Ave.
  1101.      Ann Arbor, MI 48109-2122
  1102.      Phone: +1 313 763 5243
  1103.      EMail: thalerd@eecs.umich.edu
  1104.  
  1105.      Deborah Estrin
  1106.      Computer Science Dept./ISI
  1107.      University of Southern California
  1108.      Los Angeles, CA 90089
  1109.      Email: estrin@usc.edu
  1110.  
  1111.      David Meyer
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117. Expires January 1998                                           [Page 19]
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123. Draft                             GUM                          July 1997
  1124.  
  1125.  
  1126.      University of Oregon
  1127.      1225 Kincaid St.
  1128.      Eugene, OR 97403
  1129.      Phone: (541) 346-1747
  1130.      EMail: meyer@antc.uoregon.edu
  1131.  
  1132.  
  1133.  
  1134. Table of Contents
  1135.  
  1136.  
  1137. 1 Acknowledgements ................................................    2
  1138. 2 Purpose .........................................................    2
  1139. 3 Terminology .....................................................    3
  1140. 4 Protocol Overview ...............................................    4
  1141. 4.1 Design Rationale ..............................................    6
  1142. 5 Protocol Details ................................................    7
  1143. 5.1 Interaction with the EGP ......................................    7
  1144. 5.2 Multicast Data Packet Processing ..............................    8
  1145. 5.3 GUM processing of Join and Prune messages and  notifications
  1146.      ..............................................................    9
  1147. 5.3.1 Receiving Joins .............................................    9
  1148. 5.3.2 Receiving Prune Notifications ...............................   10
  1149. 5.3.3 Receiving Route Change Notifications ........................   11
  1150. 5.4 Interaction with M-IGP components .............................   11
  1151. 5.4.1 Interaction with DVMRP and PIM-DM ...........................   12
  1152. 5.4.2 Interaction with CBT ........................................   13
  1153. 5.4.3 Interaction with MOSPF ......................................   13
  1154. 5.4.4 Interaction with PIM-SM .....................................   14
  1155. 6 Interaction with address allocation .............................   15
  1156. 6.1 Requirements for GUM components ...............................   15
  1157. 6.2 Interaction with Address Allocators ...........................   15
  1158. 7 Transition Strategy .............................................   15
  1159. 7.1 Preventing transit through the MBone stub .....................   16
  1160. 8 To Be Done ......................................................   17
  1161. 9 References ......................................................   18
  1162. 10 Security Considerations ........................................   19
  1163. 11 Authors' Addresses .............................................   19
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176. Expires January 1998                                           [Page 20]
  1177.