Network Working Group F. L. Templin, Ed.
Internet-Draft Boeing Research & Technology
Obsoletes: rfc6706 (if approved) January 03, 2014
Intended status: Standards Track
Expires: July 07, 2014

Transmission of IPv6 Packets over AERO Links
draft-templin-aerolink-01.txt

Abstract

This document specifies the operation of IPv6 over tunnel virtual Non-Broadcast, Multiple Access (NBMA) links using Automatic Extended Route Optimization (AERO). Nodes attached to AERO links can exchange packets via trusted intermediate routers on the link that provide forwarding services to reach off-link destinations and/or redirection services to inform the node of an on-link neighbor that is closer to the final destination. Operation of the IPv6 Neighbor Discovery (ND) protocol over AERO links is based on an IPv6 link local address format known as the AERO address.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on July 07, 2014.

Copyright Notice

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

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


Table of Contents

1. Introduction

This document specifies the operation of IPv6 over tunnel virtual Non-Broadcast, Multiple Access (NBMA) links using Automatic Extended Route Optimization (AERO). Nodes attached to AERO links can exchange packets via trusted intermediate routers on the link that provide forwarding services to reach off-link destinations and/or redirection services to inform the node of an on-link neighbor that is closer to the final destination.

Nodes on AERO links use an IPv6 link-local address format known as the AERO Address. This address type has properties that statelessly link IPv6 Neighbor Discovery (ND) to IPv6 routing. The AERO link can be used for tunneling to neighboring nodes on either IPv6 or IPv4 networks, i.e., AERO views the IPv6 and IPv4 networks as equivalent links for tunneling. The remainder of this document presents the AERO specification.

2. Terminology

The terminology in the normative references applies; the following terms are defined within the scope of this document:

AERO link

a Non-Broadcast, Multiple Access (NBMA) tunnel virtual overlay configured over a node's attached IPv6 and/or IPv4 networks. All nodes on the AERO link appear as single-hop neighbors from the perspective of IPv6.
AERO interface

a node's attachment to an AERO link.
AERO address

an IPv6 link-local address assigned to an AERO interface and constructed as specified in Section 3.3.
AERO node

a node that is connected to an AERO link and that participates in IPv6 Neighbor Discovery over the link.
AERO Server ("server")

a node that configures an advertising router interface on an AERO link over which it can provide default forwarding and redirection services for other AERO nodes.
AERO Client ("client")

a node that configures a non-advertising router interface on an AERO link over which it can connect End User Networks (EUNs) to the AERO link.
AERO Relay ("relay")

a node that relays IPv6 packets between Servers on the same AERO link, and/or that forwards IPv6 packets between the AERO link and the IPv6 Internet. An AERO Relay may or may not also be configured as an AERO Server.
ingress tunnel endpoint (ITE)

an AERO interface endpoint that injects packets into an AERO link.
egress tunnel endpoint (ETE)

an AERO interface endpoint that receives tunneled packets from an AERO link.
underlying network

a connected IPv6 or IPv4 network routing region over which AERO nodes tunnel IPv6 packets.
underlying interface

an AERO node's interface point of attachment to an underlying network.
underlying address

an IPv6 or IPv4 address assigned to an AERO node's underlying interface. When UDP encapsulation is used, the UDP port number is also considered as part of the underlying address. Underlying addresses are used as the source and destination addresses of the AERO encapsulation header.
link-layer address

the same as defined for "underlying address" above.
network layer address

an IPv6 address used as the source or destination address of the inner IPv6 packet header.
end user network (EUN)

an IPv6 network attached to a downstream interface of an AERO Client (where the AERO interface is seen as the upstream interface).

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

3. Asymmetric Extended Route Optimization (AERO)

The following sections specify the operation of IPv6 over Automatic Extended Route Optimization (AERO) links:

3.1. AERO Interface Characteristics

All nodes connected to an AERO link configure their AERO interfaces as router interfaces (not host interfaces). End system applications therefore do not bind directly to the AERO interface, but rather bind to end user network (EUN) interfaces beyond which their packets may be forwarded over an AERO interface.

AERO interfaces use IPv6-in-IPv6 encapsulation [RFC2473] to exchange tunneled packets with AERO neighbors attached to an underlying IPv6 network, and use IPv6-in-IPv4 encapsulation [RFC4213] to exchange tunneled packets with AERO neighbors attached to an underlying IPv4 network. AERO interfaces can also use IPsec encapsulation [RFC4301] (either IPv6-in-IPv6 or IPv6-in-IPv4) in environments where strong authentication and confidentiality are required.

AERO interfaces further use the Subnetwork Encapsulation and Adaptation Layer (SEAL) [I-D.templin-intarea-seal] and can therefore configure an unlimited Maximum Transmission Unit (MTU). This entails the insertion of a SEAL header (i.e., an IPv6 fragment header with the S bit set to 1) between the inner IPv6 header and the outer IP encapsulation header. When NAT traversal and/or filtering middlebox traversal is necessary, a UDP header is further inserted between the outer IP encapsulation header and the SEAL header. (Note that while [RFC6980] forbids fragmentation of IPv6 ND messages, the SEAL fragmentation header applies only to the outer tunnel encapsulation and not the inner IPv6 ND packet.)

AERO interfaces maintain a neighbor cache and use an adaptation of standard unicast IPv6 ND messaging in which Router Solicitation (RS), Router Advertisement (RA), Neighbor Solicitation (NS) and Neighbor Advertisement (NA) messages do not include Source/Target Link Layer Address Options (S/TLLAO). Instead, AERO nodes determine the link-layer addresses of neighbors by examining the encapsulation source address of any RS/RA/NS/NA messages they receive and ignore any S/TLLAOs included in these messages. This is vital to the operation of AERO in environments in which AERO neighbors are separated by Network Address Translators (NATs) - either IPv4 or IPv6.

AERO Redirect messages include a TLLAO the same as for any IPv6 link. The TLLAO includes the link-layer address of the target node, including both the IP address and the UDP source port number used by the target when it sends UDP-encapsulated packets over the AERO interface (the TLLAO instead encodes the value 0 when the target does not use UDP encapsulation). TLLAOs for target nodes that use an IPv6 underlying address include the full 16 bytes of the IPv6 address as shown in Figure 1, while TLLAOs for target nodes that use an IPv4 underlying address include only the 4 bytes of the IPv4 address as shown in Figure 2.

      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 = 2   |   Length = 3  |     UDP Source Port (or 0)    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                           Reserved                            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
     +--                                                           --+
     |                                                               |
     +--                       IPv6 Address                        --+
     |                                                               |
     +--                                                           --+
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 1: AERO TLLAO Format for IPv6

      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 = 2   |   Length = 1  |     UDP Source Port (or 0)    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                         IPv4 Address                          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 2: AERO TLLAO Format for IPv4

3.2. AERO Node Types

AERO Servers configure their AERO link interfaces as advertising router interfaces (see [RFC4861], Section 6.2.2) and may therefore send Router Advertisement (RA) messages that include non-zero Router Lifetimes.

AERO Clients configure their AERO link interfaces as non-advertising router interfaces, i.e., even if the AERO Client otherwise displays the outward characteristics of an ordinary host (for example, the Client may internally configure both an AERO interface and (virtual) EUN interfaces). AERO Clients are provisioned with IPv6 Prefix Delegations either through a DHCPv6 Prefix Delegation exchange with an AERO Server over the AERO link or via a static delegation obtained through an out-of-band exchange with an AERO link prefix delegation authority.

AERO Relays relay packets between Servers connected to the same AERO link and also forward packets between the AERO link and the native IPv6 network. The relaying process entails re-encapsulation of IPv6 packets that were received from a first AERO Server and are to be forwarded without modification to a second AERO Server.

3.3. AERO Addresses

An AERO address is an IPv6 link-local address assigned to an AERO interface and with a 64-bit IPv6 prefix embedded within the interface identifier. The AERO address is formatted as:

  • fe80::[64-bit IPv6 prefix]

Each AERO Client configures an AERO address based on the delegated prefix it has received from the AERO link prefix delegation authority. The address begins with the prefix fe80::/64 and includes in its interface identifier the base /64 prefix taken from the Client's delegated IPv6 prefix. The base prefix is determined by masking the delegated prefix with the prefix length. For example, if an AERO Client has received the prefix delegation:

  • 2001:db8:1000:2000::/56

it would construct its AERO address as:

  • fe80::2001:db8:1000:2000

An AERO Client may receive multiple IPv6 prefix delegations, in which case it would configure multiple AERO addresses - one for each delegated prefix.

Each AERO Server configures the special AERO address fe80::1 to support the operation of IPv6 Neighbor Discovery over the AERO link; the address therefore has the properties of an IPv6 Anycast address. While all Servers configure the same AERO address and therefore cannot be distinguished from one another at the network layer, Clients can still distinguish Servers at the link layer by examining the Servers' link-layer addresses.

Nodes that are configured as pure AERO Relays (i.e., and that do not also act as Servers) do not configure an IPv6 address of any kind on their AERO interfaces. The Relay's AERO interface is therefore used purely for transit and does not participate in IPv6 ND message exchanges.

3.4. AERO Reference Operational Scenario

Figure 3 depicts the AERO reference operational scenario. The figure shows an AERO Server('A'), two AERO Clients ('B', 'D') and three ordinary IPv6 hosts ('C', 'E', 'F'):