One document matched: draft-thubert-6lo-rfc6775-update-reqs-01.xml


<?xml version="1.0" encoding="ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2460 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2460.xml">
<!ENTITY RFC3775 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3775.xml">
<!ENTITY RFC3963 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3963.xml">
<!ENTITY RFC3971 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3971.xml">
<!ENTITY RFC3972 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3972.xml">
<!ENTITY RFC4291 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4291.xml">
<!ENTITY RFC4389 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4389.xml">
<!ENTITY RFC4429 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4429.xml">
<!ENTITY RFC4443 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4443.xml">
<!ENTITY RFC4861 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4861.xml">
<!ENTITY RFC4862 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4862.xml">
<!ENTITY RFC4919 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4919.xml">
<!ENTITY RFC4944 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4944.xml">
<!ENTITY RFC6550 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6550.xml">
<!ENTITY RFC6282 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6282.xml">
<!ENTITY RFC6775 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6775.xml">
<!ENTITY I-D.van-beijnum-multi-mtu SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.van-beijnum-multi-mtu.xml">

]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<rfc category="std" ipr="trust200902" docName="draft-thubert-6lo-rfc6775-update-reqs-01">

<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>

    <front>
        <title>Requirements for an update to 6LoWPAN ND</title>
   <author fullname="Pascal Thubert" initials="P" role="editor" surname="Thubert">
      <organization abbrev="cisco">Cisco Systems, Inc</organization>
      <address>
         <postal>
		 <street>Building D</street>
		 <street>45 Allee des Ormes - BP1200 </street>
            <city>MOUGINS - Sophia Antipolis</city>
            <code>06254</code>
            <country>FRANCE</country>
         </postal>
         <phone>+33 497 23 26 34</phone>
         <email>pthubert@cisco.com</email>
      </address>
   </author>
        <date/>

	<area>Internet</area>

	<workgroup>6Lo</workgroup>

        <abstract>
        <t>
		Work presented at the 6TiSCH and 6MAN working groups suggest a number of
      enhancements to the 6LoWPAN ND mechanism. This document elaborates on such
      requirements. 
       </t> 
	</abstract>
    </front>

    <middle>

	<section anchor="introduction" title="Introduction">
   	   <t>
        A number of use cases, including the Industrial Internet, require a 
        large scale deployment of sensors that can not be realized with wires 
        and is only feasible over wireless 
        Low power and Lossy Network (LLN) technologies. 
        When simpler hub-and-spoke topologies are not sufficient for the 
        expected throughput and density, mesh networks must be deployed, which 
        implies the concepts of hosts and routers, whether operated at Layer-2
        or Layer-3.
        </t>
        <t>
        The IETF has designed the LLN host-to-router and router-to-router 
        protocol that supports address assignment and the router-to-router 
        protocol that supports reachability across Route-Over LLNs in different 
        Areas. It was clear for both efforts that the scalability requirements
        could only be met with <xref target="RFC2460">IPv6</xref>, and there 
        is no fundamental contradiction between those protocols to that regard.
        </t>
      <t> While DHCPv6 is still a viable option in LLNs, the new IETF standard 
      that supports address assignment specifically for LLNs is 6LoWPAN ND, the 
      <xref target="RFC6775">Neighbor Discovery Optimization for Low-power and 
      Lossy Networks</xref>. 6LoWPAN ND was designed as a stand-alone mechanism 
      separately from its IETF routing counterpart, the <xref target="RFC6550"> 
      IPv6 Routing Protocol for Low power and  Lossy Networks</xref> (RPL), and
      the interaction between the 2 protocols was not defined. 
      </t>
      
      <t>The 6TiSCH WG is now considering an 
      <xref target="I-D.ietf-6tisch-architecture">architecture</xref> whereby a 
      6LowPAN ND host could connect to the Internet via a RPL
      Network, but this requires additions to the protocol to support mobility
      and reachability.
      
      </t>
      <t>
      At the same time, new work at 6MAN on 
		<xref target="I-D.chakrabarti-nordmark-6man-efficient-nd">
		Efficiency aware IPv6 Neighbor Discovery Optimizations</xref> suggests 
      that 6LoWPAN ND can be extended to other types of networks on top of the  
      Low power and Lossy Networks (LLNs) for which it was already defined.
      The value of such extension is especially apparent in the case of mobile
      wireless devices, to reduce the multicast operations that are related
      to classical ND (<xref target="RFC4861"/>, <xref target="RFC4862"/>) and 
      plague the wireless medium. In this context also, there is a need for
      additions to the protocol.
      </t>
     <t>The<xref target="RFC4429">"Optimistic Duplicate Address Detection" 
       </xref>(ODAD) specification details how an address can be used before a  
       Duplicate Address Detection (DAD) is complete, and insists that an 
       address that is TENTATIVE should not be associated to a Source Link-Layer 
       Address Option in a Neighbor Solicitation message. As we expect the
       6LoWPAN ND protocol for a more general use, it can make sense to keep
       respecting that rule, which is another change to the specification.
       </t>
	  <t>
       This document proposes a limited evolution to <xref target="RFC6775"/> so 
      as to allow operation of a 6LoWPAN ND node as a leaf to a RPL network, and
      enable a more generalized use of the formats therein outside of the strict
      LLN domain.      
     </t>
</section>

        <section title="Terminology">
            <t>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 <xref target="RFC2119"/>.</t>

	    <t>Readers are expected to be familiar with all the terms and concepts
	    that are discussed in <xref target="RFC4861">"Neighbor Discovery for
	    IP version 6"</xref>, <xref target="RFC4862">"IPv6 Stateless Address
	    Autoconfiguration"</xref>, <xref target="RFC4919">"IPv6 over Low-Power
	    Wireless Personal Area Networks (6LoWPANs): Overview, Assumptions,
	    Problem Statement, and Goals"</xref>,
		 <xref target="RFC6775">Neighbor Discovery Optimization 
		 for Low-power and Lossy Networks</xref> and <xref target="RFC4944">
	    "Transmission of IPv6 Packets over IEEE 802.15.4 Networks"</xref>.
           </t>
	   <t>Additionally, this document uses terminology from <xref
      target="I-D.ietf-6tisch-terminology">6TiSCH</xref> and <xref
      target="I-D.ietf-roll-terminology">ROLL</xref>.
	   </t>
        </section>


	<!-- **************************************************************** -->
	<!-- **************************************************************** -->
	<!-- **************************************************************** -->
	<!-- **************************************************************** -->

	<!-- **************************************************************** -->
	<!-- **************************************************************** -->
	<!-- **************************************************************** -->
	<!-- **************************************************************** -->
	<section anchor='overview' title="Suggested operations">

        <t>        
	     The 6TiSCH architecture expects that a 6LoWPAN device can connect as a 
        leaf to a RPL network, where the leaf support is the minimal 
        functionality to connect as a host to a RPL network without the need to
        participate to the full routing protocol.
        The support of leaf can be implemented as a minor increment  
        to 6LoWPAN ND, with the additional capability to carry a sequence number
        that is used to track the movements of the device, and optionally 
        some information about the RPL topology that this device will join.
        </t>
        <t> The scope of the 6TiSCH Architecture is a Backbone Link that 
        federates multiple LLNs as a single IPv6 Multi-Link Subnet.
		  Each LLN in the subnet is anchored at a Backbone Router (6BBR). 
        The Backbone Routers interconnect the LLNs over the Backbone Link and 
        emulate that the LLN nodes are present on the Backbone by proxy-ND 
        operations. An LLN node can move freely from an LLN Route-Over 
        mesh anchored at a Backbone Router to another anchored at same or a 
        different Backbone Router inside the Multi-Link Subnet and conserve its 
        addresses.
<figure anchor='figNetwork'
 title="6TiSCH architecture">
<artwork><![CDATA[

            ---+------------------------
               |          Plant Network
               |
            +-----+
            |     | Gateway
            |     |
            +-----+
               |
               |    Backbone Link (with VLANs)
         +--------------------+------------------+
         |                    |                  |
      +-----+             +-----+             +-----+
      |     | Backbone    |     | Backbone    |     | Backbone
      |     | router      |     | router      |     | router
      +-----+             +-----+             +-----+
        | |                | | |                 |
        0 0                0 0 0         (6LBR == RPL root)        
     o o   o  o       o o   o  o  o         o  o  o  o o
    o  o o  o o       o   o  o  o  o     (6LR == RPL router)
    o   o  o  o          o    o  o             z
    o   o o               o  o                  z
           RPL Instances               (6LoWPAN Host == RPL leaf)  

]]></artwork>
</figure>

           </t>
		   <t>
         The root of the RPL topology is logically separated from the 6BBR that 
         is used to connect the RPL topology to the backbone. Efficient ND is a
         perfect interface for the RPL root to register the LLN node in its 
         topology to the 6BBR for proxy operations. It results that the signalling
         would start at the leaf node with 6LoWPAN ND, then would be carried 
         over RPL to the RPL root, and then with Efficient-ND to the 6BBR.
         Efficient ND being an adaptation of 6LoWPAN ND, it makes sense to keep
         those two homogeneous in the way they use the source and the target 
         addresses in the Neighbor Solicitation (NS) messages for registration,
         as well as in the options that they use for that process.
         <figure anchor='figReg'
 title="(Re-)Registration Flow over Multi-Link Subnet">
<artwork><![CDATA[

 6LoWPAN Node        6LR             6LBR            6BBR
  (RPL leaf)       (router)         (root)
      |               |               |               |
      |  6LoWPAN ND   |6LoWPAN ND+RPL | Efficient ND  | IPv6 ND
      |   LLN link    |Route-Over mesh|  IPv6 link    | Backbone
      |               |               |               |
      |  NS(ARO)      |               |               |
      |-------------->|               |               |
      | 6LoWPAN ND    | DAR (then DAO)|               |
      |               |-------------->|               | 
      |               |               |  NS(ARO)      |
      |               |               |-------------->|
      |               |               |               | DAD 
      |               |               |               |------>
      |               |               |               |
      |               |               |  NA(ARO)      |
      |               |               |<--------------|
      |               | DAC           |               |
      |               |<--------------|               |               |
      |  NA(ARO)      |               |               |
      |<--------------|               |               |               |

]]></artwork>
</figure>
         
   </t><t>As the network builds up, a node should start as a 
   leaf to join the RPL network, and may later turn into a RPL
   router and eventually a 6LR as well, so as to accept leaf nodes
   to recursively join the network.
		</t>

	<section anchor='leaf' title="RPL Leaf Support in 6LoWPAN ND">
   <t>RPL needs a set of information in order to advertise
   a leaf node through a DAO message and establish reachability.
   </t><t>
   At the bare minimum the leaf device must provide a sequence
   number that matches the RPL specification in section 7.
   <xref target="I-D.chakrabarti-nordmark-6man-efficient-nd"/>
   section "4.1.  Address Registration Option" (ARO)
   already incorporates that addition with a new
   field in the option called the Transaction ID. 
   </t><t> 
   If for some reason the node is aware of RPL topologies, then
   providing the RPL InstanceID for the instances to which the 
   node wishes to participate would be a welcome addition.
   In the absence of such information, the RPL router must
   infer the proper instanceID from external rules and policies.
   </t><t> 
   On the backbone, the InstanceID is expected to be mapped 
   onto a VLANID. Neither WiFi nor Efficient ND do provide a mapping
   to VLANIDs, and it is unclear, when a wireless node attaches to a 
   backbone where VLANs are defined, which VLAN the wireless device 
   attaches to. Considering that a VLAN is effectively the IP link on 
   the backbone, adding the InstanceID to both specifications could be
   a welcome addition.
   </t>
        </section>
	<section anchor='gone' title="registration Failures Due to Movement">
   <t>Registration to the 6LBR through DAR/DAC messages <xref target="RFC6775"/>
   may percolate slowly through an LLN mesh, and it might happen that in 
   the meantime, the 6LoWPAN node moves and registers somewhere else. Both RPL 
   and 6LoWPAN ND lack the capability to indicate that the same node is 
   registered elsewhere, so as to invalidate states down the deprecated path. 
   </t><t>  In its current expression and functionality,
   6LoWPAN ND considers that the registration is used for the purpose of DAD 
   only as opposed to that of achieving reachability, and as long as the same 
   node registers the IPv6 address, the protocol is functional. In order to
   act as a RPL leaf registration protocol and achieve reachability, the
   device must use the same TID for all its concurrent registrations, and 
   registrations with a past TID should be declined. The state for an obsolete 
   registration in the 6LR, as well as the RPL routers on the way, should be 
   invalidated. This can only be achieved with the addition of a new Status in 
   the DAC message, and a new error/clean-up flow in RPL.
   </t>
        </section>
	<section anchor='source' title="Optimistic registration">
	
   <t>In their current incarnations, both 6LoWPAN ND and Efficient ND expect 
   that the address being registered is the source of the NS(ARO) message and
   thus impose that a Source Link-Layer Address (SLLA) option be present in the
   message. In the case of Efficient ND, this would cause the root of the RPL
   network to fake the source address of the packet when registering the leaf
   node to the 6BBR. .
   </t><t>
   In any case, as long as the DAD process is not complete for the address
   used as source of the packet, it is a bad practice to advertise the SLLA, 
   since this may corrupt the ND cache of the destination node, as discussed in 
   the Optimistic DAD specification <xref target="RFC4429"/> regarding the 
   TENTATIVE state.
   </t><t>
   This may look like a chicken and an egg problem, but in fact 6LoWPAN ND 
   acknowledges that the Link-Local Address that is based on an EUI-64 address
   of a LLN node may be autoconfigured without the need for DAD. 
   It results that the node could use that address as source to register all the
   addresses that are expected to be reachable through RPL, meaning either 
   Global or Unique-Local Addresses. 
   </t><t>
   The suggested change is to register the target of the NS message, and use
   Target Link-Layer Address (TLLA) in the NS as opposed to the SLLA in order to
   install a Neighbor Cache Entry. This would apply to both Efficient ND 
   and 6LoWPAN ND in a very same manner, with the caveat that depending on the
   nature of the link between the 6LBR and the 6BBR, the 6LBR may resort to 
   classical ND or DHCPv6 to obtain the address that it uses to source the NS
   registration messages, whether for itself or on behalf of LLN nodes.
   </t>
        </section>
      
	<section anchor='Rroot' title="RPL root vs. 6LBR">
   
  <t>6LoWPAN ND is unclear on how the 6LBR is discovered, and how the liveliness
    of the 6LBR is asserted over time. On the other hand, the discovery
    and liveliness of the RPL root are obtained through the RPL protocol.    
   </t><t> 
   When 6LoWPAN ND is coupled with RPL, it makes sense to collocate the 6LBR 
   functionality and that of the RPL root. The DAR/DAC exchange becomes a 
   preamble to the DAO messages that are used from then on to reconfirm the 
   registration, thus eliminating a duplication of functionality between DAO 
   and DAR messages.
   </t>
      </section>
      </section>

	<section anchor='changes' title="Suggested Changes to Protocol Elements">
	<section anchor='NS' title="ND Neighbor Solicitation (NS)">
   <t>The NS message used for registration should use a source address that
   respects the rules in <xref target="RFC6775"/>, <xref target="RFC4861"/>,
   and <xref target="RFC4429"/> for DAD. The SLLA Option may be present but 
   only if the address passed DAD, and it is used to allow the 6LR to respond
   as opposed to as a registration mechanism. 
   </t><t>
   The address that is being registered is the target address in the NS message
   and the TLLA Option must be present.
   </t>  
   
      </section>
	<section anchor='RA' title="ND Router Advertisement (RA)">
   <t>
   <xref target="I-D.chakrabarti-nordmark-6man-efficient-nd"/> adds an 'E'
   bit in the Router Advertisement flag, as well as a new Registrar Address 
   Option (RAO). These fields are probably pertinent to LLNs inclusion into a 
   revised 6LoWPAN ND should be studied.
   </t><t>
   There is some amount of duplication between the options in the RPL DIO 
   <xref target="RFC6550"/> and the options in the ND RA messages. 
   At the same time, there are a number of
   options, including the 6LoWPAN Context Option (6CO) <xref target="RFC6775"/>,
   the MTU and the SLLA Options <xref target="RFC4861"/>  that can only
   be found in the RA messages. Considering that these options are useful for
   a joining node, the recommendation would be to associate the RA messages to 
   the join beacon, and make them rare when the network is stable. On the other
   hand, the DIO message is to be used as the propagated heartbeat of the RPL
   network and provide the sense of time and liveliness. 
   </t><t>
   RAs should also be issued and the information therein propagated when a 
   change occurs in the information therein, such as a router or a prefix 
   lifetime.    
      </t>
      </section>
   <section anchor='DIO' title="RPL DODAG Information Object (DIO)"> 
   <t>If the RPL root serves as 6LBR, it makes sense to add at least a bit of 
   information in the DIO to signal so. A Registrar Address Option (RAO) may 
   also be considered for addition.
      </t>
      </section>
	<section anchor='trackingmess' title="ND Enhanced Address Registration Option (EARO)">

   <t> This option is designed to be used with standard NS and NA messages 
   between backbone Routers as well as between nodes and 6LRs over the LLN and 
   between the 6LBR and the 6BBR over whatever IP link they use to communicate.

<figure anchor='EARO' title="EARO">
<artwork>
<![CDATA[
   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    |    Status     | RPLInstanceID |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Res|P|N| IDS |T|      TID      |     Registration Lifetime     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~         Unique Interface Identifier (variable length)         ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ]]></artwork>
</figure>
</t>
<!--

	   
	   TID: 1-byte integer; a transaction id that is maintained by the device 
	   and incremented with each transaction.
	   it is recommended that the device maintains the TID in a persistent storage. 
	   
	   T flag: Set if the next octet is a TID.
	   N flag: Set if the device moved. If not set, the router will refrain from sending NA(O) after DAD in mixed mode.
	   The TID is really a sequence counter, and it is managed as described in section 7.2. Sequence Counter Operation of [RFC 6550]
	   
-->

     <t>  The representation above is based on 
      <xref target="I-D.chakrabarti-nordmark-6man-efficient-nd"/>. Only the 
      proposed changes from that specification are discussed below but the
      expectation is that 6LoWPAN ND and Efficient ND converge on the ARO 
      format.
        <list style='hanging'>
	     <t hangText="Status:">8-bit integer. A new value of 3 is suggested to 
        indicate a rejection due to an obsolete TID, typically an indication of 
        a movement.
		 </t>
	     <t hangText="RPLInstanceID:">8-bit integer. This field is set to 0 when 
        unused. Otherwise it contains the RPLInstanceID for which this address 
        is registered, as specified in RPL <xref target="RFC6550"/>, and 
        discussed in particular in section 3.1.2.
		 </t>
	     <t hangText="P:">One bit flag. Indicates that the address is to be redistributed
        to obtain reachability, e.g. into the RPL protocol, or for ND proxy operation.
		 </t>
	     <t hangText="N:">One bit flag. Set if the device moved. 
        If not set, the 6BBR will refrain from sending gratuitous NA(O) or other
        form of distributed ND cache clean-up over the backbone.
        For instance, the flag should be reset after the DAD operation upon 
        address formation.
		 </t>
</list>


	</t>
	</section>
	
        </section>
        <section title="Security Considerations">
           <t>
	   This specification expects that the link layer is sufficiently protected, either
	   by means of physical or IP security for the Backbone Link or MAC sublayer cryptography.
	   In particular, it is expected that the LLN MAC provides secure unicast
	   to/from the Backbone Router and secure broadcast from the Backbone Router in a way that prevents
	   tempering with or replaying the RA messages.
	   </t>
	   <t>
	   The use of EUI-64 for forming the Interface ID in the link local address prevents the usage
	   of Secure ND (<xref target="RFC3971"/> and <xref target="RFC3972"/>) and address privacy
	   techniques. Considering the envisioned deployments and the MAC layer security applied,
	   this is not considered an issue at this time. It is envisioned that the 
      device could form a single CGA-based Unique Interface ID (CUID) to securely bind all of its addresses.
      The CUID would be used as Unique Interface Identifier in the ARO option 
      and the Secure ND procedures would be changed to use it as opposed to the 
      source IPv6 address.
	   </t>

        </section>
        <section title="IANA Considerations">
        <t>A new type is requested for an ND option.</t>
        </section>


<section title="Acknowledgments">
<t>Samita, Erik, JP, Eric, Thomas, you will all recognize your influence in this work...</t>
</section>

    </middle>

    <back>
	
    <references title='Normative References'>
       &RFC2119;

       &RFC2460;

       &RFC3775;

       &RFC4291;

       &RFC4429;
	   
       &RFC4443;

       &RFC4861;

       &RFC4862;

       &RFC4944;

       &RFC6282;
	   
       &RFC6550;

       &RFC6775;

    </references>
	
    <references title='Informative References'>

       &RFC3963;
	   
       &RFC3971;

       &RFC3972;

       &RFC4389;

       &RFC4919;

      
      <?rfc include='reference.I-D.ietf-roll-terminology.xml'?>
      <?rfc include='reference.I-D.ietf-6tisch-terminology.xml'?>
      <?rfc include='reference.I-D.ietf-6tisch-architecture.xml'?>
	  
	  <?rfc include='reference.I-D.chakrabarti-nordmark-6man-efficient-nd.xml'?> 

	  
    </references>
	
	
    </back>

</rfc>

PAFTECH AB 2003-20262026-04-21 08:51:29