One document matched: draft-parent-v6tc-protocol-exploration-00.txt



Network Working Group                                          F. Parent
Internet-Draft                                                    Hexago
Expires: June 16, 2005                                         P. Savola
                                                               CSC/FUNET
                                                               A. Durand
                                                   SUN Microsystems,inc.
                                                       December 16, 2004


                       v6tc Protocol Exploration
             draft-parent-v6tc-protocol-exploration-00.txt

Status of this Memo

   This document is an Internet-Draft and is subject to all provisions
   of section 3 of RFC 3667.  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 become aware will be disclosed, in accordance with
   RFC 3668.

   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 June 16, 2005.

Copyright Notice

   Copyright (C) The Internet Society (2004).

Abstract

   This document aims to provide a rough sketch on different approaches
   to meet the zeroconf/assisted tunneling requirements for a simple
   IPv6-in-IPv4 tunnel set-up mechanism.




Parent, et al.           Expires June 16, 2005                  [Page 1]

Internet-Draft         v6tc protocol exploration           December 2004


Table of Contents

   1.  Goals  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Approaches . . . . . . . . . . . . . . . . . . . . . . . . . .  3
     2.1   Implicit Tunnel Setup  . . . . . . . . . . . . . . . . . .  4
       2.1.1   DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . .  4
       2.1.2   Router Advertisement . . . . . . . . . . . . . . . . .  6
     2.2   Negotiated Tunnel Setup  . . . . . . . . . . . . . . . . .  8
       2.2.1   Tunnel Setup Messages  . . . . . . . . . . . . . . . .  9
   3.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 12
   4.  Security Considerations  . . . . . . . . . . . . . . . . . . . 12
   5.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 13
   5.1   Normative References . . . . . . . . . . . . . . . . . . . . 13
   5.2   Informative References . . . . . . . . . . . . . . . . . . . 13
       Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 14
       Intellectual Property and Copyright Statements . . . . . . . . 15



































Parent, et al.           Expires June 16, 2005                  [Page 2]

Internet-Draft         v6tc protocol exploration           December 2004


1.  Goals

   Meet assisted tunneling and zero-conf tunneling requirement
   documents.

   o  Simple mode

   o  Ipv6 endpoint

   o  v6v4 tunneling

   o  Nat traversal

   o  User authentication

   o  IPv6 prefix

   TBD.

2.  Approaches

   A  Reusing existing standardized protocols as far as possible:
      DHCPv6, Router Advertisements: these will establish the tunnel
      implicitly.

   B  Define a tunnel setup protocol to exchange the tunnel information.

   DHCPv6 and RA are not defined to establish configured tunnels, but
   instead to assign addresses/prefixes and other related information on
   the link after one has been established.

   Therefore, there are two possibly separate problems that need to be
   addressed:

   1.  Setting up an IPv4 tunnel over which IPv6 packets can be sent;
       this link may or may not have more than a link-local address.

   2.  Configuring information related to the tunnel, e.g., global
       addresses, default routes, etc.

   Additionally, one may want to configure other parameters (such as
   recursive DNS server addresses, SIP server addresses, etc.) unrelated
   to obtaining simple IPv6 connectivity, but that is considered a
   non-problem for this work.

   As the main issue in v6tc is finding a means to establish the link
   (problem #1), we assume that the tunnel link must be established as
   part of the v6tc solution.



Parent, et al.           Expires June 16, 2005                  [Page 3]

Internet-Draft         v6tc protocol exploration           December 2004


   Obviously, DHCPv6 and RA can be used for problem #2 when a separate
   protocol (e.g., explicit tunnel setup as described in Section 2.2)
   has been used for #1, but it is debatable whether this is useful.
   This is not discussed at this point.

2.1  Implicit Tunnel Setup

   Existing mechanisms such as DHCPv6 and RA can be used to assign an
   address or use a prefix (problem #2), but are not suitable *as-is* to
   establish a configured tunnel (problem #1).  With a small change,
   this shortcoming can be fixed.

   With the implicit tunnel creation, the first DHCPv6 solicit/RS
   message sent by the client is received by the server, and triggers
   the creation of the tunnel link, on top of which a reply is sent
   back.

   The messaging uses link-local addresses automatically assigned for
   tunnel links.  DAD can be disabled as long as the generation of the
   link-local address is unique enough (e.g., derives the address from
   the IPv4 address, as is typical for v6-over-v4 implementations).

   The DHCPv6 and RA approaches are described in more length below, in
   Section 2.1.1 and Section 2.1.2.  The following generic
   issues/considerations apply to both DHCPv6 and RA approaches:

   o  Cannot negotiate tunnel encapsulation type (always over UDP)

   o  NAT detection is no longer necessary since UDP is always used.
      There can be no keepalive negotiation (for the benefit of both
      firewalls and NATs); it is assumed that keepalives are always sent
      by the host except when disabled in the host.

   o  ISPs will likely not use authentication for their own users, but
      instead rely on IP-address based filtering.

   o  Implementation is likely a process which listens at the UDP port
      and directs packets relating to existing tunnels to those tunnel
      interfaces, and demultiplexes he incoming initial packets by
      creating new interfaces based on need, and when created, injects
      the initial DHCPv6/RS messages on that interface, so they'll end
      up in the local unmodified DHCPv6 server process or RA process.


2.1.1  DHCPv6

   The steps are as follows:




Parent, et al.           Expires June 16, 2005                  [Page 4]

Internet-Draft         v6tc protocol exploration           December 2004


   1.  Client configures IPv6/UDP/IPv4 interface towards tunnel server.
       (The address has been discovered using the discovery mechanism,
       e.g., DNS.)

   2.  Client sends DHCP solicit over tunnel using the rapid commit
       option ([RFC3315] section 22.14).

   3.  Tunnel server listening on UDP port receives message and
       configures tunnel interface link (based on the IPv4 source
       address).

   4.  DHCPv6 solicit message is received by DHCPv6 server through the
       tunnel link that was just created.

   5.  DHCPv6 advertise IPv6 address to client.




                    client                     server
        1.Configure    |                          |
           tunnel     o|                          |
                       |   2.DHCP solicit         |
                       |     (rapid commit)       |
   DHCP/IPv6/UDP/IPv4  |------------------------->|
                       |                          |
                       |                          |o 3.configure tunnel
                       |                          |  4.message to DHCPv6
                       |       5.DHCP advertise   |    server
                       |<------------------------ |



                    Figure 1: DHCPv6 in simple mode

   If the client uses authentication, DHCP delayed authentication is
   used [RFC3118].  This requires the client and server to share a known
   secret.

   This differs from the above in that Rapid Commit option cannot be
   used at step 2, above, and Advertise option (at step 5) carries the
   authentication and requires a couple of additional steps:

   o  Client sends Request with auth options.  At this point, the server
      is able to validate the authenticity of the user.  If that fails,
      the request is dropped and the tunnel may be removed.

   o  Server sends Reply + auth options.



Parent, et al.           Expires June 16, 2005                  [Page 5]

Internet-Draft         v6tc protocol exploration           December 2004


                    client                     server
        1.Configure    |                          |
           tunnel     o|                          |
                       |       2.DHCP solicit     |
   DHCP/IPv6/UDP/IPv4  |------------------------->|
                       |                          |
                       |                          |o 3.configure tunnel
                       |                          |  4.message to DHCPv6
                       |       5.DHCP advertise   |    server
                       |<------------------------ |
                       |         DHCP request     |
                       |------------------------->|o client identity
                       |         DHCP reply       |  verified here.
                       |<------------------------ |


                 Figure 2: DHCPv6 in authenticated mode

   DHCP delayed authentication [RFC3118] is used to provide a user
   authentication based on shared secrets.  The secrets are not sent in
   clear.

   Prefix delegation may be done using IPv6 prefix options [RFC3633].
   In the non-authenticated case, prefix delegation can be accomplished
   in one round-trip using the rapid commit option.

   Notes/Issues

   o  Might be an issue about using DHCPv6 for address assignment.  What
      are the host requirements?


2.1.2  Router Advertisement

   ICMPv6 Neighbor Discovery [RFC2461] Router Advertisements are very
   similar to DHCPv6, with a few notable differences:

   o  Authentication where needed can be done using SEND
      [I-D.ietf-send-ndopt].

   o  Prefix delegation is not supported, but multiple nodes can use the
      same prefix if using bridging or ND-proxy [I-D.ietf-ipv6-ndproxy].

   o  Requires no DHCPv6 implementation (for address assignment, at
      least) on hosts.

   The steps are as follows:




Parent, et al.           Expires June 16, 2005                  [Page 6]

Internet-Draft         v6tc protocol exploration           December 2004


   1.  Client configures IPv6/UDP/IPv4 interface towards tunnel server.
       (The address has been discovered using the discovery mechanism,
       e.g., DNS.)

   2.  Client sends Router Solicitation over tunnel.

   3.  Tunnel server listening on UDP port receives message and
       configures tunnel interface link (based on the IPv4 source
       address)

   4.  The RA/RS handling process receives the RS message from the new
       link that was just set up.

   5.  Route Advertisement message is sent in response through the
       tunnel link.




                    client                     server
        1.Configure    |                          |
           tunnel     o|                          |
                       | 2.ND/Router Solicitation |
     RS/IPv6/UDP/IPv4  |------------------------->|
                       |                          |
                       |                          |o 3.configure tunnel
                       |                          |  4.message to RA
                       | 5. Router Advertisement  |    process
                       |<------------------------ |



                      Figure 3: RA in simple mode

   If SEND is used for authentication, Router Solicitation additionally
   includes the CGA, RSA Signature, Nonce, and Timestamp options.  The
   server has the user's public key in file, and checks the CGA address
   against that.  The fact that the client has been able to sign the ND
   message with the private key is sufficient for the server to
   ascertain user's identity.

   In a similar fashion, the server uses CGA in its replies, allowing
   the client to ensure no one is able to thwart the signalling.  The
   Certification Path Discovery and Certificates are not required as the
   link is point-to-point.

   The use of SEND incurs no additional roundtrips.




Parent, et al.           Expires June 16, 2005                  [Page 7]

Internet-Draft         v6tc protocol exploration           December 2004


   Notes:

   o  If the client needs to configure any other IPv6 parameters than a
      global address, running DHCPv6(-lite) or the like may be
      necessary.


2.2  Negotiated Tunnel Setup

   An alternative approach is to define a new protocol to exchange the
   tunnel parameters explicitly.  The tunnel setup protocol is done over
   UDP and NAT detection is done to determine if IPv6-over-IPv4
   tunneling or IPv6 over UDP tunnel will be used.

   The characteristics of this protocol are similar to TSP
   ([I-D.blanchet-v6ops-tunnelbroker-tsp]), with simplified signaling.

   o  Tunnel signaling is transported over UDP/IPv4.

   o  Tunnel parameters are explicitly exchanged

   o  NAT detection/traversal

   o  Tunnel is explicitly configured from tunnel parameters exchanged
      after signaling

   o  Simple mode supported (no authentication, one round trip); note
      that getting to one roundtrip requires that the protocol is also
      used for assigning the IPv6 address or prefix.

   o  Prefix delegation

   The steps are as follows:

   1.  Client sends tunnel request over UDP/IPv4

   2.  Tunnel server listening on UDP port receives message and
       determines if client behind NAT (based on IPv4 header information
       and client IPv4 address in message)

   3.  Server sends tunnel information to client

   4.  Client and server configure tunnel endpoint.








Parent, et al.           Expires June 16, 2005                  [Page 8]

Internet-Draft         v6tc protocol exploration           December 2004


                 client                         server
                    |       1.Tunnel request       |
          UDP/IPv4  |----------------------------->|
                    |                              | 2.NAT detection
                    |       3.Tunnel reply         |
                    |<---------------------------- |
                    |         Tunnel established   | 4.configure tunnel
                    |==============================|


             Figure 4: Tunnel setup protocol in simple mode


2.2.1  Tunnel Setup Messages

   The tunnel request from the client must contain:

   o  Client IPv4 address (used for NAT detection)

   o  Tunnel encapsulation mode requested

   The tunnel request from the client may contain (optional parameters):

   o  Prefix delegation request

   o  Authentication information

   o  Keepalive information

   A possible protocol message structure is to use a fixed message
   header followed by one or more TLV.  This header is used in every
   packets sent during the tunnel signaling.  Other information is added
   as TLV.


















Parent, et al.           Expires June 16, 2005                  [Page 9]

Internet-Draft         v6tc protocol exploration           December 2004


       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |        Source Port            |      Destination Port         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           Length              |           Checksum            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | 0xF   |M|KA |0| Encapsulation |     Type      |  Reserved     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Figure 5: Tunnel setup protocol UDP header

   The first 8 bytes is the standard UDP header.

   0xF            Marker.  Used to differentiate a signaling packet from
                  an IPv6 datagram.

   M              One bit mode flag.  Set to 0 for no authentication.
                  Set to 1 if authentication is requested.

   KA             Two bits keepalive flags.  Set to 10 for no keepalive.
                  Set to 01 if keepalive requested.  Set to 11 if don't
                  care (server reply will decide on what to do).

   Encapsulation  Indicates the type of encapsulation requested.  Set to
                  41 for IPv6-over-IPv4 tunnels, ? for IPv6 over UDP.
                  May need to define new value here to define "IPv6 over
                  foo" (let server decide after NAT detection)

   Type           Message type (request, response)


2.2.1.1  Client IPv4 address

   A client request uses the tunnel setup header, plus an extra TLV
   containing the client IPv4 address.  Including the IPv4 address
   inside the payload can be used by the server to detect if the client
   is behind a NAT.

   Should address obfuscation be used? According to Teredo spec, it is.
   [I-D.ietf-ipsec-nat-t-ike] uses a HASH of the address (and port).
   The server can compute the HASH and validate if it corresponds to
   what the client sees.  If not, an address translation occurred.








Parent, et al.           Expires June 16, 2005                 [Page 10]

Internet-Draft         v6tc protocol exploration           December 2004


       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    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          IPv4 address                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                   Figure 6: Client IPv4 address TLV


2.2.1.1.1  Authentication information (optional)

   If the M bit is set to 1, client is requesting authentication.  A TLV
   representing the identity of the client is sent.  The server will
   need to sent a challenge.

   TLV details to be worked out.

2.2.1.1.2  Prefix delegation request (optional)

   If a prefix delegation TLV is included in the request, it indicates
   to the server that the client is requesting a prefix.

   TLV details to be worked out.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Type      |     Length    | Prefix length |       0       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                Figure 7: Prefix delegation request TLV


2.2.1.2  Server response

   Message type is X (response)

   In simple mode (no prefix delegation, no auth), the server will
   provide the following information in its response

   o  IPv4 server endpoint (IPv6 in IPv4 tunnel)

   o  IPv6 address of client




Parent, et al.           Expires June 16, 2005                 [Page 11]

Internet-Draft         v6tc protocol exploration           December 2004


   o  IPv6 address of server

   o  Encapsulation type

   Keepalive TLV is sent by server if requested by client.  TLV holds
   the keepalive time interval to be used by the client.

   If authentication is requested, the server will send a challenge to
   the client.  The authentication can be based on HTTP authentication
   (RFC2617) or something like DHCP delayed authentication (RFC3118).
   This needs to be further defined.  Likely to add one round trip
   (challenge-response).

   If a prefix delegation is requested by the client, the server
   response includes a TLV specifying the delegated prefix.

   Some notes

   o  When keepalive is requested, should the client supply a keepalive
      time interval that will be used? This can be useful from the
      server point of view to decide when a tunnel is inactive

   o  The server could only return its IPv4 address to the client and
      use RA to configure the client (IPv6 address, default route).
      Doing so would have the advantage of using an existing mechanism
      at the cost of an extra packet sent from the server to the client.

   o  DAD disabled by default on the tunnel link.

   o  Some authentication mechanism may depend on transport layer to
      reliably deliver packets.  Since UDP is used, may need to handle
      this in protocol ([I-D.blanchet-v6ops-tunnelbroker-tsp])


3.  IANA Considerations

   None at this point.

4.  Security Considerations

   Creating tunnel state based on the first UDP packet is can open the
   server to a DoS attack with spoofed source addresses.  There are a
   couple of ways to mitigate this:

   o  Use ingress filtering towards your customers and at your own
      borders, and provide the service to your own customers only.  The
      threat is eliminated.




Parent, et al.           Expires June 16, 2005                 [Page 12]

Internet-Draft         v6tc protocol exploration           December 2004


   o  As above, but apply rate-limiting or other IP-address based
      controls to those who desire to use the service from outside
      networks.

   o  Require authentication from the outside users.


5.  References

5.1  Normative References

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

   [RFC2461]  Narten, T., Nordmark, E. and W. Simpson, "Neighbor
              Discovery for IP Version 6 (IPv6)", RFC 2461, December
              1998.

   [RFC3118]  Droms, R. and W. Arbaugh, "Authentication for DHCP
              Messages", RFC 3118, June 2001.

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

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

5.2  Informative References

   [I-D.blanchet-v6ops-tunnelbroker-tsp]
              Parent, F. and M. Blanchet, "IPv6 Tunnel Broker with the
              Tunnel Setup Protocol(TSP)",
              draft-blanchet-v6ops-tunnelbroker-tsp-01 (work in
              progress), June 2004.

   [I-D.ietf-ipsec-nat-t-ike]
              Kivinen, T., "Negotiation of NAT-Traversal in the IKE",
              draft-ietf-ipsec-nat-t-ike-08 (work in progress), February
              2004.

   [I-D.ietf-ipv6-ndproxy]
              Thaler, D., "Bridge-like Neighbor Discovery Proxies (ND
              Proxy)", draft-ietf-ipv6-ndproxy-00 (work in progress),
              December 2004.

   [I-D.ietf-send-ndopt]



Parent, et al.           Expires June 16, 2005                 [Page 13]

Internet-Draft         v6tc protocol exploration           December 2004


              Arkko, J., Kempf, J., Sommerfeld, B., Zill, B. and P.
              Nikander, "SEcure Neighbor Discovery (SEND)",
              draft-ietf-send-ndopt-06 (work in progress), July 2004.

   [RFC3053]  Durand, A., Fasano, P., Guardini, I. and D. Lento, "IPv6
              Tunnel Broker", RFC 3053, January 2001.


Authors' Addresses

   Florent Parent
   Hexago
   2875 boul. Laurier, suite 300
   Sainte-Foy, QC  G1V 2M2
   Canada

   EMail: Florent.Parent@hexago.com


   Pekka Savola
   CSC - Scientific Computing Ltd.
   Espoo
   Finland

   EMail: psavola@funet.fi


   Alain Durand
   SUN Microsystems,inc.
   17 Network circle UMPK17-202
   Menlo Park, CA  94025
   USA

   EMail: Alain.Durand@sun.com

















Parent, et al.           Expires June 16, 2005                 [Page 14]

Internet-Draft         v6tc protocol exploration           December 2004


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.

   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 (2004).  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.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Parent, et al.           Expires June 16, 2005                 [Page 15]



PAFTECH AB 2003-20262026-04-23 18:57:11