Internet DRAFT - draft-howard-up-pio

draft-howard-up-pio






Network Working Group                                          L. Howard
Internet-Draft                                         Time Warner Cable
Intended status: Standards Track                       November 17, 2011
Expires: May 20, 2012


          The UP PIO Field: Finding Up in an Unmanaged Network
                         draft-howard-up-pio-00

Abstract

   It is difficult to find a path through an unmanaged network with
   multiple routers.  This document describes a new Prefix Information
   Option field which can provide information to routers to find a path.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on May 20, 2012.

Copyright Notice

   Copyright (c) 2011 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

   This document may contain material from IETF Documents or IETF



Howard                    Expires May 20, 2012                  [Page 1]

Internet-Draft                   UP PIO                    November 2011


   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Requirements Language  . . . . . . . . . . . . . . . . . .  3
   2.  Format . . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.  Use Cases  . . . . . . . . . . . . . . . . . . . . . . . . . .  4
     3.1.  Default Route  . . . . . . . . . . . . . . . . . . . . . .  4
     3.2.  Walled Garden  . . . . . . . . . . . . . . . . . . . . . .  4
     3.3.  ULA  . . . . . . . . . . . . . . . . . . . . . . . . . . .  4
     3.4.  Delegated Prefix . . . . . . . . . . . . . . . . . . . . .  5
   4.  Implementation . . . . . . . . . . . . . . . . . . . . . . . .  5
     4.1.  Host Behavior  . . . . . . . . . . . . . . . . . . . . . .  5
     4.2.  Tie Breaking . . . . . . . . . . . . . . . . . . . . . . .  5
     4.3.  Multiple Paths . . . . . . . . . . . . . . . . . . . . . .  5
     4.4.  Route Withdrawal . . . . . . . . . . . . . . . . . . . . .  6
   5.  Examples . . . . . . . . . . . . . . . . . . . . . . . . . . .  6
   6.  Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . .  8
   7.  Additional Work Required . . . . . . . . . . . . . . . . . . . 10
   8.  Alternatives . . . . . . . . . . . . . . . . . . . . . . . . . 10
   9.  Security Considerations  . . . . . . . . . . . . . . . . . . . 10
   10. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 10
   11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
     11.1. Normative References . . . . . . . . . . . . . . . . . . . 11
     11.2. Informative References . . . . . . . . . . . . . . . . . . 11
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11














Howard                    Expires May 20, 2012                  [Page 2]

Internet-Draft                   UP PIO                    November 2011


1.  Introduction

   This document describes a new Prefix Information Option field to be
   used in unmanaged networks (such as home networks) to find a path to
   a given prefix.  This PIO field is not intended to replace dynamic
   routing protocols, and will not find the best path to a given
   destination, though it can provide useful information to routers.

1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119.  [RFC2119].


2.  Format
        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     Type      |    Length     | Prefix Length |L|A|R|U| Rsvd1 |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         Valid Lifetime                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                       Preferred Lifetime                      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Distance      |           Reserved2                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       +                                                               +
       |                                                               |
       +                            Prefix                             +
       |                                                               |
       +                                                               +
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The use of L and A bits are specified in rfc4861.  The use of the R
   bit is specified in rfc3775.

   This format represents the following changes over those RFCs:

      Upstream Prefix (U) 1-bit router address flag.  When this UP bit
      is set to 1, indicates that the prefix was learned, rather than
      configured.

      Rsvd1 Reduced from a 5-bit field to a 4-bit field to account for
      the addition of the above bit.




Howard                    Expires May 20, 2012                  [Page 3]

Internet-Draft                   UP PIO                    November 2011


      Distance An 8-bit metric used to determine distance and prevent
      loops.

   The UP bit is used to find a path through an unmanaged network.  When
   a router learns prefix information from a Router Advertisement with
   the UP bit sent, the router SHOULD add that prefix to its own RAs.
   When sending RAs containing the learned prefix, it MUST increment the
   Distance value by one.


3.  Use Cases

3.1.  Default Route

   The most common implementation of this field would be the
   advertisement of a default route, where Prefix Length = 0 and Prefix
   = 0.  An Internet access provider could use Router Advertisements to
   customer gateways with the UP bit set, and a distance of 0, to
   indicate the border of the administrative domain and the default
   gateway for the customer access router.  That customer access router,
   having learned the default gateway, SHOULD add the prefix to its
   routing table, then SHOULD include this information in its own RAs.
   When the router sends RAs including this prefix, it MUST increment
   the Distance in those RAs to indicate that it is one hop further than
   the origin or the prefix.

3.2.  Walled Garden

   For a network provider who does not provide a default route, the UP
   option can be used to indicate that a prefix is available.  For
   instance, an operator who only wanted traffic for its hosted services
   on 2001:db8::/32, would send an RA for that prefix to the access
   gateway, with Distance=0.  That gateway SHOULD add the prefix to its
   routing table, then SHOULD include the prefix in its own RAs, and
   MUST increment the Distance in those RAs to indicate that it is one
   hop away from the border.

3.3.  ULA

   Unique Local Addresses may be used for a variety of reasons
   [RFC6204].  When a router generates a ULA prefix, it MUST include
   that prefix in RAs.  It SHOULD include the UP option field, with a
   Distance = 0.  When another router learns that prefix, it SHOULD add
   the prefix to its routing table, then SHOULD include the prefix in
   its own RAs, and MUST increment the Distance in those RAs to indicate
   that it is one hop away from the border.





Howard                    Expires May 20, 2012                  [Page 4]

Internet-Draft                   UP PIO                    November 2011


3.4.  Delegated Prefix

   In home network scenarios, routers are often also DHCPv6 servers.
   When a device is a DHCPv6-PD server, and receives a prefix to be used
   for host address assignments (regardless of setting of M-bit), if
   that device is also the router for that prefix, that router becomes
   authoritative for the prefix.  "Authoritative for the prefix" is
   analogous to the notion of the "delegating router" responding to a
   request from the "requesting router" per [RFC3633].  In other words,
   when a router receives Prefix Delegation, it SHOULD include that
   prefix in its RAs, and SHOULD set the Distance to 0.  Note that other
   values are possible, but reduce the possible diameter of the network.

   Note that in this way, more specific routes may be propagated through
   the network via Router Advertisements.  The longest match rule
   applies, and establishes the route preference.  See Examples section.


4.  Implementation

4.1.  Host Behavior

   Hosts use RAs and the PIO to find their next hop, and for address
   autoconfiguration.  Nothing in the use of the UP bit changes these
   behaviors, though it is possible that hosts will learn multiple
   prefixes, and might have multiple paths to the same prefix.  It is
   expected that these are harmless.  Details of path selection are left
   to implementers.

   A host MAY use the Distance metric to select a better bath for a
   prefix.  A host might learn multiple prefixes from which SLAAC may be
   used.  This is not a new function introduced with the UP bit, and
   host behavior is expected to be unchanged.

4.2.  Tie Breaking

   When a router learns the same prefix from two other routers, and both
   RAs have the same Distance, a tie-breaker mechanism is required.  The
   tie-breaker could be arbitrary, such as the time the RA was received,
   or it could be based on (e.g.) the Preferred Lifetime value, the
   layer 2 link type, or other suitable informationr.  Implementers MUST
   have a tie-breaker rule or rules to resolve all ties.

4.3.  Multiple Paths

   A router receiving multiple RAs for the same prefix may choose to
   discard the path not chosen, or may add the route to its routing
   table with a higher Administrative Distance.



Howard                    Expires May 20, 2012                  [Page 5]

Internet-Draft                   UP PIO                    November 2011


4.4.  Route Withdrawal

   As with other RAs, when an RA is received from a router with no
   information for a prefix, even if that router had previously provided
   prefix information, the receiver SHOULD remove references to that
   prefix from its routing table.  Similarly, if no RAs are received
   from a router, the prefix SHOULD be removed.  Further, it SHOULD send
   RAs without that prefix.

   When the Valid Lifetime has passed, the route MUST be removed.  When
   the Preferred Lifetime has passed, the route MAY be lowered in
   preference.


5.  Examples

   Consider the example in Figure 1, in which a network has two upstream
   ISPs, ISP A and ISP B. A different router connects to each ISP.
   Routers A and B connect to their respective upstream ISPs, and a
   Router C and Router D connect to the same link.  Routers C and D
   share another link, causing a potential loop situation.  A Host #1
   connects to the shared link between Routers A, B, C, and D. A Host #2
   connects to the shared link between Routers C and D.
   +----+-----+                              +-----+----+    \
   |   ISP A  |                              |   ISP B  |     \
   |          |                              |          |     | Service
   +----+-----+                              +-----+----+     | Provider
        |                                          |          | Network
        |                                          |          /
        |                                          |         /
   +----+-----+                              +-----+----+    \
   | Router A |                              | Router B |     \
   |          |                              |          |      |
   +----+-----+                              +-----+----+      |
        |                                          |           | Home
        |                                          |           | Network
    ----+---------------------+--------------------+---        |
        |                     |                    |           |
   +----+-----+          +----+-----+        +-----+----+      |
   |IPv6 Host |          | Router C |        | Router D |      |
   |    #1    |          |          |---+----|          |     /
   +----------+          +----------+   |    +----------+    /
                                        |
                                        |
                                  +-----+----+
                                  | IPv6 Host|
                                  |   #2     |
                                  +-----+----+



Howard                    Expires May 20, 2012                  [Page 6]

Internet-Draft                   UP PIO                    November 2011


                           Multi-homed Topology

   Suppose ISP A and ISP B both provide a default route via Router
   Advertisements.  Further suppose that ISP A delegates (via DHCPv6)
   the prefix 2001:db8:000a::/48, and ISP B delegates the prefix 2001:
   db8:0000:00b0::/56.

   Router A sends 0::/0 with UP bit and Distance=1, and sends 2001:db8:
   a::/48 with UP bit and Distance=0.

      Router B receives the RA.  It prefers the default route from ISP
      B, because its Distance=0.  It learns prefix 2001:db8:a::/48 and
      adds it to its routing table.

      Router C and Router D receive the RA.  They each install the
      default route and the /48 prefix in their routing tables.

      Host #1 might configure an address from the prefix via DHCP or
      SLAAC.

   Router B sends 0::/0 with UP bit and Distance=1, and sends 2001:db8:
   0:b0::/56 with UP bit and Distance=0.

      Router A receives the RA.  It prefers the default route from ISP
      A, because its Distance=0.  It learns prefix 2001:db8:b0::/56 and
      adds it to its routing table.

      Router C and Router D receive the RA.  They compare the default
      route to the existing default route.  Each applies its tie-
      breaking rule, and installs the winning route.  Suppose they have
      different methods, and Router C uses the default to Router A, and
      Router D uses the default to Router B. They each add the /56
      prefix to their routing tables.

      Host #1 might configure an additional address from the prefix via
      DHCP or SLAAC.  Whether it does is beyond the scope of this
      document.

   Router C sends 0::/0 with UP bit and Distance=2, and sends 2001:db8:
   a::/48 with UP bit and Distance=2, and sends 2001:db8:0:b0::/56 with
   UP bit and Distance=2.

      Routers A and B receive the RAs, but ignore the duplicate prefixes
      within them because they already have those prefixes with a
      shorter Distance.

      Router D receives the RA for 0::/0, but already has a route with a
      lower Distance.  Router D receives the RA for 2001:db8:a::/48, but



Howard                    Expires May 20, 2012                  [Page 7]

Internet-Draft                   UP PIO                    November 2011


      already has a route with a lower Distance (from Router A, where
      Distance=0).  Router D receives the RA for 2001:db8:0:b::/56, but
      already has a route with a lower Distance (from Router B, where
      Distance=0).

   Router C then receives delegated prefix 2001:db8:a:c::/64.  Host #2
   gets an address for this prefix, either via SLAAC or DHCP.  Router C
   sends RAs for 2001:db8:a:c::/64 with UP bit and Distance=0.  The host
   also receives RAs for the /64 prefix.

      Router D receives the RA for 2001:db8:a:c::/64.  It is a longer
      (more specific prefix) than its previous 2001:db8:a::/48 route, so
      it adds the more specific to its routing table.

      Routers A and B receive the RA for 2001:db8:a:c::/64.  It is a
      longer (more specific prefix) than their previous 2001:db8:a::/48
      route, so they add the more specific to its routing table.  They
      will update their own RAs, but Routers C and D already have routes
      with lower Distance.

      If Router A or Router B sends the more-specific prefix to the ISP,
      the ISP MAY choose to add the route or ignore it if a route
      preferred by policy exists (for the delegated prefix).


6.  Evaluation

   Here follows an evaluation of whether this solution meets all of the
   Homenet routing requirements.

      Can Host #1 reach Host #2?  Yes, via a path through either router.

      Is the network border clear?  Yes, as Distance=0 for the shortest
      prefix.

      Can it handle a router being added?  Yes, the new router will
      learn prefixes via RAs quickly.

      Can it handle a router being moved?  Yes, with some delay in
      relearning the routes.  If Host #2 were a Router E, and it was
      moved to the shared ABCD link without the router or interface
      going down long enough for RAs to be missed, it might propagate
      RAs learned from Routers C and D. It would have a higher Distance
      for the shorter prefixes (the /0, /48, /56), so neighboring
      routers would ignore its RAs.  If it were two layers deeper in the
      network, such that it had a Distance=2 for a more-specific, which
      was better than the Distance previously seen by Routers A and B,
      neighbors would prefer its RAs.  However, it would stop sending



Howard                    Expires May 20, 2012                  [Page 8]

Internet-Draft                   UP PIO                    November 2011


      those RAs once it stopped receiving them.  The router would
      continue sending RAs for its delegated prefix for as long as it
      had that prefix; this problem is related to addressing, not
      routing.

      Can it handle a router being removed?  Yes. Some routers may
      install multiple routes; as soon as they miss seeing an RA for a
      prefix, they will have a back route.  Other routers may have to
      wait until they see a new RA before having a backup path to the
      prefix.

      Will it work in a no-configuration environment?  Yes.

      Can it support multiple upstream networks?  Yes. It does not solve
      address configuration or source selection issues, but those are
      not routing problems per se.

      Does it work if prefix delegation is not hierarchical?  Yes. Each
      prefix has its own Prefix Information Option, each with its own
      Distance.

      Can another path be found in case of failure?  Yes, within a
      couple of RA intervals.

      Does it prevent loops?  Yes.

      Does it allow for stable prefixes through reboots?  Yes, though
      paths will have to be rediscovered, through the period configured
      for Router Advertisement transmissions.

      Is it lightweight/cheap?  Yes. A simple addition to the PIO, which
      already exists.  Some additional routing decision-tree logic is
      required for comparing best paths, tie-breaking among equal paths,
      etc.

      Can it handle multiple-dwelling units, or other potentially dense
      networks?  Each upstream router will increment Distance, so each
      router should choose the shortest upstream path.  However, a host
      with no router could end up choosing a neighbor's router instead
      of their ISP.  The solution is no chattier than existing RAs.

      Can it stand up to wireless networks, and networks with wired and
      wireless segments?  Yes, with consideration for multiple-dwelling
      units.

      Can it stand up to unintentional connections of networks?  Yes.
      Although the Distance would seem to limit the diameter of the
      network to 255 segments, when each router is given a subnet



Howard                    Expires May 20, 2012                  [Page 9]

Internet-Draft                   UP PIO                    November 2011


      prefix, it resets the Distance to 0 for its prefix.  Thus, the
      Diameter is a wide as prefix topology allows.


7.  Additional Work Required

   This option essentially overloads the PIO to be a lightweight
   distance-vector routing protocol of sorts.  As such, it needs to
   avoid the problems of distance-vector protocols, such as the count-
   to-infinity problem.  Several possibilities exist to mitigate this
   problem:

      Use a smaller possible infinity (i.e., change the Distance field
      to be a 4-bit field)

      Shorten the RA transmission intervals

      Split horizon (do not advertise a prefix out the interface it was
      learned) with poison reverse (when a neighbor is lost, send an RA
      with Distance=255) could be used


8.  Alternatives

   An extension of rfc4191, Default Router Preferences and More-Specific
   Routes, with its definition of a Route Information Option, might be a
   closer approximation to the distance-vector protocol described here.

   A link-state protocol would solve standard problems with distance-
   vector protocols.  However, most link-state protocols are much
   heavier implementations.


9.  Security Considerations

   By using unsecured Router Advertisements, attacks that compromise RAs
   would have an extended effect.  Use of SeND should mitigate these
   attacks.


10.  IANA Considerations

   There are no IANA considerations or implications that arise from this
   document.


11.  References




Howard                    Expires May 20, 2012                 [Page 10]

Internet-Draft                   UP PIO                    November 2011


11.1.  Normative References

   [RFC2119]  "Key words for use in RFCs to Indicate Requirement
              Levels".

   [RFC2461]  "Neighbor Discovery for IP Version 6 (IPv6)".

   [RFC3775]  "Mobility Support in IPv6".

   [RFC4861]  "Neighbor Discovery for IP version 6 (IPv6)".

11.2.  Informative References

   [RFC3633]  "IPv6 Prefix Options for Dynamic Host Configuration
              Protocol (DHCP) version 6".

   [RFC6204]  Cisco Systems, Inc., Cisco Systems, Inc., CableLabs, AT&T,
              and Cisco Systems, Inc., "Basic Requirements for IPv6
              Customer Edge Routers".


Author's Address

   Lee Howard
   Time Warner Cable
   13820 Sunrise Valley Drive
   Herndon, VA  20171
   US

   Phone: +1 703 345 3513
   Email: lee.howard@twcable.com




















Howard                    Expires May 20, 2012                 [Page 11]