Internet DRAFT - draft-kaiser-if-sel

draft-kaiser-if-sel






Network Working Group                                          A. Kaiser
Internet-Draft                                               A. Petrescu
Intended status: Experimental                                        CEA
Expires: July 10, 2014                                   January 6, 2014


    Interface Selection Mechanism for Multiple Interfaces IPv6 Hosts
                         draft-kaiser-if-sel-01

Abstract

   This document describes an interface selection mechanism that enables
   multiple interfaces (multihomed) IPv6 hosts to select their most
   appropriate egress interface to send data over the network.  The
   mechanism extends the Neighbor Discovery (ND) protocol [RFC4861] with
   two new Router Advertisement options.

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 July 10, 2014.

Copyright Notice

   Copyright (c) 2014 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.



Kaiser & Petrescu         Expires July 10, 2014                 [Page 1]

Internet-Draft                   If-Sel                     January 2014


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Requirements . . . . . . . . . . . . . . . . . . . . . . . . .  4
   3.  Description of the mechanism . . . . . . . . . . . . . . . . .  5
     3.1.  Link Cost Option . . . . . . . . . . . . . . . . . . . . .  5
     3.2.  Path Cost Option . . . . . . . . . . . . . . . . . . . . .  6
   4.  Status Code  . . . . . . . . . . . . . . . . . . . . . . . . .  9
   5.  Example use case . . . . . . . . . . . . . . . . . . . . . . . 10
     5.1.  Network topology . . . . . . . . . . . . . . . . . . . . . 10
     5.2.  Messages exchange diagram  . . . . . . . . . . . . . . . . 12
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 14
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 15
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 16
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17




































Kaiser & Petrescu         Expires July 10, 2014                 [Page 2]

Internet-Draft                   If-Sel                     January 2014


1.  Introduction

   In the context of multihomed hosts, where hosts are connected to a
   network with more than only one interface, the selection of a right
   egress interface to send data is critical.  Indeed, selecting a wrong
   egress interface may lead to a non-optimal routing of data in the
   network or, in the worst case, the impossibility to reach the
   destination.  In order to cope with the aforementioned issue, this
   document describes an interface selection mechanism that enables
   hosts to select their most appropriate egress interface, leading to
   an optimized end-to-end routing of data.

   The proposed mechanism is based on the ND protocol.  More precisely,
   two new options are introduced in RS and RA messages: the Link Cost
   Option (LCO) and the Path Cost Option (PCO).




































Kaiser & Petrescu         Expires July 10, 2014                 [Page 3]

Internet-Draft                   If-Sel                     January 2014


2.  Requirements

   The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD,
   SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this
   document, are to be interpreted as described in [KEYWORDS].














































Kaiser & Petrescu         Expires July 10, 2014                 [Page 4]

Internet-Draft                   If-Sel                     January 2014


3.  Description of the mechanism

   The proposed mechanism is divided into two operations, each one
   relying on a new ND option:

   o  Gathering informations about links costs and selection of a
      default egress interface using the Link Cost Option

   o  Gathering informations about the cost of a path to a destination
      and selection of an egress interface for the specific destination
      using the Path Cost Option (PCO)

   The following subsections detail each operation as well as the
   corresponding option.

3.1.  Link Cost Option

   The LCO is used to advertise the cost of a link.  This option SHOULD
   be included in all RA messages that are generated by routers.
   Therefore, a host that connects to a link is informed about the cost
   of this specific link.  By extension, if a host is connected to
   multiple links in the network, it is informed about the cost of each
   of those links.  Using these informations, the host selects its
   default interface: the interface connected to the link that has the
   lowest cost is selected.  The host then adds in its routing table an
   entry that contains the default route as destination, the router that
   is on the corresponding link as next-hop, the selected interface as
   outgoing interface and the link cost as metric.  Upon reception of
   other RA messages, the host compares the link costs included in the
   RAs with the one in its routing table.  If the received link cost is
   better than the one of the default route in the routing table, the
   latter MUST be updated accordingly.

   The following figure shows the format of the link cost option.  This
   option is only valid in the RA messages and MUST NOT be included in
   the other ND messages.


    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     |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Link Cost                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+






Kaiser & Petrescu         Expires July 10, 2014                 [Page 5]

Internet-Draft                   If-Sel                     January 2014


   Type:           Identifier of the LCO (TBD by IANA).

   Length:         1.  Size of the option as defined in [RFC4861].

   Reserved:       Unused field.  MUST be set to zero by sender and
                   ignored by recipient.

   Link Cost:      Unsigned integer.  The cost of the link.

3.2.  Path Cost Option

   The PCO is used by hosts to ask routers about the total cost of a
   path to a destination.  The routers reply to the request also by
   using the PCO.  Thus, this option MAY be included in RS and RA
   messages.

   When a multiple interfaces host wants to send data to a destination
   node, it starts by checking in its routing table if a specific route
   to this destination exists.  If no route exists, the host sends a RS
   message with a PCO to the all-routers multicast address on each of
   its interfaces.  The PCO includes the IPv6 address of the destination
   to which the host wants to send data.  Upon reception of such RS
   message, a router checks in its routing table which route entry it
   would select to forward data to this specific destination.  The
   router then replies by sending a unicast RA message to the requesting
   host with a PCO that includes the total cost of the selected path
   from the router itself to the destination along with a lifetime that
   defines the validity of the route advertised.  Upon reception of
   these informations, the host computes the total cost of the path from
   itself to the destination by adding to the path cost advertised by
   the router the corresponding link cost (which is advertised with the
   LCO).  Once computed, the host selects as egress interface to the
   specific destination the interface connected to the path that has the
   lowest end-to-end cost.  The host then updates its routing table
   accordingly with the new computed information.

   The following figure shows the format of the path cost option.  This
   option is only valid in the RS or RA messages and MUST NOT be
   included in the other ND messages.












Kaiser & Petrescu         Expires July 10, 2014                 [Page 6]

Internet-Draft                   If-Sel                     January 2014


    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     |Transaction ID |  Status Code  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   Reserved                    | Prefix Length |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                          Destination                          |
   |                       Address or Prefix                       |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Path Cost                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Lifetime                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Type:                     Identifier of the PCO (TBD by IANA).

   Length:                   4.  Size of the option as defined in
                             [RFC4861].

   Transaction ID:           Identifier of the current RS/RA messages
                             exchange between the host and the router.

   Status Code:              Code that provides additionnal informations
                             about the results provided by the router
                             (see Section 4 for more details).  MUST be
                             set to zero in RS messages and ignored by
                             recipient.

   Reserved:                 Unused field.  MUST be set to zero by
                             sender and ignored by recipient.

   Prefix Length:            Size of the IPv6 prefix that follows.  Set
                             to 128 if the following field contains an
                             IPv6 address.

   Dst. addr. or pref.:      IPv6 prefix or address of the destination
                             node to which the path computation is
                             asked.

   Path Cost:                Unsigned integer.  The total cost of the
                             path from the advertising router to the
                             destination.






Kaiser & Petrescu         Expires July 10, 2014                 [Page 7]

Internet-Draft                   If-Sel                     January 2014


   Lifetime:                 The lifetime of the route advertised in
                             this PCO.  MUST be set to zero in RS
                             messages and ignored by recipient.
















































Kaiser & Petrescu         Expires July 10, 2014                 [Page 8]

Internet-Draft                   If-Sel                     January 2014


4.  Status Code

   A Status Code is included in the PCO option.  It provides additionnal
   informations to the host about the results of its request.  The
   following codes are considered:

   0    Success: a path to the destination is known by the router and
        the corresponding path cost is included in the PCO.

   1    No specific route to the destination is known by the router.
        However, the router has a default route that can be used to
        forward data to the destination, but with no warranty.  In this
        case, the corresponding path cost MUST be set to the maximum
        possible value (i.e. all-ones bits).

   2    Failure: the packets to this destination would probably be
        dropped by this router because no route to reach the destination
        is known or because of any other reason (firewall rules, policy-
        related rules, ...).  In this case, the path cost value is set
        to zero.































Kaiser & Petrescu         Expires July 10, 2014                 [Page 9]

Internet-Draft                   If-Sel                     January 2014


5.  Example use case

   Typical uses cases that can be considered are home networks,
   corporate network, ad-hoc networks, etc.  This section illustrates
   the mechanism through a simple network topology.

5.1.  Network topology

   The following figure depicts the network topology used in this
   example.

                                         Link1 (4)
                                      2001:db8:1::/64
      Link2 (2)      --+-----------------------------------------+--
    2001:db8:2::/64     |                                         |
    --+--------+--      |                                         |
       |       |        |                                         |
       |       |   /----+----\                               /----+----\
       |       |   |         |                               |         |
   +---+---+   +---+ Router1 |                               | Router2 |
   |       |       |         |                               |         |
   | Host2 |       \----+----/                               \----+----/
   |       |            |                                         |
   +-------+            | Link3 (5)                     Link4 (3) |
                        | 2001:db8:3::/64         2001:db8:4::/64 |
                      --+----------+--                 --+--------+--
                                   |                     |
                                   |      +-------+      |
                                   |   I1 |       | I2   |
                                   +------+ Host1 +------+
                                          |       |
                                          +-------+

   The figure shows two routers (Router1, Router2) and two hosts (Host1,
   Host2).  Theses nodes are connected to each other through 4 links
   (Link1, Link2, Link3, Link4).  The values in brackets represent the
   corresponding link costs.  Also, Host1 is a multiple interfaces
   device: it is connected to Link3 via its network interface I1 and to
   link4 via its network interface I2.

   Let us consider Host1.  Its first operation consists of gathering
   links costs and select a default interface.  To this end, Router1 and
   Router2 send usual periodic RA messages.  These messages include a
   LCO that describes the cost of the link: Router1 advertises that the
   cost of Link3 is 5 and Router2 advertises that the cost of link4 is
   3.  As Link4 has a better cost that Link3, Host1 selects I2 as its
   default interface.  Host1 then updates its routing table accordingly,
   as show in the following figure:



Kaiser & Petrescu         Expires July 10, 2014                [Page 10]

Internet-Draft                   If-Sel                     January 2014


   +---------------------+------------------+------------------+------+
   | Destination Network | Next-Hop Address | Output Interface | Cost |
   +---------------------+------------------+------------------+------+
   |      fe80::/64      |         -        |        I1        |   5  |
   +---------------------+------------------+------------------+------+
   |      fe80::/64      |         -        |        I2        |   3  |
   +---------------------+------------------+------------------+------+
   |   2001:db8:3::/64   |         -        |        I1        |   5  |
   +---------------------+------------------+------------------+------+
   |   2001:db8:4::/64   |         -        |        I2        |   3  |
   +---------------------+------------------+------------------+------+
   |       Default       |     @Router2     |        I2        |   3  |
   +---------------------+------------------+------------------+------+

   Let us now consider that Host1 wants to communicate with Host2.  In a
   classical scenario, Host1 would send data for Host2 through I2,
   according to its routing table.  Data would thus be forwarded by
   Router2 and Router1 through Link1 and Link2 respectively, leading to
   a total path cost of 9.  Sending data through I1 would have been a
   better choice.  Indeed, despite the fact that Link3 has a worse cost
   compared to Link4, the end-to-end path cost would be better (7).
   However, as Host1 is not a router, it does not have a sufficient
   vision of the network to make such decision.  To this end, before
   sending data to Host2, Host1 first send a RS message that includes a
   PCO on all its outgoing interfaces (I1 and I2).  The "Destination
   Address" field is filled with the address of Host2.  Upon reception
   of such message, the routers reply to Host1 with a PCO included in RA
   message: Router1 replies that its better known path to reach Host2
   has a total cost of 2 (Link2) and Router2 replies that its better
   known path has a total cost of 6 (Link1 + Link2).  As Host1 already
   knows the costs of Link3 and Link4, it computes that sending data
   through I1 would have an end-to-end cost of 7 (Link3 + Link2) whereas
   using I2 would lead to an end-to-end cost of 9 (Link4 + Link1 +
   Link2).  Hence, Host1 selects I1 as its egress interface to reach
   Host2 and updates accordingly its routing table, as shown in the
   following figure:















Kaiser & Petrescu         Expires July 10, 2014                [Page 11]

Internet-Draft                   If-Sel                     January 2014


   +---------------------+------------------+------------------+------+
   | Destination Network | Next-Hop Address | Output Interface | Cost |
   +---------------------+------------------+------------------+------+
   |      fe80::/64      |         -        |        I1        |   5  |
   +---------------------+------------------+------------------+------+
   |      fe80::/64      |         -        |        I2        |   3  |
   +---------------------+------------------+------------------+------+
   |   2001:db8:3::/64   |         -        |        I1        |   5  |
   +---------------------+------------------+------------------+------+
   |   2001:db8:4::/64   |         -        |        I2        |   3  |
   +---------------------+------------------+------------------+------+
   |       Default       |     @Router2     |        I2        |   3  |
   +---------------------+------------------+------------------+------+
   |   2001:db8:2::/64   |     @Router1     |        I1        |   7  |
   +---------------------+------------------+------------------+------+

5.2.  Messages exchange diagram

   The following diagram shows the messages exchanges corresponding to
   the example described above: the first two RA messages correspond to
   Host1 default interface selection, the following two RS/RA messages
   exchanges correspond to the selection of Host1 interface to reach
   Host2 and the lasts messages show the final path used by data to
   transit from Host1 to Host2 and vice-versa.



























Kaiser & Petrescu         Expires July 10, 2014                [Page 12]

Internet-Draft                   If-Sel                     January 2014


   +-------+                    +---------+   +---------+     +-------+
   | Host1 |                    | Router1 |   | Router2 |     | Host2 |
   +-------+                    +---------+   +---------+     +-------+
       |                             |             |              |
       |    +----+--------------+    |             |              |
       |    | RA | LCO cost = 5 |    |             |              |
       |    +----+--------------+    |             |              |
    I1 o<----------------------------o             |              |
       |                             |             |              |
       |           +----+--------------+           |              |
       |           | RA | LCO cost = 3 |           |              |
       |           +----+--------------+           |              |
    I2 o<------------------------------------------o              |
       |                             |             |              |
       |  +----+------------------+  |             |              |
       |  | RS | PCO dst = @Host2 |  |             |              |
       |  +----+------------------+  |             |              |
    I1 o---------------------------->o             |              |
       |                             |             |              |
       |         +----+------------------+         |              |
       |         | RS | PCO dst = @Host2 |         |              |
       |         +----+------------------+         |              |
    I2 o------------------------------------------>o              |
       |                             |             |              |
       |    +----+--------------+    |             |              |
       |    | RA | PCO cost = 2 |    |             |              |
       |    +----+--------------+    |             |              |
    I1 o<----------------------------o             |              |
       |                             |             |              |
       |          +----+--------------+            |              |
       |          | RA | PCO cost = 6 |            |              |
       |          +----+--------------+            |              |
    I2 o<------------------------------------------o              |
       |                             |             |              |
       |       +----+----------+     |     +---------------+      |
       |       | DATA TO HOST2 |     |     | DATA TO HOST2 |      |
       |       +----+----------+     |     +---------------+      |
    I1 o---------------------------->o--------------------------->o
       |                             |             |              |
       |       +----+----------+     |     +---------------+      |
       |       | DATA TO HOST1 |     |     | DATA TO HOST1 |      |
       |       +----+----------+     |     +---------------+      |
    I1 o<----------------------------o<---------------------------o
       |                             |             |              |
       |                             |             |              |






Kaiser & Petrescu         Expires July 10, 2014                [Page 13]

Internet-Draft                   If-Sel                     January 2014


6.  Security Considerations

   To be done.
















































Kaiser & Petrescu         Expires July 10, 2014                [Page 14]

Internet-Draft                   If-Sel                     January 2014


7.  IANA Considerations

   IANA is kindly requested by the authors to allocate the following
   values:

   o  The Link Cost Option type, which should be added to the Neighbor
      Discovery option type space defined in section 13 of [RFC4861]

   o  The Path Cost Option type, which should be added to the Neighbor
      Discovery option type space defined in section 13 of [RFC4861]









































Kaiser & Petrescu         Expires July 10, 2014                [Page 15]

Internet-Draft                   If-Sel                     January 2014


8.  References

   [KEYWORDS]
              Bradner, S., "Key words for use in RFCs to indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC4861]  Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
              "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
              September 2007.










































Kaiser & Petrescu         Expires July 10, 2014                [Page 16]

Internet-Draft                   If-Sel                     January 2014


Authors' Addresses

   Arnaud Kaiser
   Commissariat a l'Energie Atomique
   8 Avenue de la Vauve
   Palaiseau, Ile-de-France  91120
   FR

   Email: arnaud.kaiser@cea.fr


   Alexandru Petrescu
   Commissariat a l'Energie Atomique
   8 Avenue de la Vauve
   Palaiseau, Ile-de-France  91120
   FR

   Email: alexandru.petrescu@cea.fr

































Kaiser & Petrescu         Expires July 10, 2014                [Page 17]