Internet DRAFT - draft-liumin-v6ops-silkroad

draft-liumin-v6ops-silkroad




IETF v6ops Working Group                                         Min Liu
Internet-Draft                                                Xianguo Wu
Expires: January 17, 2006                                            ICT
                                                              Mingye Jin
                                                            China Unicom						
                                                               Defeng Li
                                                                  HUAWEI 
                                                                
                                   		              July, 2005



     Tunneling IPv6 with private IPv4 addresses through NAT devices
               draft-liumin-v6ops-silkroad-03.txt


Status of this memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   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."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on January 17, 2006.
   
Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   The growth of IPv6 networks started mainly using the transport
   facilities offered by the current Internet. This led to the
   development of several techniques to manage IPv6 over IPv4 tunnels.
   However, classic tunneling methods do not work when the IPv6 


                          Expires Jan,2006                    [Page 1]

Internet-Draft    	      Silkroad              	    July, 2005



   candidate node is isolated behind a Network Address Translator (NAT)
   device. We propose here a service, called Silkroad, to enable nodes
   located behind one or several IPv4 NATs to obtain IPv6 connectivity.
   It can provide IPv6 connectivity through all existing NAT types and
   does not require any update of them. In addition, Silkroad could
   provide managed IPv6 prefixes with path optimized routing directly
   between clients. 

Table of Contents:

   1 Introduction.....................................................3
   2 Silkroad Terminology.............................................4
   2.1 Silkroad Client (SC)...........................................4
   2.2 Silkroad Access Router (SAR)...................................4
   2.3 Silkroad Navigator (SN)........................................4
   2.4 Silkroad UDP port..............................................4
   3 Background.......................................................5
   3.1 What is NAT?...................................................5
   3.2 Types of NAT...................................................5
   3.3 Traversal of User Datagram Protocol (UDP) Through NATs.........5
   4 Silkroad Description.............................................6
   4.1 Silkroad Model.................................................6
   4.1.1 Silkroad Client (SC).........................................7
   4.1.2 Silkroad Access Router (SAR).................................7
   4.1.3 Silkroad Navigator (SN)......................................8
   4.2 Silkroad Operation.............................................9
   4.2.1 Determining the SAR..........................................9
   4.2.2 Obtaining IPv6 Address/prefix................................9
   4.2.3 Determining the Type of NAT.................................10
   4.2.4 Packet Transmission from a SC to a Regular IPv6 Node........11
   4.2.5 Packet Transmission from a Regular IPv6 Node to a SC........12
   4.2.6 Exchanges Between Two Silkroad Clients......................13
   5 Route Optimization..............................................15
   5.1 Exchanges Between two Silkroad Clients........................15
   5.2 Exchanges Between two Silkroad Clients on the Same Link.......16
   6 Message Formats.................................................18
   7 Other Issues of the Solution....................................19
   7.1 Lifetime of NAT Mappings......................................19
   7.2 Lifetime of Silkroad Tunnel...................................19
   7.3 Mobility Support in Silkroad..................................20
   8 Security Consideration..........................................21
   9 IANA Considerations ............................................21
   10 Acknowledgments................................................22
   References........................................................22
   Authors' Addresses................................................24
   Appendix A........................................................24
   Intellectual Property and Copyright Statements....................25
  

                          Expires Jan,2006                    [Page 2]

Internet-Draft    	      Silkroad              	    July, 2005



1.	Introduction

   The growth of IPv6 networks started mainly using the transport
   facilities offered by the current Internet. Complete upgrades of
   current Internet from IPv4 to IPv6 will take a long time. Thus the
   key to a successful IPv6 transition is compatibility with the large
   installed base of IPv4 hosts and routers.  This led to the
   development of several techniques to manage IPv6 over IPv4 tunnels.
   Classic tunneling methods designed for IPv6 transition operate by
   sending IPv6 packets as payload of IPv4 packets. However, these
   methods do not work when the IPv6 candidate node is isolated behind a
   Network Address Translator (NAT) device. The reason is that usually
   NATs will perform ingress filtering and refuse to allow the
   transmission of many payload types.

   In this memo, we propose a service, called Silkroad, to enable nodes
   located behind one or several IPv4 NATs to obtain IPv6 connectivity.
   It provides connectivity for clients located behind all existing NAT
   types, including symmetric NAT. Silkroad does not need special IPv6
   addressing prefix and can provide the users with stable/dynamic IPv6
   address. In addition, Silkroad could provide route optimization
   between clients. Unlike Teredo, which is primarily a way to make 6to4
   style automation work through NATs, Silkroad is one way to make a
   managed tunnel work through NATs. It is a efficient method for ISPs
   that are willing to provide IPv6 connectivity to their customers
   behind NATs, but may not be able to do it natively due to a number of
   reasons. Silkroad approach is expect to be useful to stimulate the
   growth of IPv6 and to allow early IPv6 network providers to provide
   easy access to their IPv6 network.   
   
   This document is intended to present a framework describing the
   guidelines for the provision of a Silkroad service within the
   Internet. It details the general architecture of the proposed
   approach and also outlines a set of viable implementation. The memo
   is organized as follows. Section 2 contains the definition of the
   terms used in the memo. Section 3 introduces the background
   information. Section 4 provides an overall description of the
   Silkroad model. Section 5 presents the route optimization of Silkroad
   in certain scenarios. Section 6 contains the format of the messages.
   Section 7 is a discussion of some other issues of this solution.
   Section 8 and Section 9 contain a security discussion and IANA
   consideration.

   In appendix A, we compare the mechanism to some other proposed
   mechanisms: Teredo[6] and an instance of Tunnel Broker concept--
   TSP[12].



                          Expires Jan,2006                    [Page 3]

Internet-Draft    	      Silkroad              	    July, 2005



2.	Silkroad Terminology

   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 [RFC2119].

   This section defined other terminology used with Silkroad:

2.1	Silkroad Client (SC)

   A dual stack node that has some access to the IPv4 Internet and that
   wants to gain access to the IPv6 Internet.


2.2	Silkroad Access Router (SAR)

   A dual stack router that has access to the IPv4 Internet through a
   globally registered address. It will be used to help Silkroad clients
   to gain IPv6 connectivity. 

2.3	Silkroad Navigator (SN)

   A node that is used to help SARs to route between each other. The
   only requirement for SN is reachable for its SARs. It may be IPv4 or
   IPv6 addressable, which is up to the specific ISP. It is recommended
   for ISP whose SARs are relatively few. However, it is mandatory for
   ISP who has many SARs and SCs. 
  
2.4	Silkroad UDP port
  
   The UDP port number at which Silkroad Access Routers are waiting for
   packets. The value of this port is TBD. In this memo, we use port 
   5188 temporarily.
















                          Expires Jan,2006                    [Page 4]

Internet-Draft    	      Silkroad              	    July, 2005



3.      Background

3.1	What is NAT?

   The need for IP address translation arises when a network's internal
   IP addresses can not be used outside the network either because they
   are invalid for use outside, or because the internal addressing must
   be kept private from the external network.

   Network Address Translation(NAT)is a method by which IP addresses are
   mapped from one realm to another. It is often used to connect an
   isolated address realm with private unregistered addresses to an
   external realm with globally unique registered addresses. [1]
   describes the operation of NAT devices and the associated
   considerations in general.

   Typically, NATs are not programmed to allow the transmission of
   arbitrary payload types. As a result, many existing tunnel techniques 
   for IPv6 transition operation, which send IPv6 packets as payload of
   IPv4 packets, can not work if the user is using private IPv4 address
   behind a NAT box.

3.2	Types of NAT

   It is assumed that the reader is familiar with NATs.  It has been
   observed that NAT devices can adopt widely different strategies among
   implementations.  Four treatments observed in implementations are
   described in [5], which are Full Cone NAT, Restricted Cone NAT, Port
   Restricted Cone NAT and Symmetric NAT.

   Silkroad can provide IPv6 connectivity for clients located behind all
   these four NAT types. However, determining the type of NAT will be
   important when we want to optimize the transmission performance of
   Silkroad.

3.3	Traversal of User Datagram Protocol (UDP) Through NATs

   Experience shows that TCP and UDP are the only protocols guaranteed
   to cross the majority of NAT devices. Although transporting IPv6
   packets as the payload of TCP packets would be possible, it often
   result in a very poor QoS (Quality-of-Service). What's more, it is
   hard for applications to enforcing their own control on the
   transmission rate in TCP. As a result, current traversal techniques
   through NATs are generally based on UDP. Silkroad also transports
   IPv6 packets as the payload of UDP packets. 




                          Expires Jan,2006                    [Page 5]

Internet-Draft    	      Silkroad              	    July, 2005



4	Silkroad Description

   Silkroad communication procedures are based on assumptions on NAT
   treatment of UDP; such assumptions may prove invalid when new NAT
   devices are deployed.

   Silkroad is designed to robustly enable IPv6 traffic through NATs,
   and the price is a reasonable amount of overhead, due to UDP
   encapsulation. Thus Silkroad SHOULD NOT be used except when the
   direct IPv6 connectivity is not locally available and the node can
   not use a global IPv4 address.

4.1	Silkroad Model

   The typical model of Silkroad is shown in Figure 1.


         +------+                             +-------+                              
         | IPv6 |/-----+                     -|  SAR  |                               
         | Node |\----+|                    / +-------+                               
         +------+     ||                   /                                        
                      ||         +------+ /   +-------+                               
                      ||        -|  SN  | ----|  SAR  |                               
                      ||       / +------+ \   +-------+                               
              NAT     \/      /            \             NAT                          
    +------+   |   +-------+ /              \ +-------+   |   +------+                   
    |  SC  |<--+-->|  SAR  |-                -|  SAR  |<--+-->|  SC  |                   
    +------+   |   +-------+                  +-------+   |   +------+                   
       /\           /\   /\                    /\   /\           /\                                               
       ||           ||   ||                    ||   ||           ||                 
       |+-----------+|   |+--------------------+|   |+-----------+|               
       +-------------+   +----------------------+   +-------------+                 
            UDP Tunnel                                 UDP Tunnel               



                      Figure 1: The Silkroad model

   As can be seen from Figure 1, the Silkroad service requires the 
   cooperation of three kinds of entities: Silkroad clients(SCs), who
   want to use IPv6 despite being located behind a NAT; Silkroad access
   routers(SARs), who provide for the interconnection between the
   Silkroad clients and the existing IPv6 Internet; Silkroad
   navigators(SNs), who will help the SAR to forward packets. 
   
   The Silkroad service is realized by having clients interact with
   SARs to send and receive IPv6 packets through the Silkroad service


                          Expires Jan,2006                    [Page 6]

Internet-Draft    	      Silkroad              	    July, 2005



   protocol. There will be no direct interaction between SCs and SNs.
   For ISP whose SCs and SARs are relatively few, its SARs could
   configure static tunnels between each other. Under this case, SN is 	
   recommended but not mandatory. For large ISP that havs many SARs and 
   SCs, and it is diffult or imposssible to implement N^2 trust model, 
   it will be necessary to deploy SN to help SARs to route between each 
   other during the packet transmission process. In this process, the 
   role of SN is like a DNS(Domain Name System). There may be 
   hierarchical SNs for one ISP. Each of them takes charge of a 
   different SAR domain. The authentication and coherence for SARs and 
   SNs in one ISP will follow the specific ISP's security and route 
   consideration and existing machenisms. There will be no automatic 
   synchronization and interaction between SARs and SNs belonging to 
   different ISPs, unless there are prior agreement. Generally, the 
   packet forwarding between SARs belonging to different ISPs will 
   follow IPv6 rules and no route optimization could be made. 
   
   The deployment model of Silkroad makes two assumptions:

   - That all Silkroad clients and Silkroad access routers will be
   cognizant of the Silkroad port;

   - That all Silkroad access routers will know the address of its
   Silkroad navigator.

4.1.1	Silkroad Client (SC)

   A SC is a node that has some access to the IPv4 Internet and that
   wants to gain access to the IPv6 Internet despite being located
   behind a NAT. It mainly has the following functions:

     -  Manage UDP tunnel with SAR

         Create, modify or delete tunnel;
         Determining the type of NAT;
         Optimize routes;
         Send keep-alive packets;

     -  Security control with SAR

     -  Ingress filtering

     -  Provide transparent Silkroad support for applications

4.1.2	Silkroad Access Router (SAR)

   A SAR is a dual-stack (IPv4 & IPv6) router that has access to the


                          Expires Jan,2006                    [Page 7]

Internet-Draft    	      Silkroad              	    July, 2005



   IPv4 Internet through a globally routable address. It mainly has the
   following functions:

      -  Manage UDP tunnel:

         Create, modify or delete tunnel;

         Determining the type of NAT;       
         Maintain usage statistics for every active tunnel;

      -  IPv6 address assignment and management
      
      -  Maintain the list of recent communication peers
      
      -  Update routing cache with the help of SN      
      
      -  Connect to SN to search whether one IPv6 destination is a SC
         serviced by another SAR; if yes, get the IPv4 address of the
         SAR 
       
      -  Secure qualification for SC
      
      -  Forward packets in IPv6/IPv4 networks
    
      -  Access control and security control
      
    The ISP must ensure that the SAR is capable to handle the amount of
    users and the traffic that goes through it.

4.1.3	Silkroad Navigator (SN)

   The only requirement for SN is reachable for its SARs. It may be IPv4
   or IPv6 addressable, which is up to the specific ISP. A SN mainly has
   the following functions:

      -  Manage and control SARs in its domain
      
      -  Help SARs to update their routing cache
      
      -  Help SARs to search one specific SC's SAR, and provide its
         address
         
      -  If having lower level SNs, manage them and help them to do
         address resolution
         
   As we have mentioned above, for large ISP that has many SARs and SCs,
   it will be necessary to deploy SN to help SARs to route between each


                          Expires Jan,2006                    [Page 8]

Internet-Draft    	      Silkroad              	    July, 2005



   other during the packet transmission process. In this process, the
   role of SN is like a DNS. There may be hierarchical SNs for one ISP. 
   Each of them take charge of a different SAR domain. But at this
   time, it is recommended to offer native IPv6 instead of deploying
   too many SNs.    

4.2	Silkroad Operation

4.2.1	Determining the SAR

   The first phase of Silkroad operation is determining an appropriate
   SAR to provide Silkroad service to the SC. In other words, the SC has
   to learn the IPv4 address of its SAR. There are many possible ways to  
   do this. For example, the SC could get the SAR's information from its
   administrator, or using DNS to look up a service name. What's more, a
   pre-configured or pre-determined IPv4 anycast address could also be
   used to find the SAR. Of course, ISP could use other unspecific
   methods to advertise its SARs' address or domain name. Anyway, once
   determined, the corresponding SAR's information will be automatically
   saved in the SC's configuration file. This SAR will become the SC's
   default SAR, unless the SC explicitly changes its configuration. 

4.2.2	Obtaining IPv6 Address/prefix
  
   In order to obtain an IPv6 address/prefix, SC sends the SAR a normal
   Neighbor Discovery [2] (ND) Route Solicitation (RS) or a DHCPv6 [3]
   SOLICIT or prefix delegation request [4] message over UDP.
   
   The SAR replies with a normal ND Route Advertisement (RA) or a 
   further DHCPv6 message over UDP tunnel to the SC. The default prefix 
   length will be a /64. Whether of not providing an arbitrary length 
   prefix is up to the specific ISP's policy and business process. The 
   ISP may require prior agreement for special requirements.
   
   The message replied by SAR also contains a "Control Option" domain
   that specifies the IPv4 address and port number from which the SAR
   received the prefix request. At the same time, the SAR creates a
   mapping between the SC's IPv6 address, and its IPv4 address and port
   number. In fact, when a prefix request arrives at the SAR, it may
   have passed through one or more NATs between the SC and the SAR. As a
   result, the source address of the request received by the SAR will be
   the mapped address created by the NAT closest to the SAR. The SAR
   copies that source IP address and port into the "Control Option"
   domain and sends it back to the source IP address and port of the
   request.
   
   When the SAR replies RA, the packet will have the following format:


                          Expires Jan,2006                    [Page 9]

Internet-Draft    	      Silkroad              	    July, 2005
 
 
 
   +------+-----+----------------+-----------------+
   | IPv4 | UDP | Control Option |     RA          |
   +------+-----+----------------+-----------------+

   The IPv6 address/prefix assigned to SCs is belonging to the IPv6 
   addressing space managed by the SAR. SC could preserve a stable IPv6
   address even though its IPv4 address is dynamic.  

   Similarly, SCs can also request for temporary addresses. These
   addresses will be assigned a lifetime and removed after its
   expiration unless an explicit lifetime extension request is submitted
   by the SC. 
  
   As mentioned above, once a SAR has assigned an IPv6 address/prefix to
   a SC, this SAR will make an address binding in its mapping table, in
   which the assigned IPv6 address/prefix is associated with the mapped
   IPv4 address and mapped port of the SC. Address binding MAY be 
   dynamic with dynamic IPv4 address of SCs. In addition, the SAR will
   maintain the management information about this UDP tunnel.

4.2.3	Determining the Type of NAT

   The previous section presented a simple address assignment procedure.
   When the SC receives the prefix response, it compares the IP address
   and port in Control Option with the local IP address and port it
   bound to when the request was sent.  If these do not match,the SC is
   behind one or more NATs; otherwise, the SC need not use the Silkroad
   service.

   For better transmission efficiency, the SC could choose to determine
   the type of NAT behind which it is located with the help of SAR. To
   determine that, the SC sends Test Requests and SAR replies with Test
   Response. The procedure May generally work as in [5] (Of course, the
   exact implementation will be flexible).
   
   The SC would send a Test Request packet to a different SAR IPv4
   address from the same source IP address and port. If the address and
   port in the Control Option in the response are different from those
   in the first response, the client knows it is behind a symmetric NAT.

   To determine if it's behind a full-cone NAT, the SC can send a Test
   Request with flags that tell the SAR to send a response from a
   different IP address and port than the request was received on. If
   the SC receives this response, it knows it is behind a full cone NAT.

   Of course, the SC can also send a Test Request with flags that tell
   the SAR to send the Test Response from the same IP address the


                          Expires Jan,2006                   [Page 10]

Internet-Draft    	      Silkroad              	    July, 2005



   request was received on, but with a different port.  This can be used
   to detect whether the SC is behind a port restricted cone NAT or just
   a restricted cone NAT.
   
   Once determined, the NAT type will be saved by the SC.

4.2.4	Packet Transmission from a SC to a Regular IPv6 Node

   The exchange of packets between a SC and a regular IPv6 node is
   presented in the following figure, in which "A" is a SC located
   behind the NAT , "SAR1" is the SAR chosen by "A", and "B" is a
   regular IPv6 node.
                                   
                                 +------+                                
                                -|  SN  |                                
                               / +------+                                
              NAT             /                                                   
    +------+   |   +-------+ /     IPv6       +------+                     
    |   A  |<--+-->|  SAR1 |<---------------->|   B  |
    +------+   |   +-------+                  +------+                      
       /\           /\                                                
       ||           ||                   
       |+-----------+|                  
       +-------------+                  
          UDP Tunnel
            
    Figure 2: Packet transmission from a SC to a regular IPv6 node                                           
      
   We assume that A has already gotten its IPv6 address from SAR1. We
   also assume that the address of each entity is the following:

   - A's private IPv4 address and port are: 1.0.0.1:1234
   - A's mapped IPv4 address and port are: 2.0.0.2:5678
   - A's IPv6 address is: 3ffe:8330:1::1234
   - SAR1's IPv4 address and port are: 3.0.0.3:5188
   - B's IPv6 address is: 2001:250:f006:1::5678

   A wants to transmit an IPv6 packet to B. A's first action is to
   encapsulate this IPv6 packet in a UDP Datagram within IPv4, and send
   it from source address and port 1.0.0.1:1234, to the address of SAR1:
   3.0.0.3:5188. We call it Silkroad packet. (The prefix response packet
   from SAR described in 4.2.2 and the Test Request and Test Response
   packets described in 4.2.3 are also Silkroad packets.) This packet
   will have the following format:

   +------+-----+----------------+-------------+
   | IPv4 | UDP | Control Option | IPv6 packet |
   +------+-----+----------------+-------------+

                          Expires Jan,2006                   [Page 11]

Internet-Draft    	      Silkroad              	    July, 2005



   The packet is received by the NAT. NAT uses the existing mapping
   for 1.0.0.1:1234, and replaces the UDP source address and port by the
   mapped values 2.0.0.2:5678, before forwarding the packet.

   The packet is received over IPv4 UDP tunnel by SAR1. SAR1 examines
   the IPv6 destination and checks if there is an entry for this IPv6
   address in the list of recent communication peers, and if the entry
   is still valid. If there is no entry for this IPv6 destination or the
   entry is invalid, SAR1 will connect to its SN to search whether B is
   one SC serviced by another SAR. The search process is like the
   disposal process of DNS. The SN will search SARs' information in its
   own management domain. If there is no entry, it will ask its upper SN
   for help. The address resolution process will be restricted in one
   ISP's network, that means SNs belonging to different ISPs will not
   cooperate with each other unless there are prior agreements. In the
   case shown in Figure 2, the search process will be ended with the
   conclusion that B is not one SC in the ISP's network. Thus the SAR1
   will discard the IPv4 and UDP header and Control Option domain, and
   forward other content of the packet over IPv6 to the address of B: 
   2001:250:f006:1::5678. In this way, no route optimization could be
   made. 
   
   If SAR1 gets the route information for B from the address resolution
   process with the help of SN, it will update the list of recent
   communication peers: if there is no entry for B in the list, add one
   entry for B and indicate B is a regular IPv6 node; Otherwise, set the
   status to valid.


4.2.5	Packet Transmission from a Regular IPv6 Node to a SC

   Consider the same scenario in Figure 2. When B wants to transmit an
   IPv6 packet to A, B simply follows IPv6 rules. Because the IPv6
   address of A is belonging to the address space of SAR1, and SAR1 is
   IPv6 reachable, the packet will be forwarded to SAR1 over IPv6. In
   this process, no route optimization could be made. SAR1 will check
   the address binding in its mapping table, in which it will find that
   the destination IPv6 address is associated with A's mapped IPv4
   address and port. Thus SAR1 will forward the packet to A in UDP
   tunnel. At the same time, SAR1 will check the list of recent
   communication peers. If there is one entry for B, SAR1 will update
   the period of validity; otherwise, SAR1 will add one entry for B. The
   default period of validity will be 30 seconds. After 30 seconds, tne
   entry will be set invalid. Every time SAR receives packet from the
   peer, the period of validity for the peer will be reset to 30
   seconds.
     


                          Expires Jan,2006                   [Page 12]

Internet-Draft    	      Silkroad              	    July, 2005



4.2.6	Exchanges Between Two Silkroad Clients

   The following figure shows two SCs,"A" and "B", connected through the 
   NATs "NAT1" and "NAT2". "SAR1" is the SAR chosen by "A" and "SAR2" is
   the SAR chosen by "B".
   
                                 +------+                                
                                -|  SN  |-                                
                               / +------+ \                               
              NAT1            /            \            NAT2                          
    +------+   |   +-------+ /  UDP Tunnel2 \ +-------+   |   +------+                    
    |   A  |<--+-->|  SAR1 |<---------------->|  SAR2 |<--+-->|   B  |
    +------+   |   +-------+                  +-------+   |   +------+                    
       /\           /\                              /\           /\                                              
       ||           ||                              ||           ||                 
       |+-----------+|                              |+-----------+|            
       +-------------+                              +-------------+               
         UDP Tunnel1                                  UDP Tunnel3 
   
    
          Figure 3: Packet transmission between two SCs

   We assume that A and B have already gotten their IPv6 addresses from
   SAR1 and SAR2 respectively. In this example, we do not consider any
   route optimization based on different NAT types. Route optimization
   will be introduced in section 5. We also assume that the address of
   each entity is the following:

   - A's private IPv4 address and port are: 1.0.0.1:1234
   - A's mapped IPv4 address and port are: 2.0.0.2:5678
   - A's IPv6 address is: 3ffe:8330:1::1234
   - SAR1's IPv4 address and port are: 3.0.0.3:5188
   - SAR2's IPv4 address and port are: 4.0.0.4:5188
   - B's private IPv4 address and port are: 5.0.0.5:1234
   - B's mapped IPv4 address and port are: 6.0.0.6:5678
   - B's IPv6 address is: 2001:250:f006:1::5678

   A has learnt B's address, for example from the DNS, and starts
   communication with B. The data packets will be sent from A's IPv6  
   address (3ffe:8330:1::1234) to B's IPv6 address
   (2001:250:f006:1::5678). The transmission process from A to SAR1 is
   the same as explained in section 4.2.4.

   SAR1 examines the IPv6 destination and will find that B is one SC
   serviced by SAR2. SAR1 may get the route information from the list of
   recent communication peers or from the address resolution process
   with the help of SN.


                          Expires Jan,2006                   [Page 13]

Internet-Draft    	      Silkroad              	    July, 2005


      
   If SAR1 gets the route information for B from the address resolution
   process with the help of SN, it will update the list of recent
   communication peers: if there is no entry for B in the list, add one
   entry for B; Otherwise, update the entry content and set the status
   to valid. 

   After determining the address of SAR2, SAR1 will tunnel the IPv6
   packet together with the Control Option to the address of SAR2:
   4.0.0.4:5188. The transmission between SAR1 and SAR2 may follow
   different ways. It can manage IPv6 packet over another UDP tunnel,
   like UDP tunnel2 in Figure 3. The advantage of this method is that
   the disposal of SAR1 before forwarding will be simple, just replacing
   the UDP source address and port by the values 3.0.0.3:5188 and
   replacing the UDP destination address and port by the values
   4.0.0.4:5188. However, the price is a reasonable amount of overhead,
   due to UDP encapsulation. Silkroad can also send IPv6 packets between
   SARs as payload of IPv4 packets just like traditional tunnels. But
   this method does not support Control Option and SAR1 must
   unencapsulate the packet and reencapsulate it before forwarding.
   Anyway, the ISP can specify the transmission method between its SARs.
   The default disposal is that when there is Control Option in the
   packet, SAR will take UDP tunnel to forward it; otherwise,
   traditional tunnel will be used. In fact, Control Option generally
   only appears in the foremost several packets in one session. As a
   result, SARs may need to "listen" to both, UDP and IP encapsulation.
   But no matter what transmission method is token between SARs, SCs
   only need to support UDP encapsulation.
   
   For simplification, in the following description, we assume SARs
   always take UDP tunnel to forward packets between each other.

   When SAR2 receives the packet over IPv4 UDP tunnel2, it will find
   that B is a SC serviced by itself, and the address binding in its
   mapping table shows that the IPv6 destination address
   2001:250:f006:1::5678 is associated with B's mapped IPv4 address and
   port: 6.0.0.6:5678. Thus SAR2 will replace the UDP source address and
   port by the values 4.0.0.4:5188 and replace the UDP destination
   address and port by the values 6.0.0.6:5678, then forward the packet
   in UDP tunnel3. At the same time, SAR2 will check the list of recent
   communication peers. If there is one entry for A, SAR2 will update
   the entry content; otherwise, SAR2 will add one entry for A. 

   NAT2 will receive this message. It will use the existing mapping to
   rewrite 6.0.0.6:5678 to 5.0.0.5:1234, and forward the packet to B.
   Then the packet will be received over IPv4 UDP tunnel3 by B.

   Note that SAR1 and SAR2 may be the same SAR. In this way, UDP tunnel2
   will be elided.

                          Expires Jan,2006                   [Page 14]

Internet-Draft    	      Silkroad              	    July, 2005



5	Route Optimization


   For better transmission efficiency, we can do some route optimization
   in certain scenarios. Route optimization is optional. ISPs could
   decide whether to support route optimization for their Silkroad
   clients. Generally, route optimization will only be done between SCs
   belonging to the same ISP, unless there are prior agreements between
   different ISPs.

5.1	Exchanges Between Two Silkroad Clients

   As described in 4.2.6, Figure 4 shows two SCs,"A" and "B", connected
   through the NATs "NAT1" and "NAT2". "SAR1" is the SAR chosen by "A"
   and "SAR2" is the SAR chosen by "B". As we have mentioned above, SAR1
   and SAR2 may be the same SAR . In this way, UDP tunnel2 will be
   elided.
   

                          direct communication      
       +----------------------------------------------------------+
       |+--------------------------------------------------------+|
       ||                                                        ||
       ||                        +------+                        ||         
       ||                       -|  SN  |-                       ||          
       ||                      / +------+ \                      ||          
       \/     NAT1            /            \            NAT2     \/                        
    +------+   |   +-------+ /  UDP Tunnel2 \ +-------+   |   +------+                    
    |   A  |<--+-->|  SAR1 |<---------------->|  SAR2 |<--+-->|   B  |
    +------+   |   +-------+                  +-------+   |   +------+                    
       /\           /\                              /\           /\                                              
       ||           ||                              ||           ||                 
       |+-----------+|                              |+-----------+|            
       +-------------+                              +-------------+               
         UDP Tunnel1                                  UDP Tunnel3 

   
                   Figure 4: Exchanges between two SCs
    
   In fact, A and B can communicate with each other directly, unless
   NAT1 and NAT2 are both Symmetric NAT. Of course, they need the help
   of SAR1 and SAR2 to exchange some parameters at first.

   Assume that A wants to communicate with B. If A wants to do route
   optimization, A could determine the type of NAT behind which it is
   located with the help of SAR1 as described in 4.2.3. Then A will 
   include its mapped address and mapped port together with its type of
   
   
                          Expires Jan,2006                   [Page 15]

Internet-Draft    	      Silkroad              	    July, 2005



   NAT in the Control Option in the encapsulated packet to B. If both
   NAT1 and NAT2 are Full Cone NAT, B will reply IPv6 packets
   encapsulated in UDP directly to A, with Control Option indicating its
   mapped address and mapped port. Then A and B will communicate with
   each other directly through UDP tunnel. If both NAT1 and NAT2 are
   Symmetric NAT, A and B can not transmit packets to each other without
   the help of SAR. In other case, A and B must generate some Test
   packets to establish corresponding mapping at the Restricted Cone
   NAT/Port Restricted Cone NAT/Symmetric NAT before they can transmit
   packets directly to each other. In this case, it is recommended that
   A and B choose to do route optimization only if they want to transmit
   large bulk traffic. If they only want to transmit a few of messages,
   there is no need to send test packets to make route optimization.
  
  
5.2	Exchanges Between Two Silkroad Clients on the Same Link

   The following figure shows two Silkroad Clients, A and B, connected
   to the same link, which is connected to the Internet through the
   NAT1. The exchanges between A and B will use the SAR1. We are not  
   making any assumption about the type of NAT1. This scenario explains
   how the exchanges between clients on the same link can be optimized
   to avoid routing all packets through SAR1 and NAT1.

                              +------+
                              |      |
                 +----------->| SAR1 |<-----------+
                 |            |      |            |
                 |            +------+            |
                 |               |                |
    UDP tunnel1  |               |                |  UDP tunnel2
                 |            +------+            |
                 |            | NAT1 |            |
                 |            +------+            |
                 |            /      \            |           
                 |           /        \           |
                 |          /          \          |
                 |   +------+          +------+   |
                 |   |      |          |      |   |
                 +-->|   A  |<-------->|   B  |<--+
                     |      |          |      |
                     +------+          +------+
                        direct communication

     Figure 5: Packet transmission between two SCs on the same link

   We assume that A and B have already gotten their IPv6 addresses from


                          Expires Jan,2006                   [Page 16]

Internet-Draft    	      Silkroad              	    July, 2005



   SAR1 respectively. 
   
   Of course, A and B are possibly located behind the same NAT, if they
   are both using the same mapped IPv4 address. However, even if the
   mapped IPv4 addresses are different, they are also possibly located
   behind the same NAT. On the other hand, even if they are behind the
   same NAT, it is possible that they can not communicate with each
   other directly. Thus they have to take some actions to confirm that
   they are directly reachable.

   There are several ways to gain this end. Here we only give a viable
   alternative to implement it.

   If A wants to discover whether it and B are on the same link, it can
   include its private address in the Control Option in the packet sent
   to B through NAT1 and SAR1. When B receives this packet, it will 
   reply encapsulated packets including its private address to SAR1's
   address and A's private address simultaneously. If A receives both
   packets, it will confirm that it and B are on the same link and they
   are directly reachable. Then the packets will be sent directly on the
   local link, avoiding the loop through SAR1 and NAT1.


                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          Expires Jan,2006                   [Page 17]

Internet-Draft    	      Silkroad              	    July, 2005



6	Message Formats

   In this section, we will introduce Silkroad packet in details. 

   Silkroad packets are transmitted as the payload of UDP packets
   within IPv4. In order to control and optimize the transmission,
   Control Option will be inserted in the first bytes of the UDP
   payload:

   +------+-----+----------------+-------------+
   | IPv4 | UDP | Control Option | IPv6 packet |
   +------+-----+----------------+-------------+

   The first bit of the Control Option is set to 1; this is used to
   discriminate between the Control Option and the simple IPv6 in UDP
   encapsulation, in which the first 4 bits of the packet contain the
   indication of the IPv6 protocol "0110". 
   
   The Control Option has two different formats: one for control use and
   one for test use.
   
   Format 1 (control use):


         0     1     2     3     4     5     6     7
   +-----+-----+-----+-----+-----+-----+-----+-----+
   |     |     |           |                 |     |
   |  1  |  0  |    Type   |  Option Length  |Flag |
   |     |     |           |                 |     |
   +-----+-----+-----+-----+-----+-----+-----+-----+
   |                                               |
   |             Option Content                    |
   |                                               |
   +-----+-----+-----+-----+-----+-----+-----+-----+
   
   Type in this format is 2 bits, which indicates the content type of
   this option. We have already defined 3 types as follows:   

          11 - Mapped address and port
          10 - Private address and port
          01 - Type of NAT
          00 - unused
          
    Option Length is 3 bits, which indicates the length of this option
    content in unit of byte.

    The 1 bit Flag is used to indicate whether there are other options


                          Expires Jan,2006                   [Page 18]

Internet-Draft    	      Silkroad              	    July, 2005



    following this option in this packet. It means the Control Option
    domain in one packet could carry more than one type of option.

   Format 2 (test use):

         0     1     2     3     4     5     6     7
   +-----+-----+-----+-----+-----+-----+-----+-----+
   |     |     |                 |           |     |
   |  1  |  1  |       Type      |   Unused  |Flag |
   |     |     |                 |           |     |
   +-----+-----+-----+-----+-----+-----+-----+-----+

   Type in this format is 3 bits, which indicates the content type of
   this option. We have already defined 5 types as follows:   

          111 - Test request, need not reply
          110 - Test request, need reply
          101 - Test request, need reply from a different IP address and
                port than the request was received on
          100 - Test request, need reply from the same IP address the
                request was received on, but with a different port
          011 - Test response
          010 - unused
          001 - unused
          000 - unused
    
    (111 type packet can be used as keep-alive packet)
   
    The 1 bit Flag is used to indicate whether there are other options
    following this option in this packet. 





7	Other Issues of the Solution

7.1	Lifetime of NAT Mappings

   Regardless of their types, NAT mappings are not kept forever.
   Generally, if no traffic is observed on the specified port for a
   "lifetime" period, the corresponding mapping will be removed. The
   Silkroad client that wants to maintain a mapping open in the NAT will
   have to send some "keep-alive" traffic before the lifetime expires.
   

7.2	Lifetime of Silkroad Tunnel


                          Expires Jan,2006                   [Page 19]

Internet-Draft    	      Silkroad              	    July, 2005



   As mentioned in 4.2.2, IPv6 addresses can be assigned to the SC
   permanently. In this way, SC could preserve a stable IPv6 address
   even though its IPv4 address is dynamic. Similarly, SC can also 
   request for temporary addresses. The lifetime of these temporary IPv6
   addresses should be relatively longer than the lifetime of the IPv4
   connection of the SC.
  
   In addition, there should be keep-alive mechanism on SARs. In this
   case, if no "refresh" traffic is observed on the assigned address for
   a duration that exceeds a refresh interval, the Silkroad tunnel will
   be canceled and the address binding will be removed or be set as
   unactive. 
   
7.3	Mobility Support in Silkroad

   Silkroad could support mobility in one ISP' network. Assume A is a
   SC, SAR1 is the home SAR chosen by A, and A has gotten its home
   address from SAR1. When A move to SAR2's access domain, A will
   register on SAR2 and get a care-of address from SAR2. If A wants to
   keep its IPv6 address the same. It could register its new care-of
   address with SAR1 and ask SAR1 to serve as home agent to deliver all
   the packets destined for A to A's current point of attachment. Of
   course, A and SAR1 must share a security association and be able to
   use Message Digest 5 (RFC 1321) with 128-bit keys to create
   unforgeable digital signatures for registration requests. The
   signature is computed by performing MD5's one-way hash algorithm over
   all the data within the registration message header and the
   extensions that precede the signature. To secure the registration
   request, each request must contain unique data so that two different
   registrations will in practical terms never have the same MD5 hash.
   
   Silkroad will not consider support mobility between different ISPs,
   unless there are prior agreements. 
















                          Expires Jan,2006                   [Page 20]

Internet-Draft    	      Silkroad              	    July, 2005



8	Security Consideration

   Generally, Silkroad service is limited in one ISP's scrope. The ISP
   should perform IPv4 ingress filtering at its borders. In particular,
   the ISP should block the SAR's address from being used as a source
   address from the outside. The ISP should perform IPv4 ingress
   filtering towards its customes, especially SCs, so that they will not
   be able to forge the IPv4 source address of the packets.

   For the interaction between SN and SAR, secure SNMP could be adopted
   [7,8,9]. In addition, if a simpler approach based on RSH commands is
   used, standard IPsec mechanisms can be applied [10].

   For the interaction between SC and SAR, a loss of confidentiality may
   occur whenever a SC disconnects from the Internet without tearing
   down the tunnel previously established through the SAR. As a result,
   the SAR will keep tunneling the IPv6 traffic addressed to that user
   to its old IPv4 address. However, the fact may be that this IPv4
   address has already been dynamically assigned to another user. This
   problem could be solved by implementing on every tunnel the 
   keep-alive mechanism as mentioned in section 7.2. In this way, the
   SAR will immediately stop IPv6 traffic forwarding towards
   disconnected users.

   On the other hand, the SC must ensure that the Silkroad tunnels that
   it uses remain valid. It does so by checking that packets are
   regularly received from the SAR.
   
   NATs make SC lose end-to-end connectivity but have more security, 
   because a NAT can also be regarded as one type of firewall. With the
   help of Silkroad a SC become reachable in the IPv6 internet and be a 
   potential goal of attackers. To ensure the security of
   communications, a SC can use IP security services such as AH or ESP
   with a global IPv6 connectivity.  
   
   As the same with Teredo, it is hard for Silkroad to find out a 
   man-in-the-middle attacker, because the deed of a NAT is similar with 
   that of man-in-the-middle attacker. An implementation of 
   identification process between SC and SAR will effectly prevent 
   man-in-the-middle attack. A way to defeat the protection is off-line
   dictionary attack. If the identification process is encrypted with a
   symmetry or asymmetry encryption system, it is quite difficult to put
   man-in-the-middle attack in practice. 

9       IANA Considerations

   This memo requests an allocation of a "privileged" UDP port (TBD).  


                          Expires Jan,2006                   [Page 21]

Internet-Draft    	      Silkroad              	    July, 2005



10      Acknowledgments

   The authors would like to thank Li Zhongcheng, Cai Yibing, Shi   
   Jinglin, Tony Hain and Ma Jian for their comments, and Zhang Tianle 
   for initial implementations.

Normative References

         
   [1] P. Srisuresh and M. Holdrege, "IP Network Address Translator
   (NAT) Terminology and Considerations", RFC2663, Aug 1999.   
   
   [2] Narten, T., Nordmark, E. and W. Simpson, "Neighbor Discovery for
   IP Version 6 (IPv6)", RFC 2461, December 1998.

   [3] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C. and M.
   Carney, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)",
   RFC 3315, July 2003.

   [4]  Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic Host
   Configuration Protocol (DHCP) version 6", RFC 3633, December
   2003.

Informative References

   [5] J. Rosenberg, J. Weinberger, C. Huitema and R. Mahy, "STUN -
   Simple Traversal of User Datagram Protocol (UDP) Through Network
   Address Translators (NATs)", RFC 3489, March 2003.
   
   [6] C. Huitema, "Teredo: Tunneling IPv6 over UDP through NATs", 
   draft-huitema-v6ops-teredo-01.txt (Work in Progress), February 2004.

   [7] B. Wijnen, D. Harrington and R. Presuhn, "An Architecture for
   Describing SNMP Management Frameworks", RFC 2571, April 1999.

   [8] U. Blumenthal and B. Wijnen, "User-based Security Model (USM)
   for version 3 of the Simple Network Management Protocol (SNMPv3)",
   RFC 2574, April 1999.

   [9] B. Wijnen, R. Presuhn and K. McCloghrie, "View-based Access
   Control Model (VACM) for the Simple Network Management Protocol
   (SNMP)", RFC 2575, April 1999.

   [10] S. Kent and R. Atkinson, "Security Architecture for the
   Internet Protocol", RFC 2401, November 1998.
   
   [11] A. Durand, P. Fasano, I. Guardini and D. Lento, "IPv6 Tunnel


                          Expires Jan,2006                   [Page 22]

Internet-Draft    	      Silkroad              	    July, 2005



   Broker", RFC 3053, January 2001.
   
   [12] M. Blanchet, F. Parent, "IPv6 Tunnel Broker with the Tunnel
   Setup Protocol (TSP)", draft-blanchet-v6ops-tunnelbroker-tsp-01(Work
   in Progress), June 2004.


         









































                          Expires Jan,2006                   [Page 23]

Internet-Draft    	      Silkroad              	    July, 2005



Authors' Addresses

   Min Liu
   Institute of Computing Technology
   Chinese Academy of Sciences
   Box 2704, Beijing, 100080 PRC	
   Email: liumin@ict.ac.cn

   Xianguo Wu
   Institute of Computing Technology
   Chinese Academy of Sciences
   Box 2704, Beijing, 100080 PRC	
   Email: xgwu@ict.ac.cn
   
   Mingye Jin
   China Unicom
   No.133A, Xidan North Street, Xicheng
   Beijing,100032 PRC
   Emailú¦jinmy@chinaunicom.com.cn
   
   Defeng Li
   HUAWEI Technologies Co., LTD.
   Hua Wei Bld., No.3 Xinxi Rd.,
   Shang-Di Information Industry Base,
   Hai-Dian District, Beijing, 100085 PRC
   Email: 77cronux.leed0621@huawei.com
   
Appendix A. Comparison to Other Mechanisms

A.1 Teredo

   Teredo is primarily a way to make 6to4 style automation work through
   NATs. However, Silkroad is one way to make a managed tunnel work
   through NATs. They are two complementary technologies.
    
   Teredo provides an automated IPv6 prefix as a derivative of the IPv4
   address. This creates an implicit limit on the stability of the
   Teredo addresses, which can only remain valid as long as the
   underlying IPv4 address and UDP port remains valid. In addition,
   Teredo does not provide connectivity for clients located behind a
   symmetric NAT, which is common in large enterprises.
   
   Silkroad is also a tunnel service to enable nodes located behind IPv4 
   NAT devices to obtain IPv6 connectivity over IPv4 UDP. However,it can
   provide connectivity for clients located behind all existing NAT
   types, including symmetric NAT. Moreover, Silkroad does not need
   special IPv6 addressing prefix and can provide the users with


                          Expires Jan,2006                   [Page 24]

Internet-Draft    	      Silkroad              	    July, 2005



   stable IPv6 address. Of course, the route optimization May be more
   complicated in Silkroad than in Teredo, because there is no
   information about the IPv4 address and UDP port through which a
   Silkroad client can be reached in its IPv6 address.
   
 A.2 Tunnel Broker Solutions
 
   There are several proposed tunnel broker mechanisms. We'll take
   TSP[12] as an instance of this model. TSP is one "Tunnel Setup
   Protocol", which is not presented to specify any protocol for
   trafficing data/IPv6 payload but to provide one easy way to configure
   and maintain many different tunnels. From this point, TSP has
   relation to all existing tunnel technologies. But it is a "pure
   procedure" management technology for tunnels. It is different from
   specific tunnel technologies. The goal of Silkroad is to define a
   specific tunneling techique to provide IPv6 connetivity for users
   behind NATs. It could provide stable and managed IPv6 prefixs and
   route optimizations. TSP works also for tunnel configuration across
   ISPs. However, Silkroad service will be in one ISP's scope and
   communications across ISPs will follow IPv6 rules, unless there are
   prior agreements between ISPs. In addition, in the new version of
   Silkroad, SN will only help SARs to update routing cache and find the
   destination SAR. SN will not receive the tunnel request from SCs and
   will not assign SARs to provide Silkroad service. So the basic model
   of Silkroad is quite different from traditional tunnel broker.
   
   
Intellectual Property Statement


   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.


   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.



                          Expires Jan,2006                   [Page 25]

Internet-Draft    	      Silkroad              	    July, 2005



   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Disclaimer of Validity


   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.



Copyright Statement


   Copyright (C) The Internet Society (2005).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.








                          Expires Jan,2006                   [Page 26]