Internet DRAFT - draft-mao-ipsecme-ad-vpn-protocol

draft-mao-ipsecme-ad-vpn-protocol



 



IPsecME Working Group                                             Y. Mao
INTERNET-DRAFT                                                   Z. Wang
Intended Status: Proposed Standard          Hangzhou H3C Tech. Co., Ltd.
Expires: February 19, 2014                                     V. Manral
                                                                      HP
                                                         August 18, 2013


                      Auto Discovery VPN Protocol
                  draft-mao-ipsecme-ad-vpn-protocol-02


Abstract

   This document describes the Auto Discovery VPN (ADVPN) protocol, the
   use case and problem statement for which is described in
   [ADVPN_Problem]. The ADVPN protocol is used for enabling a large of
   number of entities to communicate directly among the peers, with
   minimal configuration and operator intervention. The solution uses
   IPsec[RFC4301] to protect communication between the peers.

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and 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/1id-abstracts.html

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


Copyright and License Notice

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

 


Y. Mao                 Expires February 19, 2014                [Page 1]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


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


Table of Contents

   1. Introduction  . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1. ADVPN Protocol Overview . . . . . . . . . . . . . . . . . .  3
     1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . .  5
     1.3. Conventions Used in This Document . . . . . . . . . . . . .  5
   2. Design Overview . . . . . . . . . . . . . . . . . . . . . . . .  5
   3. How ADVPN Works . . . . . . . . . . . . . . . . . . . . . . . .  7
   4. ADVPN protocol  . . . . . . . . . . . . . . . . . . . . . . . .  8
     4.1. Client Information Registration . . . . . . . . . . . . . .  8
     4.2. Client Information Resolution . . . . . . . . . . . . . . .  9
     4.3. Private Network Information Management  . . . . . . . . . . 10
     4.4. Shortcut Decision . . . . . . . . . . . . . . . . . . . . . 11
     4.5. Redirect protocol . . . . . . . . . . . . . . . . . . . . . 11
     4.6. Keepalive protocol  . . . . . . . . . . . . . . . . . . . . 12
     4.7. Session Protocol  . . . . . . . . . . . . . . . . . . . . . 12
   5. ADVPN Message Formats . . . . . . . . . . . . . . . . . . . . . 13
     5.1. ADVPN Fixed Header  . . . . . . . . . . . . . . . . . . . . 13
     5.2. Mandatory Part  . . . . . . . . . . . . . . . . . . . . . . 15
       5.2.1. Client Identification Header  . . . . . . . . . . . . . 15
       5.2.2. Session Header  . . . . . . . . . . . . . . . . . . . . 16
     5.3. Payload Part  . . . . . . . . . . . . . . . . . . . . . . . 17
       5.3.1. Client Information Payload  . . . . . . . . . . . . . . 17
       5.3.2. Destination Client Payload  . . . . . . . . . . . . . . 19
       5.3.3. Network Information Payload . . . . . . . . . . . . . . 20
       5.3.4. Traffic Flow Payload  . . . . . . . . . . . . . . . . . 21
       5.3.5. Keepalive Parameter Payload . . . . . . . . . . . . . . 23
       5.3.6. Redirect Payload  . . . . . . . . . . . . . . . . . . . 23
   6. Implementation Status . . . . . . . . . . . . . . . . . . . . . 25
   7. Security Considerations . . . . . . . . . . . . . . . . . . . . 26
   8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 26
   9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 26
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 26
     10.1. Normative References . . . . . . . . . . . . . . . . . . . 26
     10.2. Informative References . . . . . . . . . . . . . . . . . . 27
   Appendix A. Comparison Against ADVPN Requirements  . . . . . . . . 27
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 29
 


Y. Mao                 Expires February 19, 2014                [Page 2]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


1. Introduction

   The large scale deployment of IPsec[RFC4301] leads to lots of
   difficulties, such as configuration for each tunnel, adding or
   removing IPsec peer, etc. all need a lot of configuration/
   reconfiguration. Therefore, a protocol to establish IPsec tunnel
   dynamically without having the large overhead of configuration is
   needed. Auto Discovery VPN Problem Statement and Requirement
   [ADVPN_Problem] defines all requirements for the large scale IPsec
   deployment problem. This document defines the Auto Discovery VPN
   (ADVPN) protocol to satisfy these requirements.

1.1. ADVPN Protocol Overview

   The overall ADVPN solution has control plane and data plane elements.
   The ADVPN protocol operates in the control plane and uses the
   standard IPsec [RFC4301] for the data plane. The IPsec data plane
   establishes and protects all the traffic in the ADVPN network.

   The ADVPN protocol is a client and server protocol. The ADVPN
   Client(ADC) registers its information to the ADVPN Server(ADS). When
   the ADC wants to establish an IPsec tunnel with another ADC, the ADC
   requests and queries another ADC's information on the ADS. The ADVPN
   Client(ADC) is the forwarding device in the data plane. ADC
   implements IPsec to protect its own traffic or the traffic flowing
   through ADC.

   The ADVPN Server(ADS) is ADVPN information controller, which is
   responsible for collection, maintenance and distribution of ADVPN
   Client(ADC) information and the control policy. The client
   information is registered by the ADVPN client. The client information
   includes private IP address, public IP address and private network
   information etc. The control policy is used to decide the topology
   should be star topology or full mesh topology, and the control policy
   is pushed to hub ADC from ADS.













 


Y. Mao                 Expires February 19, 2014                [Page 3]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   +------------------------------------------------------------------+
   |                                                                  |
   |                                                                  |
   |                         +-----------+                            |
   |       +--------------   |    ADS    |--------------------+       |
   |       |                 +-----------+                    |       |
   |       |                       |                          |       |
   |       |                       |                          |       |
   |       |               REG/RESO/SHORTCUT FLOW             |       |
   |       |                    PROTOCOL                      |       |
   |    REG/RESO                   |                      REG/RESO    |
   |    PROTOCOL                   v                      PROTOCOL    |
   |       |                 +------------+                   |       |
   |       |     +---------- |  ADC(Hub)  | -----------+      |       |
   |       |     |           +------------+            |      |       |
   |       |     |                                     |      |       |
   |       |  SESSION/REDIRECT             SESSION/REDIRECT   |       |
   |       |  PROTOCOL                             PROTOCOL   |       |
   |       |     |                                     |      |       |
   |       |     |                                     |      |       |
   |       v     v                                     v      v       |
   |  +--------------+      SESSION PROTOCOL       +--------------+   |
   |  |  ADC(Spoke)  | <------------------------>  |  ADC(Spoke)  |   |
   |  +--------------+                             +--------------+   |
   |                                                                  |
   |                                                                  |
   +------------------------------------------------------------------+
                    Figure 1. ADVPN Protocol Model

   In this diagram, ADVPN protocol is implemented between ADC and ADS.
   All the ADCs register information on the ADS. When the ADC tries to
   build a direct IPsec tunnel with another ADC, it sends the Resolution
   message to ADS to query the information. In addition, to allow the
   shortcut path establishment between the ADCs, the ADS sends the
   Shortcut Traffic Flow message to the hub ADCs. Which ADC is hub ADC
   SHOULD be specified in the ADS by administrator.

   ADVPN protocol can also be implemented between ADC and ADC. The ADC
   sends the Session message to another ADC to transfer ADC information;
   otherwise the other ADC has to query the ADS if there is a reverse
   traffic, which may not be practical in some cases. The hub ADC sends
   Redirect message to spoke ADC to trigger the spoke ADC send
   Resolution message to ADS.

   With ADVPN protocol, the IPsec gateways and endpoints can obtain the
   IPsec peer's remote address from ADS. Therefore, establishing IPsec
   tunnel between them can scale well.

 


Y. Mao                 Expires February 19, 2014                [Page 4]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


1.2. Terminology

   Most terminology has been specified in the [ADVPN_Problem]. However,
   there are also some additional terminology in this document needs to
   be clarified.

   ADVPN Server - This is an entity as ADVPN network controller. It
   maintains ADVPN client information database. It also can decide
   whether the spoke can directly communicate with the other spoke.

   ADVPN Client - This is an entity as ADVPN peer. It registers its
   information to ADVPN server.

   Hub ADC - This ADC is hub in the forwarding path.

   Spoke ADC - This ADC is spoke in the forwarding path.

   Private IP Address - Each ADVPN client has a logical private IP
   address. This address is static and as identity of ADVPN client.
   Through the private IP address, the Public IP address is discovered.

   Public IP Address - This is IPsec peer address. This address can be
   dynamic and attached with Private IP Address. There is private IP
   address to public IP address mapping.

   Private Network Information - This information includes the network
   behind the spoke and the next hop which is private IP address.

   Shortcut Path - This is direct connectivity between spoke and spoke.

   ADVPN Network - This is network composed of ADVPN peers

   Source ADVPN Peer - This ADVPN peer is the initiator to establish
   IPsec tunnel.

   Destination ADVPN Peer - This ADVPN peer is the responder to
   establish IPsec tunnel.

1.3. Conventions Used in This Document

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

2. Design Overview

   In the ADVPN network, there are thousands of ADVPN peers. It is
   difficult to pre-configure the SPD and PAD for each ADVPN peer
 


Y. Mao                 Expires February 19, 2014                [Page 5]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   manually. In the use cases in the [ADVPN_Problem], the endpoints and
   gateways can use a dynamic IP address, it is impossible to specify
   the IP address towards this ADVPN peer in the remote ADVPN peer.
   Therefore, the design goal of ADVPN protocol described in this
   document is each ADVPN peer only configures its own SPD and PAD. If
   the ADVPN peer tries to setup an IPsec tunnel with another ADVPN
   peer, it queries the ADS and obtains the client information of
   another peer.

   To discover the remote ADVPN peer, a private IP address is used as
   the search key. The search key is private IP address. The private IP
   address is logical Virtual Private Network (VPN) IP address. Although
   IPsec peer address is dynamic, the private IP address is static. The
   private IP address is also next hop towards the network behind the
   ADVPN peer. When the traffic flows through the source ADVPN peer,
   routing table is looked up, the next hop is the private IP address of
   destination ADVPN peer. The source ADVPN peer looks up session table
   to find the public IP address of destination ADVPN peer. Session
   table is the ADC information cache in the forwarding path, and it has
   the private IP address to public IP address mapping.

   The private IP address with the private network information SHOULD be
   transferred via routing protocol (e.g. OSPF, BGP or RIP) or another
   means in the ADVPN network. A routing protocol can run over the IPsec
   tunnel between the ADCs and ADS. The routing protocol helps
   distribute routing information to all ADC's towards about the
   destination network behind the ADCs.

   After a spoke ADC finishes the registration on ADS, this ADC also
   obtains the information of hub ADC from ADS. An IPsec tunnel is then
   established automatically between the spoke ADC and hub ADC. The
   routing protocol messages are protected and transferred in this IPsec
   tunnel and exchanged between the spoke ADC and hub ADC.

   In the full mesh ADVPN network, there are tens of thousands of ADVPN
   peers. The spokes cannot be populated with a full routing table due
   to constraints on the device capabilities; therefore the network is
   left as a hub-and-spoke network initially. After routing information
   exchanges between the hub and spokes, routing table in the source
   ADVPN peer has the private IP address of hub ADVPN peer as the next
   hop to networks behind the destination ADVPN peer. Therefore, the
   traffic from source ADVPN peer to destination ADVPN peer is forwarded
   to hub first.

   In order to have direct connectivity between the ADVPN peers, the
   ADVPN peer queries the direct route information on ADS. The spoke ADC
   SHOULD register its private IP address and network behind the ADC to
   the ADS. The private IP address is the next hop to network behind the
 


Y. Mao                 Expires February 19, 2014                [Page 6]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   ADC. When the traffic is transferred through hub, the hub sends a
   redirect message to source ADVPN peer. When the source ADVPN peer
   receiving Redirect message, it send a Resolution message to ADS to
   query the direct route information and ADC information for the
   destination ADVPN peer. Receiving the resolution reply message, the
   source ADVPN peer adds a direct route in the route table and setup a
   direct IPsec tunnel with the destination ADVPN peer.

   The hub decides whether the spoke can be allowed to have a direct
   communication with other spoke. The decision depends on the control
   policy pushed by the ADS after the hub ADC finishes registration in
   the ADS. The control policy is flow information. If the traffic
   matches the flow information, the hub sends a redirect message to
   source ADVPN peer to find a shortcut path to destination ADVPN peer.

3. How ADVPN Works

   In the ADVPN solution, ADVPN protocol uses the IPsec protocol
   [RFC4301] data plane, as well as routing protocols to fulfill the
   ADVPN function. This section describes the process to establish a
   shortcut spoke-to-spoke IPsec tunnel in a mesh topology.

   1. When the ADC device comes up, it registers its information to ADS.
   The information includes the private IP address, the public IP
   address and the network behind the ADC.

   2. The ADS sends the registration reply message to the ADC. The spoke
   ADC obtains the information of hub ADC. The ADC creates the hub
   session in the session table. After that, the spoke ADC establishes
   an IPsec tunnel with hub ADC.

   3. The ADS sends Shortcut Flow message to hub ADC in order to
   determine whether sending redirect message or not.

   4. The spoke ADC send a Session Setup message to hub ADC protected by
   IPsec tunnel, the hub ADC has the spoke ADC's information.

   5. All the route protocol packets run over IPsec tunnel between the
   spoke ADC and hub ADC. The route protocol packet is copied and sent
   to hub ADC. The ADVPN network has spoke-hub topology.

   6. When the traffic towards destination ADVPN peer arrives in the
   source ADVPN peer device, from the routing table, the next hop is the
   private IP address of hub ADVPN peer. Match the private IP address in
   the session table to obtain the public IP address of hub ADVPN peer.
   By the public IP address, the spoke-to-hub IPsec SA is chosen to
   encapsulate the traffic.

 


Y. Mao                 Expires February 19, 2014                [Page 7]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   7. The traffic arrives in the hub, after processing IPsec packet, the
   hub looks up routing table to determine if incoming and outgoing
   interface is in the same ADVPN network. If it is, this traffic is
   transferred through hub towards the destination spoke and there is
   shortcut path between them. If the traffic matches the Shortcut Flow
   table, the hub send a redirect message to source ADVPN peer.

   8. The source ADVPN peer receives the redirect message, it sends
   Resolution Request message with destination IP address to ADS. ADS
   lookes in the ADC information database to find out the next hop to
   the destination IP address and related network information. The ADS
   sends a Resolution Response message to the source ADVPN peer.

   9. The source ADVPN peer receives the Resolution Response message.
   Firstly, a route towards destination network is added into the route
   table. Secondly, the source ADVPN peer establishes an IPsec tunnel
   with the destination ADVPN peer. Lastly, the source ADVPN peer send a
   session message to destination ADVPN peer. The destination ADVPN peer
   can add the reverse route in its route table and the ADC information
   in session table.

4. ADVPN protocol

   ADVPN protocol listens and sends on UDP port 2013(pending assignment
   by IANA). Since the UDP is a datagram(unreliable) protocol, all
   messages in ADVPN exist in pairs: a request and a response.

   In the following descriptions, the payloads contained in the message
   are indicated by names as listed below.

      Notation    Description
      -----------------------------------------
      HDR         ADVPN header
      CIDHdr      Client Identification Header
      SessHdr     Session Header
      CI          Client Information payload
      DC          Destination Client Payload
      NI          Network Information Payload
      TF          Traffic Flow Payload
      KP          Keepalive Parameter Payload
      Red         Redirect Payload

   The details of the contents of each header and payload are described
   in section 5. Payloads that may optionally appear will be shown in
   brackets, such as [CI]; this indicates that a Client Information
   payload can optionally be included.

4.1. Client Information Registration
 


Y. Mao                 Expires February 19, 2014                [Page 8]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   The ADC sends a Registration Request message to ADS to register its
   ADVPN information. The ADVPN information is contained in the message
   using CI payload and NI payload. When receiving the Registration
   Request message, ADS adds this ADVPN client information to ADC
   information database and sends a Registration Request Response
   message to the ADC. The Registration Request Response message
   includes KP payload, which make ADC send a keepalive message to ADS
   periodically after registration. If the hub ADC has been registered
   in the ADS, CI payload SHOULD be also contained with hub's ADC
   information.

   The registration messages with payloads are as follows:

   Client                             Server
   ------------------------------------------------------
   HDR, CIDHdr, CI, [NI]   -->
                           <--        HDR, CIDHdr, KP, [CI]

   When the hub ADC is registered, a Hub Information message with CI
   payload should be sent to all the ADCs in the registration status.
   The hub Information Acknowledgement message has no payload, only
   contains ADVPN header and Client Identification Header.

   The hub messages with payloads are as follows:

   Client                         Server
   ------------------------------------------------------
                      <--          HDR, CIDHdr, CI
   HDR, CIDHdr        -->

4.2. Client Information Resolution

   There are two scenarios that the ADC needs to send Resolution Request
   message to ADS to query the client information. 1. During the packet
   processing in the forwarding path, the session table is consulted
   with private IP address, If there is no session, the spoke ADC sends
   a Resolution Request message to ADS to get the remote ADC's
   information related with the private IP address. Before a Resolution
   Request Response comes, the data packets are forwarded to hub. Note
   that a Resolution Request message for the private IP address MUST NOT
   be triggered by every packet. 2. The spoke ADC received a Redirect
   message from the hub ADC, the spoke ADC sends a Resolution Request to
   ADS to get the remote ADC's information with the destination address.

   The Resolution Request message includes DC payload. If the next hop
   address and destination address both are contained in the payload,
   the ADS should loop up ADC information database with destination
   address firstly.
 


Y. Mao                 Expires February 19, 2014                [Page 9]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   When the ADS receives a Resolution Request packet, it searches the
   ADC information database by private IP address or destination
   address. If an ADC is found, a Resolution Response message containing
   CI payload and NI payload is send to the spoke ADC. If there is no
   match, the error code is set in the header and no payload is included
   in the response message.

   The resolution messages with payloads are as follows:

   Client                         Server
   ------------------------------------------------------
   HDR, CIDHdr, DC     -->
                       <--        HDR, CIDHdr, [CI], [NI]

   After receiving the remote ADC's information, the ADC create session
   cache based on the information in the CI payload. If there is NI
   payload, the route towards the destination address is added in the
   route table.

4.3. Private Network Information Management

   To help the ADC find a shortcut path, the private network information
   database is collected and distributed by the ADS. The private network
   information is like a private network route table. The ADC can query
   the next hop towards the private network.

   In the Registration Request message, the private network information
   can include in the NI payload and registered to ADS. After
   registration on the ADS, if the ADC's network information is
   changed(e.g. add, delete or modify), a Network Information
   Registration packet including the NI payload is send to the ADS to
   update the private network information database. After updating, a
   Network Information Registration Response is send back to the ADC,
   the response message has no payload, only contains ADVPN header and
   Client Identification Header.

   If the private network information is updated on ADS, a Network
   Information Update message containing the NI payload MUST be send to
   all ADCs in order to these ADCs have the correct route in their route
   table. All the ADC MUST send back a Network Information Update
   Response message to ADS, the response message has no payload, only
   contains ADVPN header and Client Identification Header.

   The private network information can also be transferred in the
   Session Setup message. In the session establish process, the private
   network route can be added in the remote ADC's route table in order
   to avoid ADS query for reverse traffic.

 


Y. Mao                 Expires February 19, 2014               [Page 10]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   If receiving a Session Delete message from remote ADC, the ADC MUST
   tear down the session and clear the route added by the Session Setup
   message.

4.4. Shortcut Decision

   Whether the shortcut path can be established depends on the control
   policy in the ADS. The ADS defines the flow information to allow the
   direct connectivity. After the hub ADC finishes the registration, the
   ADS send the Shortcut Flow message contains TF payload to hub ADC.
   After receiving the message and add the flow information to shortcut
   flow table, the hub ADC send back Shortcut Flow Acknowledgement
   message to ADS.

   The hub ADC has a shortcut flow table to match the traffic through
   hub in the ADVPN network. If there is a match, the hub ADC send a
   Redirect message to source ADVPN peer.

   If the control policy is changed(e.g. add, delete or modify) on the
   ADS, the ADS MUST send a Shortcut Flow message to the hub ADC to
   update the shortcut flow table. If the shortcut flow item is deleted,
   the hub ADC send a Redirect message to source ADVPN peer to tear down
   the direct IPsec Tunnel.

4.5. Redirect protocol

   The hub ADC sends a Redirect message to spoke ADC means there is
   another path for traffic forwarding. In the hub ADC, when the traffic
   matches the shortcut flow table, a Redirect message containing the
   Red payload is sent to spoke ADC. The spoke ADC receives the Redirect
   message, sends a Redirect Response message to hub ADC and
   subsequently sends a Resolution message to ADS to query the shortcut
   information. The Redirect Response message has no payload, only
   contains ADVPN header and Session Header.

   The redirect messages with payloads are as follows:

   Hub Client                        Spoke Client
   ------------------------------------------------------
   HDR, SessHdr, Red    -->
                        <--          HDR, SessHdr


   If a shortcut flow is deleted in the hub ADC, the hub ADC send a
   Redirect message to the ADCs which has received the Redirect message
   to trigger the shortcut resolution before. When receiving this
   Redirect message, the spoke ADC deletes the route related with the
   flow information. The shortcut IPsec tunnel is cleared up and the
 


Y. Mao                 Expires February 19, 2014               [Page 11]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   traffic goes through the hub to transfer.

4.6. Keepalive protocol

   After the ADC finishes registration on the ADS, the ADC SHOULD send a
   Keepalive Request message to ADS to prove its liveness. The Keepalive
   Request message contains the ADVPN header and Client Identification
   Header. The number of retries and length of timeouts depend on the
   keepalive parameter pushed from ADS by the Registration Response
   message. If the number of retry attempts is reached but the ADC does
   not receive Keepalive Response message, the connection between ADC
   and ADS is considered broken. The ADC clears up all the resources and
   registered to ADS again.

   On ADS, receipt of any ADVPN message from ADC can prove the ADC's
   liveness. If the timeout is reached while the ADS does not receive
   Registration Response message, the ADS will clear all ADC information
   from ADC information database. If the ADC is hub, the ADS sends the
   Hub Information message to all the ADCs to notify the hub removing.

4.7. Session Protocol

   Session table is an remote ADC information cache in the forwarding
   path. It is composed of private IP address, public IP address, and
   the index of IPsec SA. In the forwarding process, the session table
   MUST be consulted with private IP address. Each session matches to
   only one IPsec SA.

   The function of session protocol is to facilitate the forwarding
   process, the session information transported to the remote peer
   avoids to query the ADS when reverse traffic flows.

   There are two type sessions: permanent session established with hub,
   and dynamic session established between spokes. The permanent session
   is static and established after the spoke ADC and hub ADC finish
   registration. The dynamic session will be deleted if there is no
   traffic between spokes,

   The permanent session is established between the spoke and hub or
   between the hubs. After receiving the Hub's ADC information from ADS
   by Registration Response message or Hub Information message, the
   spoke establishes an IPsec Tunnel with Hub firstly and then sends a
   Session Setup message to the hub, which is protected via IPsec
   tunnel. When receiving the Session Setup message, the hub ADC create
   a session for spoke ADC with the spoke's ADC information, and a
   Session Setup Response message will be send back to the spoke ADC.

   When the spoke ADC receives the Resolution Response message for
 


Y. Mao                 Expires February 19, 2014               [Page 12]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   shortcut path and obtains the remote spoke ADC's information, the
   spoke creates a IPsec tunnel with the remote spoke. After that, the
   spoke sends a Session Setup message to the remote spoke. The remote
   spoke creates a session information towards the spoke and sends back
   a Session Setup Response message. If there is private network
   information in the source spoke, a NI payload SHOULD be contained in
   the Session Setup message. The Session Setup Response message has no
   payload, only contains ADVPN header and Session Header.

   The session messages with payloads are as follows:

   Client                            Client
   ------------------------------------------------------
   HDR, SessHdr, [NI]   -->
                        <--          HDR, SessHdr

   If there is no traffic in the spoke-to-spoke session, the spoke will
   send a Session Delete message to the remote spoke to remove the
   session item. After the session is removed, the IPsec tunnel is also
   cleared up.

5. ADVPN Message Formats

   This section describes the format of ADVPN message. ADVPN messages
   begin immediately following the UDP header. An ADVPN message is
   composed of a Fixed Part, a Mandatory Part and a Payload Part. The
   Fixed Part is common to all ADVPN message types. The Mandatory Part
   MUST be present, but varies depending on message type. The Payload
   Part also varies depending on message type.

   The length of the Fixed Part is fixed at 12 octets. The length of the
   Mandatory Part is determined on message type. The Payload Part length
   depends on the payload type.

5.1. ADVPN Fixed Header

   The Fixed Part of the ADVPN message contains those elements of the
   ADVPN message which are always present and do not vary in size with
   the type of message.









 


Y. Mao                 Expires February 19, 2014               [Page 13]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version     |     Type      |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Message ID                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          ErrCode              |          Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Figure 2. ADVPN Header Format

   o  Version (1 octet) -- Indicates the version of the ADVPN protocol
      in use. Implementations based on this version of ADVPN MUST set
      the version to 0.

   o  Type (1 octet) -- Indicates the type of ADVPN message being used.

      Message Type                         Value
      ------------------------------------------------------------
      Registration Request                  1
      Registration Response                 2
      Resolution Request                    3
      Resolution Response                   4
      Delete Request                        5
      Delete Response                       6
      Keepalive Request                     7
      Keepalive Response                    8
      Network Information Registration      9
      Network Information Response         10
      Shortcut Flow                        11
      Shortcut Flow Acknowledgement        12
      Hub Information                      13
      Hub Information Acknowledgement      14
      Redirect                             15
      Redirect Acknowledgements            16
      Session Setup Request                17
      Session Setup Response               18
      Session Keepalive Request            19
      Session Keepalive Response           20
      Session Delete Request               21
      Session Delete Response              22
      Session Network Information Request  23
      Session Network Information Response 24

   o  Length (2 octet) -- Length of total message beginning with the
      Version element in octets.

 


Y. Mao                 Expires February 19, 2014               [Page 14]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   o  Message ID (4 octet) -- Used to provide a unique identifier for
      the information contained in a Request message. This value is
      copied directly from a Request message into the Response message.
      When a sender receives the Response packet, it will match the
      Message ID with the Request packet of local sent. When a match is
      found then the Request is considered to be acknowledged.

      The value is incremented each time a new Request message is sent.
      The same value MUST be used when resending a Request message. It
      is RECOMMENDED that the initial value for this number be 0.

   o  ErrCode (2 octet) -- An error code indicating the type of error
      detected, chosen from the follow list:

      Error description                    Code
      -------------------------------     -------
      No ADC Found                          1
      Management Reject                     2
      Insufficient Resources                3

   o  Reserved (2 octet) -- MUST be zero.

5.2. Mandatory Part

   Different Mandatory Part of the ADVPN message exists in different
   message types, and is behind the ADVPN Header.

5.2.1. Client Identification Header

   The Client Identification Header, denoted CIhdr in this document, is
   contained in the messages that are sent and received between ADC an
   ADS.

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Address Type |     Flags     |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Client Private Address                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Figure 3. Client Identification Header Format

   o  Address Type (1 octet) -- Identifies the address type of the
      client private Address.



 


Y. Mao                 Expires February 19, 2014               [Page 15]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


      Address Type                      Value
      ---------------------------      -------
      IPv4 Address                        1
      IPv6 Address                        2

   o  Flags (1 octet) -- The flags field is coded as follows:

            0             1
            0 1 2 3 4 5 6 7
           +-+-+-+-+-+-+-+-+
           |  Unused     |H|
           +-+-+-+-+-+-+-+-+
      H-bit - The Hub bit. When set to 1, the Client is Hub, otherwise
      it is spoke.

   o  Length (2 octet) -- Length in octets of the current mandatory
      part.

   o  Client Private Address (variable length) -- The ADC's logical
      private IP address. The value for this field is specified by the
      IP version field. If the message is sent from ADC to ADS, this
      address is private IP address of ADC. If the message is sent from
      ADS to ADC, this address is private IP address of destination ADC.

5.2.2. Session Header

   The Session Header, denoted Sesshdr in this document, is contained in
   the messages that are sent and received between ADCs.

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Role ID     |  Address Type |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Source IP Address                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Destination IP Address                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Figure 4. Session Header Format

   o  Role ID (1 octet) -- Identifies the forwarding role of the ADC.

      1 - Hub.

      2 - Spoke.

   o  Address Type (2 octet) -- Identifies the type of Source and
 


Y. Mao                 Expires February 19, 2014               [Page 16]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


      Destination IP Address type.

   o  Length (2 octet) -- Length in octets of the current mandatory
      part.

   o  Source IP Address (variable length) -- Identifies the sender's
      logical private IP address. The address type is specified by the
      Address Type field.

   o  Destination IP Address (variable length) -- Identifies the
      receiver's logical private IP address. The address type is
      specified by the Address Type field.

5.3. Payload Part

   Each payload defined in the section 5.3.1 through 5.3.6 has the
   general payload TLV(Type, Length, Value) format.

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

                    Figure 5. Payload TLV Format

   The TLV fields are defined as follows:

   o  Type (2 octet) -- The type of this payload.

      Payload Type                         Value
      -------------------------------     -------
      Client Information payload (CI)       1
      Destination Client Payload (DC)       2
      Network Information Payload (NI)      3
      Traffic Flow Payload (TF)             4
      Keepalive Parameter Payload (KP)      5
      Redirect Payload (Red)                6

   o  Length (2 octet) -- Length in octets of the current payload,
      including the type and length.

   o  Value (variable octet) -- The value of this payload. Each payload
      has different content.

5.3.1. Client Information Payload
 


Y. Mao                 Expires February 19, 2014               [Page 17]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   The Client Information Payload, denoted CI in this document, is used
   to be as part of Registration message to notify the ADS of ADC's
   information, or as part of Resolution Response message to notify the
   ADC of the remote ADC's information.

   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              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Holding Time           |          Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Preference  |  Node Flags   | Pub Addr Type | Pri Addr Type |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Public Address(variable)                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Private Address(variable)                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Figure 6. Client Information Payload Format

   o  Holding Time (2 octet) -- Identifies the expire time(seconds) of
      the ADC's information obtained from ADS. The ADS SHOULD ignores
      this field when receiving the Registration Request message.

   o  Reserved (2 octet) -- MUST be sent as zero; MUST be ignored on
      receipt.

   o  Preference (1 octet) -- Identifies the ADC's preference. Higher
      values in the range 1 to 255 indicates higher preference. A zero
      value indicates no preference.

   o  Node Flags (1 octet) -- The flags field is coded as follows:

            0             1
            0 1 2 3 4 5 6 7
           +-+-+-+-+-+-+-+-+
           |  Unused   |N|H|
           +-+-+-+-+-+-+-+-+
      H-bit - The hub bit. When set to 1, this current ADC is a hub,
      otherwise a spoke.

      N-bit - The NAT bit.  When set to 1, it indicates the ADC is
      behind the NAT.

   o  Pub Addr Type (1 octet) -- Identifies the ADC's Public Address
      type.

      1 -- IPv4
 


Y. Mao                 Expires February 19, 2014               [Page 18]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


      2 -- IPv6

   o  Pri Addr Type (1 octet) -- Identifies the ADC's Private Address
      type.

      1 -- IPv4

      2 -- IPv6

   o  Public Address (variable length) -- Identifies the ADC's IPsec
      peer address. The type of address for this field is specified by
      the Pub Addr Type field.

   o  Private Address (variable length) -- Identifies the ADC's logical
      private IP address. The values for this field is specified by the
      Pri Addr Type field.


5.3.2. Destination Client Payload

   The Destination Client Payload, denoted DC in this document, is used
   to be search key to discover the remote ADC's information.

   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              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Address Type   |             Reserved                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Destination Address(variable)                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   Private Address(variable)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Figure 7. Destination Client Payload Format

   o  Address Type (1 octet) -- Identifies the type of destination
      address and next hop address.

      1 -- IPv4

      2 -- IPv6

   o  Reserved (3 octet) -- MUST be zero.

   o  Destination IP Address (variable length) -- Identifies the
      destination IP address of communication. The value for this field
      is specified by the Address Type field.
 


Y. Mao                 Expires February 19, 2014               [Page 19]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   o  Private Address (variable length) -- Identifies the next hop
      address to the destination network. The value for this field is
      specified by the Address Type field.

5.3.3. Network Information Payload

      The Network Information Payload, denoted NI in this document, is
      used to carry private network information.

   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              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Network #           |          Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          <Networks>                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Figure 8. Network Information Payload Format

   o  Network # (2 octet) -- Identifies the number of network this
      message contains.

   o  Reserved (2 octet) -- MUST be zero.

   Each network has the following formats:

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Operation   |  Preference   |  Address Type | Prefix Length |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Network Address                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Next Hop Address                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Figure 9. Network Format

   o  Operation (1 octet) -- Indicates the operation for the current
      network.

      0 - Reserved.

      1 - Add.

      2 - Delete.

 


Y. Mao                 Expires February 19, 2014               [Page 20]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


      3 - Update.

   o  Preference (1 octet) -- Indicates the priority of network.

   o  Address Type (1 octet) -- Indicates the Address type of network
      address and next hop address.

      1 - IPv4 Address.

      2 - IPv6 Address.

   o  Prefix Length (1 octet) -- Is the octet length of the routing
      prefix.

   o  Network Address (variable length) -- Identifies the address of the
      ADC's private network. The value for this field is specified by
      the Address Type field.

   o  Next Hop Address(variable length) -- Identifies the next hop to
      the Network Address in the routing path. The Next Hop is also the
      ADC's private IP address. The value for this field is specified by
      the Address Type field.

5.3.4. Traffic Flow Payload

   The Traffic Flow Payload is denoted TF in this document. This payload
   contains the data flow information.





















 


Y. Mao                 Expires February 19, 2014               [Page 21]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   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              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Flow Sequence Number      |    Flow Type  |  Flow Action  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Addr Protocol |  IP Protocol  |            Reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       Starting Source Port    |       Ending Source Port      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   Starting Source Address                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Ending Source Address                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Starting Destination Port   |   Ending Destination Port     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Starting Destination Address                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Ending Destination Address                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 10. Shortcut Flow Payload Format

   o  Flow Sequence Number (2 octet) -- Identifies the preference of the
      data flow. Lower values (in the range 0 to 65534) indicates higher
      preference.

   o  Flow Type (1 octet) -- Identifies the traffic flow type.

      1 - Shortcut Data Flow.

   o  Flow Action (1 octet) -- Identifies which action will to do when
      matching this flow.

      1 - Permit. The packet which matching the flow will trigger the
      specified function, such as redirection.

      2 - Deny. The packet which matching the flow will not trigger any
      function.

      3 - Discard. The packet which matching the flow will be discarded.

   o  Addr Type (1 octet) -- Identifies which the data flow address type
      is, IPv4 or IPv6.

      1 - IPv4 Address.

      2 - IPv6 Address.
 


Y. Mao                 Expires February 19, 2014               [Page 22]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   o  IP Protocol (1 octet) -- Identifies IP protocol of this data flow,
      such as UDP, TCP or ICMP etc.

   o  Reserved (2 octet) -- MUST be zero.

   o  Starting Source Port (2 octet) -- Value specifying the smallest
      source port number allowed.

   o  Ending Source Port (2 octet) -- Value specifying the largest
      source port number allowed.

   o  Starting Source Address (2 octet) -- The smallest source address.

   o  Ending Source Address (2 octet) -- The largest source address.

   o  Starting Destination Port (2 octet) -- Value specifying the
      smallest destination port number allowed.

   o  Ending Destination Port (2 octet) -- Value specifying the largest
      destination port number allowed.

   o  Starting Destination Address (2 octet) -- The smallest destination
      address.

   o  Ending Destination Address (2 octet) -- The largest destination
      address.


5.3.5. Keepalive Parameter Payload

   The Keepalive Parameter Payload is denoted KP in this document. This
   payload contains the parameter to sending keepalive message.

   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              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Interval           |           Retries              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Figure 11. Keepalive Parameter Payload Format

   o  Interval (2 octet) -- Identifies the timeout(seconds) of sending a
      Keepalive Request again.

   o  Retries (2 octet) -- Identifies the number of retry attempts.

5.3.6. Redirect Payload
 


Y. Mao                 Expires February 19, 2014               [Page 23]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   The Redirect Payload is denoted Red in this document. This payload
   contains the original packet information. The original packet is used
   for the spoke to send a Resolution Request packet to the ADS to get
   the peer's ADVPN information.

   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              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           As much of invoking packet as possible              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Figure 12. Redirect Payload Format


































 


Y. Mao                 Expires February 19, 2014               [Page 24]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


6. Implementation Status

   This section records the status of known implementations of the
   protocol defined by this specification at the time of posting of this
   Internet-Draft, and is based on a proposal described in RFC 6982. 
   The description of implementations in this section is intended to
   assist the IETF in its decision processes in progressing drafts to
   RFCs. Please note that the listing of any individual implementation
   here does not imply endorsement by the IETF.  Furthermore, no effort
   has been spent to verify the information presented here that was
   supplied by IETF contributors. This is not intended as, and must not
   be construed to be, a catalog of available implementations or their
   features.  Readers are advised to note that other implementations may
   exist.

   According to RFC 6982, "this will allow reviewers and working groups
   to assign due consideration to documents that have the benefit of
   running code, which may serve as evidence of valuable experimentation
   and feedback that have made the implemented protocols more mature. 
   It is up to the individual working groups to use this information as
   they see fit".

   This draft is based on H3C/HP DVPN(Dynamic Virtual Private Network)
   solution. DVPN has been widely used since 2005. DVPN solution is not
   a single protocol, but an architecture. DVPN helps enterprises
   simplify the configuration and management of IPsec VPN tunnels. DVPN
   policies share security access, management, and quality of service
   (QoS) policies to easily connect thousands of remote branch and
   regional offices to the corporate headquarters or data centers.
   Administrators no longer need to login to each VPN device to manually
   set up site-to-site VPN tunnels at each branch or regional office,
   corporate headquarters, and data centers. DVPN is an innovation to
   simplify secure WAN connectivity for the enterprise.

   DVPN is a complete and cost-effective solution that is ideal for the
   hub-and-spoke topology, the most common topology for enterprises,
   where you also have an option for mesh connectivity. DVPN spans
   across various domains such as routing, security, and address
   management.

   The H3C/HP DVPN website link is:
   http://h17007.www1.hp.com/us/en/networking/solutions/technology/
   dvpn/index.aspx.

   Although this ADVPN protocol comes from DVPN solution, it has been
   simplified and optimized to meet the requirements. The main
   differences is:
   o  VAM(VPN Address Management) protocol and DVPN protocol is merged
 


Y. Mao                 Expires February 19, 2014               [Page 25]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   into a single ADVPN protocol.
   o  Security mechanism in VAM protocol is deleted, the ADVPN protocol
   should be protected by IPsec.
   o  In DVPN, all packets and frames must be encapsulated in GRE first,
   and then be protected by IPsec. However, the ADVPN supports a pure
   IPsec encapsulation. 

7. Security Considerations

   The ADVPN protocol has no protocol-internal security mechanism, it
   relies on other security protocol to protect the ADVPN messages.

   The messages between the ADC and ADS can be protected by the IPsec or
   SSL/TLS. The messages between ADCs is protected by IPsec.

   It is highly recommended that the wildcard pre-shared-key in IKEv1 or
   IKEv2 is not used in the ADVPN, the attacker can access the ADVPN
   network if one ADVPN peer is compromised.

8. IANA Considerations

   IANA may need to allocate additional values for the options presented
   in this document. The values of the protocol field needed to be
   assigned from the numbering space.

9. Acknowledgments

10. References

10.1. Normative References

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

   [RFC1776]  Crocker, S., "The Address is the Message", RFC 1776, April
              1 1995.

   [TRUTHS]   Callon, R., "The Twelve Networking Truths", RFC 1925,
              April 1 1996.

   [ADVPN_Problem]
              Hanna, S., "Auto Discovery VPN Problem Statement and
              Requirements", draft-ietf-ipsecme-p2p-vpn-problem-07.txt,
              June 2013.

   [IPSECARCH]
              Kent, S. and K. Seo, "Security Architecture for the
              Internet Protocol", RFC 4301, December 2005.
 


Y. Mao                 Expires February 19, 2014               [Page 26]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


10.2. Informative References

   [NHRP]     J. Luciani, "NBMA Next Hop Resolution Protocol (NHRP)",
              RFC2332, April 1998.

   [RFC5513]  Farrel, A., "IANA Considerations for Three Letter

              Acronyms", RFC 5513, April 1 2009.

   [RFC5514]  Vyncke, E., "IPv6 over Social Networks", RFC 5514, April 1
              2009.

Appendix A. Comparison Against ADVPN Requirements

   Requirement #1:

   In this ADVPN protocol, each ADC only needs to configure its own SPD
   and PAD. Adding or removing an ADC in the ADVPN topology does not
   need configuration change for any other ADC.

   Requirement #2:

   Each ADC registers its public address(peer address) and private
   address to ADS, and the other ADC query the ADS to obtain the public
   address. Therefore, even the public address of one ADC is updated
   every time the device comes up, the other ADC can communicate with it
   without any configuration change.

   Requirement #3:

   The tunneling protocol(e.g. GRE) and routing protocol(e.g. OSPF, BGP)
   can run over the spoke-to-hub and spoke-to-spoke IPsec tunnel with
   minimal configuration. These protocols do not need to aware of IPsec
   tunnel, and also IPsec does not need to be aware of these protocol
   packets.

   Requirement #4:

   The ADS is the controller of the ADVPN network. It has control policy
   which decides whether the spoke can be allowed to have a direct
   communication with other spoke. The control policy is pushed to hub
   from the ADS after the hub ADC finishes registration. The detailed
   description about it is given in Section 4.4.

   Requirement #5:

   To mitigate the affect of compromised ADVPN peer, each ADVPN peer
   SHOULD have unique and long term authentication credential such as
 


Y. Mao                 Expires February 19, 2014               [Page 27]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   certificate used for IKEv1 and IKEv2 negotiation. The wildcard pre-
   shared-key SHOULD NOT be used for ADVPN connection.

   Requirement #6:

   When the endpoint roams, if its public address changes, it will be as
   a new ADC to rejoin ADVPN network. After re-registering to ADS, it
   connects the hub gateway again. The data traffic can be transferred
   through new spoke-to-hub IPsec tunnel and spoke-to-spoke IPsec
   tunnel.

   Requirement #7:

   The information of hub ADCs is maintained by ADS. if the endpoints
   roams across the hub gateway, the new hub ADC' information will be
   pushed to the spoke ADCs, and new IPsec tunnel is established between
   the ADC and new hub ADC. The traffic is migrated from one gateway to
   another gateway.

   Requirement #8:

   All the ADVPN peers can be located behind NAT boxes. After ADCs
   registration, the ADS detects which ADC is behind NAT box. The ADS
   updates the public IP address/Port information of spoke ADC with the
   modifying IP address/Port by NAT box from hub ADC after the IPsec
   tunnel is established between the spoke and hub. Therefore, even two
   spokes are both behind NAT boxes, they can also establish the direct
   connectivity.

   Requirement #9:

   All the tables in the ADVPN protocol are reportable and manageable,
   such as IP Address Mapping Database, Private Network Information
   Database, Session Table and Shortcut Flow Table etc. Change of IPsec
   SA such as establishment and expiration can be logged and reported as
   necessary events. This document does not create a MIB.

   Requirement #10:

   To support allied and federated environments, the ADVPN peer SHOULD
   use the certificate as the credential for connections. With the PKI
   trust architecture, the ADVPN peer from different organizations can
   be able to connect to each other.

   Requirement #11:

   The ADS is the controller of ADVPN network. The administrator can
   configure the control policy on ADS to determine the ADVPN network is
 


Y. Mao                 Expires February 19, 2014               [Page 28]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   a Star, Full mesh or a partial full mesh topology.

   Requirement #12:

   The ADVPN protocol can cooperated with IGMP and PIM to provide
   multicast function. PIM packets run over spoke-to-hub IPsec tunnel to
   establish the PIM neighbor. Multicast traffic is selective replicated
   to spokes on the hub.

   Requirement #13:

   In the ADVPN protocol, all the changes such as IPsec SA
   establishment, shortcut route injection etc. can be monitored, logged
   and reported to help trouble shooting.

   Requirement #14:

   When L3VPN runs over IPsec tunnel, GRE or other tunnel protocol can
   be transport-link protocol. These tunneling protocols can run over
   the spoke-to-hub and spoke-to-spoke IPsec tunnel in ADVPN network.

   Requirement #15:

   The ADC can register its QoS policy information to ADS, and when the
   other ADC query the ADC's information, it can obtain the related QoS
   policy information.

   Requirement #16:

   In the ADVPN protocol, the administrator can specify more than one
   hub in the ADS for the ADC. The ADC gets all the hub ADC information
   after registration and establishes IPsec tunnel with each hub ADC.

Authors' Addresses

   Yu Mao(Toby Mao)
   Hangzhou H3C Tech. Co., Ltd.
   Oriental Electronic Bld., No. 2
   Chuangye Road
   Shang-Di Information Industry
   Hai-Dian District
   Beijing  100085
   China

   EMail: yumao9@gmail.com

   ZhanQun Wang
   Hangzhou H3C Tech. Co., Ltd.
 


Y. Mao                 Expires February 19, 2014               [Page 29]

INTERNET DRAFT        Auto Discovery VPN Protocol        August 18, 2013


   Oriental Electronic Bld., No. 2
   Chuangye Road
   Shang-Di Information Industry
   Hai-Dian District
   Beijing  100085
   China

   EMail: wangzhanqun.ietf@gmail.com

   Vishwas Manral
   Hewlett-Packard Co.
   19111 Pruneridge Ave.
   Cupertino, CA  95113
   USA

   Email: vishwas.manral@hp.com



































Y. Mao                 Expires February 19, 2014               [Page 30]