home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_n_r / draft-richardson-fib-reduction-00.txt < prev    next >
Text File  |  1996-07-15  |  38KB  |  1,017 lines

  1.  
  2. Network Working Group                               Steven J. Richardson
  3. Internet Draft                                       Merit Network, Inc.
  4.                                                                June 1996
  5.                                                     Expire in six months
  6.  
  7.  
  8.           Vertical Aggregation:  A Strategy for FIB Reduction
  9.                  <draft-richardson-fib-reduction-00.txt>
  10.  
  11. 1. Status of this Memo
  12.  
  13.         This document is an Internet-Draft.  Internet-Drafts are working
  14.         documents of the Internet Engineering Task Force (IETF), its
  15.         areas, and its working groups.  Note that other groups may also
  16.         distribute working documents as Internet-Drafts.
  17.  
  18.         Internet-Drafts are draft documents valid for a maximum of six
  19.         months and may be updated, replaced, or obsoleted by other
  20.         documents at any time.  It is inappropriate to use Internet-
  21.         Drafts as reference material or to cite them other than as
  22.         ``work in progress.''
  23.  
  24.         To learn the current status of any Internet-Draft, please check
  25.         the ``1id-abstracts.txt'' listing contained in the Internet-
  26.         Drafts Shadow Directories on ftp.is.co.za (Africa),
  27.         nic.nordu.net (Europe), munnari.oz.au (Pacific Rim),
  28.         ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast).
  29.  
  30. 2. Abstract
  31.  
  32.    This document analyzes Network Layer Reachability Information (NLRI)
  33.    flow within a router with emphasis on the Forwarding Information
  34.    Base(s)--FIB(s)--and the effects of currently-implemented aggregation
  35.    schemes on FIB size.  The conditions for reduction of FIB information
  36.    before insertion into the kernel are considered, with preservation of
  37.    routing a primary criteria (essentially deriving in a more structured
  38.    manner the result that one wishes to remove extraneous routing
  39.    information extant in the FIB(s)).  Finally, aggregation algorithms
  40.    consistent with these conditions are presented.
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54. S. J. Richardson                                                ^L[Page 1]
  55.  
  56.  
  57.  
  58.  
  59.  
  60. INTERNET-DRAFT                                                March 1996
  61.  
  62.  
  63. 3. Table of Contents
  64.  
  65.    1. Status of this Memo
  66.    2. Abstract
  67.    3. Table of Contents
  68.    4. Introduction
  69.    4.1 NLRI Flow and NLRI Interaction with a Router's FIB(s) and Conceptual RIBs
  70.    4.1.1 NLRI Flow Between Routers
  71.    4.1.2 NLRI Flow Within a Router
  72.    4.1.3 NLRI Flow in Relation to Router's Conceptual RIBs and FIB(s)
  73.    4.2 Horizontal and Vertical NLRI Flows
  74.    4.3 Horizontal Aggregation
  75.    5. Vertical Aggregation
  76.    5.1 Character of the Current FIB Filter Function f()
  77.    5.2 New FIB Filter Function--General Character and Constraints
  78.    5.3 Implications of the Constraint
  79.    5.3.1 CIDR-Related Implications of the Constraint
  80.    5.3.2 BGP4-Related Implications of the Constraint
  81.    5.3.3 Related Considerations
  82.    5.4 Solution of f()
  83.    5.4.1 FIB Representation
  84.    5.4.2 Solution of f()--Simple Case
  85.    5.4.3 Solution of f()--General Case
  86.    6. Conclusion and Next Steps
  87.    7. Security Considerations
  88.    8. Acknowledgements
  89.    9. Author's  Address
  90.    10. Notes
  91.    11. References
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. S. J. Richardson                                                ^L[Page 2]
  115.  
  116.  
  117.  
  118.  
  119.  
  120. INTERNET-DRAFT                                                March 1996
  121.  
  122.  
  123. 4. Introduction
  124.  
  125.    In order to better understand the proposed FIB reduction scheme, we
  126.    will first review
  127.  
  128.            - the RIB and FIB structure and interaction in a typical router,
  129.            - the different flows of Network-Layer Reachability Information
  130.              (NLRI), and
  131.            - the type of aggregation ("horizontal aggregation") currently
  132.              implemented.
  133.  
  134. 4.1 NLRI Flow and NLRI Interaction with a Router's FIB(s) and Conceptual
  135. RIBs
  136.  
  137. 4.1.1 NLRI Flow Between Routers
  138.  
  139.    It is important to clearly have in mind the flow of NLRI both between
  140.    different routers and also within a single router.  Diagram 1 depicts
  141.    the flow of NLRI in the former case, which we will label "horizontal"
  142.    flow of NLRI, in part because we speak of routers as being "peers"
  143.    and so, by implication, being of equal standing.  (Note that NLRI and
  144.    packet flow, though both bidirectional in nature, have an opposite
  145.    sense in that packets flow in the reverse direction of NLRI.)
  146.  
  147.          +----------+   NLRI   +----------+   NLRI   +----------+
  148.          |          |<========>|          |<========>|          |
  149.          | Router X |          | Router Y |          | Router Z |
  150.          |          |<-------->|          |<-------->|          |
  151.          +----------+ Packets  +----------+ Packets  +----------+
  152.  
  153.                              Diagram 1
  154.                    Flow of NLRI Between Different Routers
  155.                         ("Horizontal" Flow of NLRI)
  156.  
  157.    The entire traffic of NLRI which flow on the Internet can be
  158.    considered to be a stream of NLRI into which routers are placed; the
  159.    routers can act to modify this stream via policy, including adding to
  160.    the stream.
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174. S. J. Richardson                                                ^L[Page 3]
  175.  
  176.  
  177.  
  178.  
  179.  
  180. INTERNET-DRAFT                                                March 1996
  181.  
  182.  
  183. 4.1.2 NLRI Flow Within a Router
  184.  
  185.    Internal to a router, a portion of this stream of NLRI is cached off
  186.    to one side; this is the FIB(s) of the router, the actual routing
  187.    table(s) used in packet forwarding.  Since this flow of NLRI is
  188.    orthogonal to the peer-to-peer or horizontal flow, we will call this
  189.    the "vertical" flow of NLRI.  This is shown in Diagram 2, which
  190.    presents a simplified view of NLRI flow within a router--e.g., Router
  191.    Y of Diagram 1--and which points out the difference between the
  192.    "horizontal" flow "through" the router versus the "vertical" NLRI
  193.    flow from this stream to the local FIB(s).
  194.  
  195.  
  196.                Horizontal NLRI Flow --->
  197.  
  198.                  +------------------+
  199.                  |     ________     |
  200.                  |    / Cloud  \    |
  201.  Inbound NLRI ==>|==>(    of    )==>|==> Outbound NLRI
  202.                  |    \  RIBs  /    |
  203.                  |     --------     |
  204.                  |        ||        |  |
  205.                  |        ||        |  | Vertical NLRI Flow
  206.                  |        \/        |  V
  207.                  |      +------+    |
  208.                  |     +------+|    |
  209.                  |     |      ||    |
  210.                  |     |FIB(s)||    |
  211.                  |     |      |+    |
  212.                  |     +------+     |
  213.                  +------------------+
  214.                         Router
  215.  
  216.                        Diagram 2
  217.           Flow of NLRI Within a Single Router
  218.                ("Vertical" Flow of NLRI)
  219.  
  220. 4.1.3 NLRI Flow in Relation to Router's Conceptual RIBs and FIB(s)
  221.  
  222.    Note that Diagram 2 has lumped the internal RIB structure of the
  223.    router into a cloud (well, OK, it's some sort of cheesy ASCII lump
  224.    ;-).  In order to better model the internal flow of NLRI in a single
  225.    router, one must consider the detailed conceptual structure of a
  226.    router's RIB(s) and the relation of the RIB(s) to the FIB(s); this is
  227.    depicted in Diagram 3, below.[2]
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234. S. J. Richardson                                                ^L[Page 4]
  235.  
  236.  
  237.  
  238.  
  239.  
  240. INTERNET-DRAFT                                                March 1996
  241.  
  242.  
  243.         +-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
  244.         |Adj-RIBs-In                            Adj-RIBs-Out|
  245.             +----+                                  +----+
  246.         |  +----+|                I                +----+|  |
  247. Peer 1 ==> |    || ==>-\  +- - - - - - - - ->/-==> |    || ==> Peer 1
  248.         |  |    |+    ||  |                  ||    |    |+  |
  249.            +----+     ||                     ||    +----+
  250.         |             ||  |                  ||             |
  251.             +----+    ||                     ||     +----+
  252.         |  +----+|    ||  |       I          ||    +----+|  |
  253. Peer 2 ==> |    || ==>||  +- - - - - - - - ->||==> |    || ==> Peer 2
  254.         |  |    |+    ||  |                  ||    |    |+  |
  255.            +----+     ||                     ||    +----+
  256.         |             ||  |                  ||             |
  257.         .     .       .                      .        .     .
  258.         .     .       .                      .        .     .
  259.         .     .       .                      .        .     .
  260.         |             ||  |                  ||             |
  261.             +----+    ||                     ||     +----+
  262.         |  +----+|    ||  |       I          ||    +----+|  |
  263. Peer N ==> |    || ==>||  +- - - - - - - - ->||==> |    || ==> Peer N
  264.         |  |    |+    ||  |                  ||    |    |+  |
  265.            +----+     ||                     ||    +----+
  266.         |             ||  |I                 ||             |
  267.                Import ||                     || Export
  268.         |    Policies ||  |    Loc-RIBs      || Policies    |
  269.              (Inbound ||        +----+   |   || (Outbound
  270.         |    Filters) ||  |    +----+|   |   || Filters)    |
  271.                       \+==+==> |    || =====>+/
  272.         |                      |    |+   |                  |
  273.                                +----+    |
  274.         |                        ||     A()                 |
  275.                                  ||
  276.         |   RIB(s)               ||                         |
  277.         +-- -- -- -- -- -- -- -- ||- -- -- -- -- -- -- -- --+
  278.                                  ||
  279.                             -----||----- f()
  280.                                  ||
  281.                                  \/
  282.                                 FIBs
  283.                                +----+
  284.                               +----+|
  285.                               |    ||
  286.                               |    |+
  287.                               +----+
  288.  
  289.                   RIBs and FIBs in a Single Router
  290.                              Diagram 3
  291.  
  292.  
  293.  
  294. S. J. Richardson                                                ^L[Page 5]
  295.  
  296.  
  297.  
  298.  
  299.  
  300. INTERNET-DRAFT                                                March 1996
  301.  
  302.  
  303.    Although Diagram 3 is considerably more complex than Diagram 2, it is
  304.    basically a more detailed enhancement of the RIB cloud and FIBs shown
  305.    in the latter figure; in particular:
  306.  
  307.         - the dashed bounding box of Diagram 3 represents the
  308.           RIB cloud of Diagram 2, and it contains the various
  309.           component RIBs (Adj-RIBs-In/Out and the Loc-RIB) which
  310.           comprise the complete RIB(s) of the router[3] (in other
  311.           words, a complete RIB for a router has its Loc-RIB and
  312.           a set of Adj-RIBs-In and Adj-RIBs-Out);
  313.  
  314.         - the RIBs associated with inbound and outbound NLRI
  315.           (i.e., the Adj-RIBs-In and Adj-RIBs-Out) are split up
  316.           on a per-peer basis with the former on the left side i
  317.           of the diagram and the latter on the right side;
  318.  
  319.         - multiple RIB and FIB layers are indicated in order to
  320.           account for the fact that there may be protocols which
  321.           support Type-of-Service (ToS)/Quality-of-Service (QoS)
  322.           differentiation of different routes to the same
  323.           destination, resulting in one layer of RIB/FIB per set
  324.           of RIB-Attributes (RIB-Atts) which define a given ToS/QoS
  325.           (i.e., one RIB/FIB layer per ToS/QoS).
  326.  
  327.    There are a few lines which the reader should locate, all near the
  328.    Loc-RIB(s) in Diagram 3; they are labelled "A()" and "f()".  The
  329.    importance of these lines is that they show places where aggregation
  330.    of NLRI can occur.  They are named as functions because aggregation
  331.    policies essentially are functions which modify the flow of NLRI, the
  332.    stream of routing information which passes through a router or is
  333.    cached in the router.
  334.  
  335.    Since there are two directions of NLRI flow, there are also two
  336.    distinct aggregation policies:
  337.  
  338.         - "horizontal" aggregation policy (see sec. 4.3, below)--
  339.           aggregation which affects only the horizontal flow of NLRI--
  340.           conceptually occurs at the line labelled "A()" (i.e., it is
  341.           a part of the process of creating the Adj-RIBs-Out[4]), while
  342.  
  343.         - "vertical" aggregation (see sec. 5, below)--aggregation which
  344.            affects only the horizontal flow of NLRI--conceptually occurs
  345.           at the line labelled "f()".
  346.  
  347.    (Note that any internal peers of the local router--i.e., those peers
  348.    which are in the same Routing Domain (RD) as the local router--will
  349.    receive routing updates via the path labelled "I" in Diagram 3; note
  350.    that this path circumvents the Loc-RIB(s) and export filter process.
  351.  
  352.  
  353.  
  354. S. J. Richardson                                                ^L[Page 6]
  355.  
  356.  
  357.  
  358.  
  359.  
  360. INTERNET-DRAFT                                                March 1996
  361.  
  362.  
  363.    External peers (those which are in a different RD) are updated via
  364.    the right-hand path labelled "Export Policies (Outbound
  365.    Filters)."[5])
  366.  
  367.    Horizontal aggregation is the form of aggregation familiar to most
  368.    readers and is very widely-discussed at the present time,
  369.    particularly in the context of CIDR and it helpfulness both at the
  370.    point of allocating IP address space and at the point of announcing
  371.    routing destinations.
  372.  
  373. 4.2 Horizontal and Vertical NLRI Flows
  374.  
  375.    As we've noted, Diagram 3 represents two different flows of Network-
  376.    Layer Reachability Information (NLRI):  the horizontal flow (the
  377.    peer-to-peer flow, including the flow "through" a router as the NLRI
  378.    pass through it on the way from one peer to another), and the
  379.    vertical flow (the flow from Loc-RIB(s) to FIB(s) within a router.
  380.    These flows within a router can be detailed as follows (refer to
  381.    Diagram 3):
  382.  
  383.         Horizontal NLRI flow:
  384.  
  385.         - incoming NLRI and associated path attributes from peers
  386.           1, 2, .. N are stored in the Adjacent-RIB(s)-In (Adj-RIBs-In)
  387.           associated with the peer announcing the NLRI;
  388.  
  389.         - all Adj-RIBs-In are filtered via the local router's
  390.           import policy, which determines which NLRI in these
  391.           Adj-RIBs-In end up in the local router's Loc-RIB(s);
  392.  
  393.         - a "best route" to each destination in the Loc-RIB(s) is
  394.           selected via both protocol-specified criteria (see, e.g.,
  395.           section 9.1 of RFC1771--and its subsections--for the
  396.           BGP4 decision process) and, possibly, implementation-
  397.           specific criteria (e.g., GateD's use of a second internal
  398.           metric, "preference2"[6]);
  399.  
  400.         - the Loc-RIB's/Loc-RIBs' best routes are filtered via
  401.           the local router's export policy, which determines which
  402.           NLRI will end up in the router's Adjacent-RIBs-Out, which
  403.           are also arranged on a per-peer basis (just as the Adj-RIBs-
  404.           In).
  405.  
  406.         Vertical NLRI flow:
  407.  
  408.         - "best routes" selected in the Loc-RIB(s) are filtered
  409.           via a function f()--described below--into the local
  410.           router's FIB(s).
  411.  
  412.  
  413.  
  414. S. J. Richardson                                                ^L[Page 7]
  415.  
  416.  
  417.  
  418.  
  419.  
  420. INTERNET-DRAFT                                                March 1996
  421.  
  422.  
  423.    Note that these two information flows only intersect at the Loc-
  424.    RIB(s) in the form of the "best routes" selected for each destination
  425.    stored in the Loc-RIB(s); therefore, a change in the FIB filter
  426.    function f() only affects the "vertical" NLRI flow, and has no effect
  427.    on the "horizontal" NLRI flow (i.e., it has no effect on existing
  428.    routing protocol implementations).  Also, as the NLRI flow across the
  429.    Internet, while the horizontal flow is some continuous flow
  430.    (modified, of course, by policy and outages), the vertical flow is
  431.    internal to each router (it does not cross router boundaries).
  432.  
  433. 4.3 Horizontal Aggregation
  434.  
  435.    Classless Inter-Domain Routing (CIDR; RFC1519) aids in the reduction
  436.    of routing information by making possible
  437.  
  438.       a) "right-sizing" of IPv4 address allocations--so that fewer
  439.       destinations need be announced (aggregation at the source of
  440.       routing announcements), and
  441.  
  442.       b) hierarchical addressing schemes which promote aggregation at
  443.       intermediate points in the routing topology (topologically-based
  444.       aggregation).
  445.  
  446.    It is to be noted that both of these schemes represent reductions in
  447.    the number of destinations exchanged between routers; one can view
  448.    this as "horizontal aggregation" in that it affects the amount of
  449.    routing information exchanged between BGP4 peers in the routing
  450.    topology.
  451.  
  452.    Though these aggregation actions, which reduce the total number of
  453.    destinations announced, clearly reduce local Forwarding Information
  454.    Bases (FIBs, the forwarding tables or routing tables of routers),
  455.    this effect is rather indirect, since most routing information is not
  456.    generated at any given local router.  Any reduction of the FIB(s) of
  457.    a given router via these forms of aggregation are therefore primarily
  458.    due to distant actions rather than local actions; the FIB of a given
  459.    router has a size primarily dependent upon the decisions of other RDs
  460.    (in the absence of vertical aggregation).
  461.  
  462.    Currently, there are on the order of 35,000 total destinations
  463.    announced in the "default-free" worldwide Internet.[1]  However, even
  464.    the most well-connected border router (at, e.g., MAE-East in the
  465.    United States) might have only on the order of 40-50 peers; if we
  466.    approximate one next hop per peer, the ratio of destinations to next
  467.    hops suggests that there is a potential for substantial savings of a
  468.    very important resource:  the number of slots in the FIBs of
  469.    "default-free" routers.  The potential for savings is even better for
  470.    non-border routers of a "default-free" backbone:  with about 35,000
  471.  
  472.  
  473.  
  474. S. J. Richardson                                                ^L[Page 8]
  475.  
  476.  
  477.  
  478.  
  479.  
  480. INTERNET-DRAFT                                                March 1996
  481.  
  482.  
  483.    total destinations and around 5 next hops, there is another order of
  484.    magnitude in the ratio of destinations to next hops.
  485.  
  486. 5. Vertical Aggregation
  487.  
  488.    It is precisely this niche which vertical aggregation occupies.  The
  489.    aggregation is "vertical" because the aggregation occurs within a
  490.    single router and does not affect the flow of routing information to
  491.    peers of the router implementing the FIB aggregation.  The FIB
  492.    entries produced by this procedure will generally consist of a subset
  493.    of the destinations available to the router, but FIB aggregation has
  494.    no affect on the destinations placed in Adj-RIBs-Out (Adjacent-RIBs-
  495.    Out; see Diagram 3, above) for announcement to routing peers.  FIB
  496.    aggregation acts locally and directly on the "candidate" FIB; hence,
  497.    the potential for reduction of the local FIB looms much larger than
  498.    that achievable through manipulation of the local FIB via remote,
  499.    indirect means.
  500.  
  501.    In order to understand how this might work, we need to examine the
  502.    specifics of this proposal.  The proposal will be developed by
  503.  
  504.            - considering the FIB filtering currently used, and
  505.            - developing the design criteria for the desired FIB filter;
  506.            - proposing a solution algorithm which fulfills these criteria.
  507.  
  508. 5.1 Character of the Current FIB Filter Function f()
  509.  
  510.    Currently, the selection function indicated by f() in Diagram 3 is a
  511.    unity filter which acts on either:
  512.  
  513.         - the only Loc-RIB (this is the common case in which there is
  514.           only one layer of RIBs in Diagram 3, above; i.e., there is
  515.           only one ToS/QoS for all announced destinations), or
  516.  
  517.         - a "chosen" Loc-RIB corresponding to the particular ToS/QoS
  518.           which will be supported by the router as its single FIB (i.e.,
  519.           f() is a unity filter for one Loc-RIB and discards/ignores
  520.           all other Loc-RIBs).
  521.  
  522. (There are a few kernels which support multiple FIBs--i.e., multiple
  523. ToS/QoS values--and which, therefore, have a filter function f() which
  524. sets all [or >1] RIBs' routes for inclusion in the FIBs.  This is merely
  525. a variation on the "all-or-nothing" selection functions mentioned above.)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534. S. J. Richardson                                                ^L[Page 9]
  535.  
  536.  
  537.  
  538.  
  539.  
  540. INTERNET-DRAFT                                                March 1996
  541.  
  542.  
  543.    Therefore, the current use of f() is as a very simple transformation;
  544.    if we view the FIB and the Loc-RIB(s) as matrices, then we have
  545.    either:
  546.  
  547.            FIB = 1 * Loc-RIB
  548.            FIB = Loc-RIBj = 1 * (KD jk) * Loc-RIBk, k = 1, 2, ... m
  549.  
  550.    where (KD jk) is the author's ASCII attempt to express the Kronecker
  551.    Delta of indices 'j' and 'k' and 'k' varies over the values 1 to 'm'
  552.    (the number of ToS/QoS supported by the router, which therefore
  553.    determines the number of Loc-RIBs).
  554.  
  555.    It is clear that f() currently depends upon the level of protocol and
  556.    router technology in terms of ToS/QoS support.
  557.  
  558. 5.2 New FIB Filter Function--General Character and Constraints
  559.  
  560.    For the case of FIB aggregation, however, f() is a more detailed
  561.    function, and it would replace any occurrence of f() where f() is
  562.    currently the unity filter; thus, this vertical or FIB aggregation
  563.    should occur after "best route" selection (update of the Loc-RIB(s))
  564.    has occurred and just prior to insertion of routes into the FIB.
  565.  
  566.    The function f() is a transformation of the form
  567.  
  568.            FIB' = f() FIB = f() Loc-RIBj
  569.  
  570.    i.e., it must produce a transformation of the single Loc-RIB or
  571.    selected Loc-RIB to produce a new FIB, FIB'.  In this document, we
  572.    will consider a transformation f() such that a sole general
  573.    constraint is fulfilled:
  574.  
  575.            GENERAL-C) Routing of packets must be unaffected by the
  576.                    substitution of FIB' for FIB.
  577.  
  578.    In other words, the aggregated FIB, FIB', must yield routing
  579.    equivalent to the unaggregated FIB;[7]  GENERAL-C guarantees that
  580.    routing which uses any FIB' produced by f() is as reasonable as that
  581.    experienced by the use of the associated (unaggregated) FIB, so that
  582.    the "reasonableness" of routing is not determined by f(), but is
  583.    determined by the specific NLRI exchanged via routing protocols in
  584.    combination with local policies other than FIB aggregation policies.
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594. S. J. Richardson                                               ^L[Page 10]
  595.  
  596.  
  597.  
  598.  
  599.  
  600. INTERNET-DRAFT                                                March 1996
  601.  
  602.  
  603. 5.3 Implications of the Constraint
  604.  
  605. 5.3.1 CIDR-Related Implications of the Constraint
  606.  
  607.    The CIDR draft has two fundamental rules[8]:
  608.  
  609.            CIDR-1) Longest-match routing; routing matches for
  610.                    forwarding decisions are based upon testing
  611.                    the most-specific prefixes in the FIB before
  612.                    less-specific prefixes.
  613.  
  614.            CIDR-2) Aggregation-related rule; packets bound for
  615.                    non-extant components of a aggregate must
  616.                    be discarded by the aggregating routing
  617.                    domain.
  618.  
  619.    How do these rules affect the constraint on the FIB transformation
  620.    f()?
  621.  
  622.    CIDR-2 is easy to deal with; the implementation of this rule has been
  623.    carried out previous to the Loc-RIB finalization which occurs before
  624.    the FIB is handed the "best" routes.  Therefore, CIDR-2 does not
  625.    directly affect the constraint or transformation (though there is a
  626.    tangential effect due to different types of routes which is covered
  627.    in section 5.3.3, below).
  628.  
  629.    The rule labelled CIDR-1 is more interesting, though, and it means
  630.    that we have an interesting observation in terms of the constraint:
  631.  
  632.            CIDR-C) In order to satisfy the constraint in view of
  633.                    CIDR-1, it is necessary to maintain the "stratification
  634.                    of next hops".
  635.  
  636.    What is meant will become clear with the help of a definition.
  637.  
  638.            "related prefixes" in a FIB are any complete set of
  639.            destination prefixes in the FIB which:
  640.  
  641.                    - share a portion of IPv4 address space, no
  642.                      matter what the size;
  643.  
  644.                    - can be arranged in an order such that each
  645.                      new prefix in the set is a strict superset
  646.                      of the previous prefix; and
  647.  
  648.                    - are ordered in that fashion, with the longest
  649.                      prefix being encountered first.
  650.  
  651.  
  652.  
  653.  
  654. S. J. Richardson                                               ^L[Page 11]
  655.  
  656.  
  657.  
  658.  
  659.  
  660. INTERNET-DRAFT                                                March 1996
  661.  
  662.  
  663.    If a given FIB is arranged into a radix trie, then sets of related
  664.    prefixes consist of all of the nodes in the path from any given leaf
  665.    or terminal node in the trie back to the root (in that order).
  666.  
  667.    The "stratification of next hops" emerges if one considers arbitrary
  668.    sets of related prefixes; when the prefixes are ordered as above and
  669.    listed along with their next hops, it is clear that routing which
  670.    uses the given FIB works in the way that it does because different
  671.    parts of the sequence of related prefixes have different next hops.
  672.    However, adjacent prefixes in any set of related prefixes which have
  673.    the _same_ next hop show that there is an extra route in the FIB--the
  674.    more-specific route does not provide any more routing information
  675.    than does the less-specific route.  Whenever a different next hop is
  676.    encountered in more-specific information, though, it must be
  677.    preserved.
  678.  
  679.    Therefore, CIDR-C means that this layering of next hops cannot be
  680.    violated; it must be an invariant of the transformation f().
  681.    Conversely, CIDR-C also means that adjacent prefixes in a set of
  682.    related prefixes which have the same next hop can be safely
  683.    aggregated, assuming that any other constraints developed below are
  684.    also enforced; clearly, this will not violate our general constraint
  685.    on f().
  686.  
  687. 5.3.2 BGP4-Related Implications of the Constraint
  688.  
  689.    RFC1771, the current BGP4 specification, says that a BGP4 speaker
  690.  
  691.            - must have next hops for all routes in the Loc-RIB
  692.              in its FIB,[9] and
  693.  
  694.            - cannot advertise routes which it doesn't use.[10]
  695.  
  696.    How are these to be handled?  The first requirement of RFC1771 will
  697.    be broken in the letter of the rule but will kept in the spirit via
  698.    the constraint on f(), since FIB' will route in the same way that FIB
  699.    routes.  Similarly, the second requirement is kept in spirit via the
  700.    announcement only of "best" routes (the horizontal path doesn't
  701.    change with FIB aggregation) and in routing fact via the
  702.    implementation of the new f(), though, again, not all routes in the
  703.    Loc-RIB are actually used.
  704.  
  705. 5.3.3 Related Considerations
  706.  
  707.    There is an additional, particularly salient feature of aggregation
  708.    which needs to be considered by any algorithm for aggregation,
  709.    particularly for FIB aggregation; though obvious, it must be
  710.    remembered that only similar kinds of routes can be subjected to
  711.  
  712.  
  713.  
  714. S. J. Richardson                                               ^L[Page 12]
  715.  
  716.  
  717.  
  718.  
  719.  
  720. INTERNET-DRAFT                                                March 1996
  721.  
  722.  
  723.    aggregation by f() in order to uphold the constraint.  As alluded to
  724.    in section 5.3.1, above, CIDR-2 implies that, along with "normal"
  725.    routes to real destinations (i.e., those routes which have next hops
  726.    that result in furthering the delivery of packets), a router's kernel
  727.    may well support, e.g., "reject" or "blackhole" routes. Clearly,
  728.    these represent different "route types" which cannot be aggregated
  729.    with "normal" routes without causing changes to routing, in violation
  730.    of the invariance of routing which we require of the transformation
  731.    function f().
  732.  
  733.    Indeed, while NLRI at the peer-session level are often considered to
  734.    consist of triples of the form:
  735.  
  736.         <destination, next hop, path attributes>
  737.  
  738.    routing entries in terms of the kernel can be considered to consist
  739.    of the quintuples:
  740.  
  741.         <destination, next hop, route type, ToS/QoS, other path attributes>
  742.  
  743.    in that "route type" and ToS/QoS values affect the processing of NLRI
  744.    in actual forwarding decisions (note that "route type" is really
  745.    tagged only at the local router, and therefore varies with local
  746.    policy, as well as being kernel-dependent).
  747.  
  748.    Just as with "route type", different ToS/QoS values represent
  749.    boundaries across which aggregation cannot occur.  Since the FIB or
  750.    FIBs consist of either an elected ToS/QoS or a set of FIBs (one for
  751.    each value of ToS/QoS supported by the kernel or the routing domain),
  752.    the function f() must be applied to each FIB independently, and
  753.    therefore will not aggregate across different ToS/QoS values.
  754.  
  755.    In fact, careful consideration of the implication of the existence of
  756.    different types of routes leads to a new criterion:
  757.  
  758.            TYPE-C) In order to satisfy the constraint in view of the
  759.                    existence of different types of routes, it is necessary
  760.                    to maintain the "stratification of route types".
  761.  
  762.    TYPE-C is to be understood in the manner analogous to the
  763.    understanding of CIDR-C; if a set of related prefixes which contains
  764.    prefixes of various types is examined, it will become clear that
  765.    differences and layering of route type also have to be kept invariant
  766.    by the transformation f().
  767.  
  768.    Therefore, to continue the analogy with CIDR-C, TYPE-C also means
  769.    that adjacent prefixes in a set of related prefixes which have the
  770.    same type can be safely aggregated, assuming that CIDR-C is also
  771.  
  772.  
  773.  
  774. S. J. Richardson                                               ^L[Page 13]
  775.  
  776.  
  777.  
  778.  
  779.  
  780. INTERNET-DRAFT                                                March 1996
  781.  
  782.  
  783.    kept; as above, this will not violate our general constraint on f().
  784.  
  785.    Finally, it is important for any implementor of f() to keep in mind
  786.    kernel-specific limitations when attempting to create code for a
  787.    range of machines, some which could have kernels which don't even
  788.    support CIDR routes (and, therefore, for which f() may be essentially
  789.    unimplementable or of extremely little utility).  Though this should
  790.    be obvious, it may make adherence to TYPE-C difficult.
  791.  
  792. 5.4 Solution of f()
  793.  
  794. 5.4.1 FIB Representation
  795.  
  796.    The FIB aggregation function can be described in terms of any
  797.    convenient basis representation of the FIB; let us consider the
  798.    "candidate FIB"--the FIB to be transformed via application of f() to
  799.    FIB', the aggregated FIB--to be stored in a radix trie (with the
  800.    default route, if any, at the root of the trie, and the longest
  801.    prefixes stored furthest away from the root; prefix length increases
  802.    as one becomes more distant from the root).  The general advantages
  803.    of this representation are numerous; for our purposes, the fact that
  804.    potential aggregate prefixes of the prefix associated with a given
  805.    node will lie on the path to the root is of prime importance.
  806.  
  807. 5.4.2 Solution of f()--Simple Case
  808.  
  809.    For the case where this candidate FIB is entirely composed of normal,
  810.    active routes (i.e., where there are no reject or other routes which
  811.    are to be interpreted in a manner other than that of a normal, active
  812.    route) to the destinations, the algorithm is simple:
  813.  
  814.            If
  815.              the next hop for a destination associated with a child node
  816.              is the same as
  817.              the next hop associated with the parent node,
  818.            then
  819.              the destination/next hop associated with the child node
  820.              is EXCLUDED FROM FIB';
  821.            otherwise,
  822.              the destination/next hop associated with the child node
  823.              is INCLUDED IN FIB'.
  824.  
  825.    Clearly, this will result in a FIB' which upholds the constraint
  826.    expressed in section 5.2 above; child nodes which have the same next
  827.    hop as the parent do not contribute additional information to
  828.    routing.  When differences in next hops are detected, the child's
  829.    information is used, which fulfills the "stratification of next hops"
  830.    criterion CIDR-C from section 5.3.1 above.  (The stratification of
  831.  
  832.  
  833.  
  834. S. J. Richardson                                               ^L[Page 14]
  835.  
  836.  
  837.  
  838.  
  839.  
  840. INTERNET-DRAFT                                                March 1996
  841.  
  842.  
  843.    types, criterion TYPE-C from section 5.3.3 above, is guaranteed by
  844.    the degenerate nature of the candidate FIB.)
  845.  
  846. 5.4.3 Solution of f()--General Case
  847.  
  848.    For the more general case of a candidate FIB which contains several
  849.    different types of routes we need only slightly revise the above
  850.    text:
  851.  
  852.            If
  853.              the next hop and route type for a destination associated
  854.                    with a child node
  855.              are the same as
  856.              the next hop and route type associated with the parent node,
  857.            then
  858.              the destination/next hop associated with the child node
  859.              is EXCLUDED FROM FIB';
  860.            otherwise,
  861.              the destination/next hop associated with the child node
  862.              is INCLUDED IN FIB'.
  863.  
  864.    Clearly, this solution satisfies both CIDR-C and TYPE-C as well as
  865.    the overriding constraint GENERAL-C.
  866.  
  867. 6. Conclusion and Next Steps
  868.  
  869.    The algorithms for f() presented above guarantee that the three
  870.    constraints presented in this document (GENERAL-C, CIDR-C, and TYPE-
  871.    C) are all enforced; via the removal of routing information which
  872.    contributes nothing to the actual forwarding decisions made by a
  873.    router, the FIB is transformed to a smaller FIB, FIB', which has the
  874.    same routing characteristics as FIB.
  875.  
  876.    The measures propounded in this document will, in general, have an
  877.    effect which varies as a function of the number of next hops which a
  878.    given router has, and therefore may not have as much utility in
  879.    border routers as in non-border routers.   However, this scheme will
  880.    certainly aid a given RD to have greater control over the size of its
  881.    own FIBs (reducing the impact of RDs which have done a poor job of
  882.    aggregating their outbound routing announcements) without
  883.    jeopardizing either the consistency of routing information or the
  884.    actual routing of IP packets.
  885.  
  886.    The actual effects of the implementation and use of f() have yet to
  887.    be measured, and this is the pressing "next step" in the evaluation
  888.    of the usefulness of "vertical"/FIB aggregation.  The author is
  889.    currently implementing f() in GateD and hopes to have concrete
  890.    numbers available shortly; other implementations and results are
  891.  
  892.  
  893.  
  894. S. J. Richardson                                               ^L[Page 15]
  895.  
  896.  
  897.  
  898.  
  899.  
  900. INTERNET-DRAFT                                                March 1996
  901.  
  902.  
  903.    obviously both welcome and useful, too, in order to attempt to
  904.    quantify the benefits of using vertical aggregation.
  905.  
  906. 7. Security Considerations
  907.  
  908.    Security considerations are not discussed in this document.
  909.  
  910. 8. Acknowledgements
  911.  
  912.    The author would like to thank Sue Hares of Merit Network, Inc. for
  913.    her encouragement and review of this document.  Additionally, he
  914.    would like to thank both Ms. Hares and Laurent Joncheray (also of
  915.    Merit Network, Inc.) for providing helpful information and
  916.    suggestions related to implementing the algorithm described in this
  917.    document in GateD.  Thanks also to Radia Perlman for her review of
  918.    this work.
  919.  
  920. 9. Author's  Address
  921.  
  922.    Steven J. Richardson
  923.    Merit Network, Inc.
  924.    4251 Plymouth Rd., Suite C
  925.    Ann Arbor, MI  48105-2785
  926.  
  927.    email:  sjr@merit.edu
  928.    phone:  (313) 647-4813
  929.      fax:  (313) 647-3185
  930.  
  931. 10. Notes
  932.  
  933.    [1]  This is taken from information exchanged on the cidrd email list
  934.    in late February/early March 1996.
  935.  
  936.    [2]  This diagram was inspired by Figure 7., entitled "Routeing
  937.    Information Base," on p. 91 of the reference ISO10747.
  938.  
  939.    [3]  See, e.g., RFC1771, section 3.2.
  940.  
  941.    [4]  See, e.g., RFC1771, sections 9.1, 9.1.3, and 9.2.4.2 for BGP4
  942.    aggregation and the decision process, and sections 7.16, 7.16.3,
  943.    7.16.3.1, 7.18.2, 7.18.2.1 - 7.18.2.3 of ISO10747 for IDRP
  944.    aggregation and the decision process.
  945.  
  946.    [5]  See, e.g., RFC1771, sections 9.1, 9.1.1 and 9.2.1 for the BGP4
  947.    internal update process and its placement in the decision process.
  948.  
  949.    [6]  This is documented, e.g., in the gated-R3_6Alpha_1 release
  950.    (available at ftp://ftp.gated.org/net-research/gated/gated-
  951.  
  952.  
  953.  
  954. S. J. Richardson                                               ^L[Page 16]
  955.  
  956.  
  957.  
  958.  
  959.  
  960. INTERNET-DRAFT                                                March 1996
  961.  
  962.  
  963.    R3_6Alpha_1.tar.gz), in the BGP configuration statement.
  964.  
  965.    [7]  Clearly, as with any routing policy, any FIB aggregation
  966.    function f() which is adopted by a given routing domain should be
  967.    applied consistently across all of its routers, though the
  968.    constraint's requirement that FIB' yield the same routing as that
  969.    generated by FIB means that a routing domain need _not_ implement f()
  970.    in all of its routers.
  971.  
  972.    [8]  RFC1771, sections 4.2 and 4.3.
  973.  
  974.    [9]  RFC1771, section 3.1.
  975.  
  976.    [10]  RFC1771, sections 3.1, 9.1 (esp. the paragraph labelled "c)"),
  977.    and 9.1.3.
  978.  
  979. 11. References
  980.  
  981. ISO10747   "Information Processing Systems - Telecommunications and Information
  982.            Exchange between Systems - Protocol for Exchange of Inter-domain
  983.            Routeing Information among Intermediate Systems to Support Forwarding
  984.            of ISO 8473 PDUs", Proposed Draft of ISO/IEC 10747, 04/27/1993.
  985.  
  986. RFC1518    Y. Rekhter, T. Li, "An Architecture for IP Address Allocation with
  987.            CIDR", 09/24/1993.
  988.  
  989. RFC1519    V. Fuller, T. Li, J. Yu, K. Varadhan, "Classless Inter-Domain
  990.            Routing (CIDR): an Address Assignment and Aggregation Strategy",
  991.            09/24/1993.
  992.  
  993. RFC1520    Y. Rekhter, C. Topolcic, "Exchanging Routing Information Across
  994.            Provider Boundaries in the CIDR Environment", 09/24/1993.
  995.  
  996. RFC1771    Y. Rekhter, T. Li, "A Border Gateway Protocol 4 (BGP-4)",
  997.            03/21/1995.
  998.  
  999. RFC1772    Y. Rekhter, P. Gross, "Application of the Border Gateway Protocol
  1000.            in the Internet", 03/21/1995.
  1001.  
  1002. RFC1817    Y. Rekhter, "CIDR and Classful Routing", 08/04/1995.
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014. S. J. Richardson                                               ^L[Page 17]
  1015.  
  1016.  
  1017.