Network Working Group F. Templin, Ed. Internet-Draft Boeing Research & Technology Intended status: Standards Track August 28, 2009 Expires: March 1, 2010 Virtual Enterprise Traversal (VET) draft-templin-intarea-vet-03.txt 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/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 March 1, 2010. Copyright Notice Copyright (c) 2009 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 in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Abstract Enterprise networks connect routers over various link types, and may also connect to provider networks and/or the global Internet. Enterprise network nodes require a means to automatically provision Templin Expires March 1, 2010 [Page 1] Internet-Draft VET August 2009 IP addresses/prefixes and support internetworking operation in a wide variety of use cases including Small Office, Home Office (SOHO) networks, Mobile Ad hoc Networks (MANETs), ISP networks, multi- organizational corporate networks and the interdomain core of the global Internet itself. This document specifies a Virtual Enterprise Traversal (VET) abstraction for autoconfiguration and operation of nodes in enterprise networks. VET can also be considered as version 2 of the Intra-Site Automatic Tunnel Addressing Protocol (i.e., "ISATAPv2"). Templin Expires March 1, 2010 [Page 2] Internet-Draft VET August 2009 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 3. Enterprise Characteristics . . . . . . . . . . . . . . . . . . 10 4. Autoconfiguration . . . . . . . . . . . . . . . . . . . . . . 12 4.1. Enterprise Router (ER) Autoconfiguration . . . . . . . . . 12 4.2. Enterprise Border Router (EBR) Autoconfiguration . . . . . 14 4.2.1. VET Interface Autoconfiguration . . . . . . . . . . . 14 4.2.2. Provider-Aggregated (PA) EID Prefix Autoconfiguration . . . . . . . . . . . . . . . . . . 16 4.2.3. Provider-Independent (PI) EID Prefix Autoconfiguration . . . . . . . . . . . . . . . . . . 17 4.3. Enterprise Border Gateway (EBG) Autoconfiguration . . . . 17 4.4. VET Host Autoconfiguration . . . . . . . . . . . . . . . . 18 5. Internetworking Operation . . . . . . . . . . . . . . . . . . 18 5.1. Routing Protocol Participation . . . . . . . . . . . . . . 18 5.2. RLOC-Based Communications . . . . . . . . . . . . . . . . 19 5.3. EID-Based Communications . . . . . . . . . . . . . . . . . 19 5.4. IPv6 Router and Prefix Discovery . . . . . . . . . . . . . 19 5.4.1. Router and Prefix Discovery . . . . . . . . . . . . . 19 5.4.2. Address Autoconfiguration on VET Interfaces . . . . . 20 5.4.3. PA Prefix Registration . . . . . . . . . . . . . . . . 22 5.4.4. PI Prefix Registration . . . . . . . . . . . . . . . . 22 5.4.5. Next-Hop Discovery . . . . . . . . . . . . . . . . . . 24 5.5. IPv4 Router and Prefix Discovery . . . . . . . . . . . . . 26 5.6. Forwarding Packets on VET Interfaces . . . . . . . . . . . 26 5.7. VET and SEAL Encapsulation . . . . . . . . . . . . . . . . 27 5.8. Generating Errors . . . . . . . . . . . . . . . . . . . . 28 5.9. Processing Errors . . . . . . . . . . . . . . . . . . . . 29 5.10. Mobility and Multihoming Considerations . . . . . . . . . 29 5.11. Multicast . . . . . . . . . . . . . . . . . . . . . . . . 30 5.12. Service Discovery . . . . . . . . . . . . . . . . . . . . 32 5.13. Enterprise Partitioning . . . . . . . . . . . . . . . . . 32 5.14. EBG Prefix State Recovery . . . . . . . . . . . . . . . . 32 5.15. Support for Legacy ISATAP Services . . . . . . . . . . . . 33 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 7. Security Considerations . . . . . . . . . . . . . . . . . . . 33 8. Related Work . . . . . . . . . . . . . . . . . . . . . . . . . 34 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 35 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 35 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 35 11.1. Normative References . . . . . . . . . . . . . . . . . . . 35 11.2. Informative References . . . . . . . . . . . . . . . . . . 37 Appendix A. Duplicate Address Detection (DAD) Considerations . . 40 Appendix B. Link-Layer Multiplexing and Traffic Engineering . . . 41 Appendix C. Change Log . . . . . . . . . . . . . . . . . . . . . 43 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 44 Templin Expires March 1, 2010 [Page 3] Internet-Draft VET August 2009 1. Introduction Enterprise networks [RFC4852] connect routers over various link types (see [RFC4861], Section 2.2). The term "enterprise network" in this context extends to a wide variety of use cases and deployment scenarios. For example, an "enterprise" can be as small as a SOHO network, as complex as a multi-organizational corporation, or as large as the global Internet itself. ISP networks are another example use case that fits well with the VET enterprise network model. Mobile Ad hoc Networks (MANETs) [RFC2501] can also be considered as a challenging example of an enterprise network, in that their topologies may change dynamically over time and that they may employ little/no active management by a centralized network administrative authority. These specialized characteristics for MANETs require careful consideration, but the same principles apply equally to other enterprise network scenarios. This document specifies a Virtual Enterprise Traversal (VET) abstraction for autoconfiguration and internetworking operation, where addresses of different scopes may be assigned on various types of interfaces with diverse properties. Both IPv4 [RFC0791] and IPv6 [RFC2460] are discussed within this context. The use of standard DHCP [RFC2131] [RFC3315] and neighbor discovery [RFC0826] [RFC1256] [RFC4861] mechanisms is assumed unless otherwise specified. Templin Expires March 1, 2010 [Page 4] Internet-Draft VET August 2009 Provider-Edge Interfaces x x x | | | +--------------------+---+--------+----------+ E | | | | | n | I | | .... | | t | n +---+---+--------+---+ | e | t | +--------+ /| | r | e I x----+ | Host | I /*+------+--< p I | r n | |Function| n|**| | r n | n t | +--------+ t|**| | i t | a e x----+ V e|**+------+--< s e | l r . | E r|**| . | e r | f . | T f|**| . | f | V a . | +--------+ a|**| . | I a | i c . | | Router | c|**| . | n c | r e x----+ |Function| e \*+------+--< t e | t s | +--------+ \| | e s | u +---+---+--------+---+ | r | a | | .... | | i | l | | | | o +--------------------+---+--------+----------+ r | | | x x x Enterprise-Edge Interfaces Figure 1: Enterprise Router (ER) Architecture Figure 1 above depicts the architectural model for an Enterprise Router (ER). As shown in the figure, an ER may have a variety of interface types including enterprise-edge, enterprise-interior, provider-edge, internal-virtual, as well as VET interfaces used for IP in IP encapsulation. The different types of interfaces are defined, and the autoconfiguration mechanisms used for each type are specified. This architecture applies equally for MANET routers, in which enterprise-interior interfaces correspond to the wireless multihop radio interfaces typically associated with MANETs. Out of scope for this document is the autoconfiguration of provider interfaces, which must be coordinated in a manner specific to the service provider's network. Enterprise networks must have a means for supporting both Provider- Independent (PI) and Provider-Aggregated (PA) IP prefixes. This is especially true for enterprise scenarios that involve mobility and multihoming. Also in scope are ingress filtering for multihomed sites, adaptation based on authenticated ICMP feedback from on-path routers, effective tunnel path MTU mitigations, and routing scaling suppression as required in many enterprise network scenarios. Templin Expires March 1, 2010 [Page 5] Internet-Draft VET August 2009 Recognizing that one size does not fit all, the VET specification provides adaptable mechanisms that address these issues, and more, in a wide variety of enterprise network use cases. VET represents a functional superset of 6over4 [RFC2529] and the Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) [RFC5214], where VET can be considered as version 2 of the ISATAP protocol (i.e., "ISATAPv2"). VET also works in conjunction with the Subnetwork Encapsulation and Adaptation Layer (SEAL) [I-D.templin-intarea-seal] and supports additional encapsulations such as IPsec [RFC4301]. Together, these technologies serve as functional building blocks for a new Internetworking architecture known as Routing and Addressing in Next Generation EnteRprises [I-D.templin-ranger] [I-D.russert-rangers]. The VET principles can be either directly or indirectly traced to the deliberations of the ROAD group in January 1992, and also to still earlier works including NIMROD [RFC1753] and the Catenet model for internetworking [CATENET] [IEN48] [RFC2775]. [RFC1955] captures the high-level architectural aspects of the ROAD group deliberations in a "New Scheme for Internet Routing and Addressing (ENCAPS) for IPNG". VET is related to the present-day activities of the IETF INTAREA, AUTOCONF, DHC, IPv6, MANET, and V6OPS working groups, as well as the IRTF RRG working group. 2. Terminology The mechanisms within this document build upon the fundamental principles of IP in IP encapsulation. The terms "inner" and "outer" are used to, respectively, refer to the innermost IP {address, protocol, header, packet, etc.} *before* encapsulation, and the outermost IP {address, protocol, header, packet, etc.} *after* encapsulation. VET also uses the Subnetwork Encapsulation and Adaptation Layer (SEAL) [I-D.templin-intarea-seal] as a "mid-layer" encapsulation between the inner and outer IP headers, and also allows for inclusion of other mid-layer encapsulations including IPSec [RFC4301]. The terminology in the normative references apply; the following terms are defined within the scope of this document: subnetwork the same as defined in [RFC3819]. Templin Expires March 1, 2010 [Page 6] Internet-Draft VET August 2009 enterprise the same as defined in [RFC4852]. An enterprise is also understood to refer to a cooperative networked collective with a commonality of business, social, political, etc. interests. Minimally, the only commonality of interest in some enterprise network scenarios may be the cooperative provisioning of connectivity itself. site a logical and/or physical grouping of interfaces that connect a topological area less than or equal to an enterprise in scope. A site within an enterprise can, in some sense, be considered as an enterprise unto itself. Mobile Ad hoc Network (MANET) a connected topology of mobile or fixed routers that maintain a routing structure among themselves over dynamic links, where a wide variety of MANETs share common properties with enterprise networks. The characteristics of MANETs are defined in [RFC2501], Section 3. enterprise/site/MANET throughout the remainder of this document, the term "enterprise" is used to collectively refer to any of {enterprise, site, MANET}, i.e., the VET mechanisms and operational principles can be applied to enterprises, sites, and MANETs of any size or shape. Enterprise Router (ER) As depicted in Figure 1, an Enterprise Router (ER) is a fixed or mobile router that comprises a router function, a host function, one or more enterprise-interior interfaces, and zero or more internal virtual, enterprise-edge, provider-edge, and VET interfaces. At a minimum, an ER forwards outer IP packets over one or more sets of enterprise-interior interfaces, where each set connects to a distinct enterprise. Enterprise Border Router (EBR) an ER that connects edge networks to the enterprise and/or connects multiple enterprises together. An EBR is a tunnel endpoint router, and it configures a separate VET interface over each set of enterprise-interior interfaces that connect the EBR to each distinct enterprise. In particular, an EBR may configure multiple VET interfaces - one for each distinct enterprise. All EBRs are also ERs. Templin Expires March 1, 2010 [Page 7] Internet-Draft VET August 2009 Enterprise Border Gateway (EBG) an EBR that connects VET interfaces configured over child enterprises to a provider network - either directly via a provider-edge interface or indirectly via another VET interface configured over a parent enterprise. EBRs may act as EBGs on some VET interfaces and as ordinary EBRs on other VET interfaces. All EBGs are also EBRs. enterprise-interior interface an ER's attachment to a link within an enterprise. Packets sent over enterprise-interior interfaces may be forwarded over multiple additional enterprise-interior interfaces within the enterprise before they are forwarded via an enterprise-edge interface, provider-edge interface, or a VET interface configured over a different enterprise. Enterprise-interior interfaces connect laterally within the IP network hierarchy. enterprise-edge interface an EBR's attachment to a link (e.g., an Ethernet, a wireless personal area network, etc.) on an arbitrarily complex edge network that the EBR connects to an enterprise and/or provider network. Enterprise-edge interfaces connect to lower levels within the IP network hierarchy. provider-edge interface an EBR's attachment to the Internet or to a provider network outside of the enterprise via which the Internet can be reached. Provider-edge interfaces connect to higher levels within the IP network hierarchy. internal-virtual interface an interface that is internal to an EBR and does not in itself directly attach to a tangible physical link, e.g., an Ethernet cable. Examples include a loopback interface, a virtual private network interface, or some form of tunnel interface. Virtual Enterprise Traversal (VET) an abstraction that uses IP in IP encapsulation to create an overlay that spans an enterprise in a single (inner) IP hop. VET can be considered as version 2 of the ISATAP protocol (i.e., "ISATAPv2"). VET interface an EBR's tunnel virtual interface used for Virtual Enterprise Traversal. The EBR configures a VET interface over a set of underlying interfaces belonging to the same enterprise. When there are multiple distinct enterprises (each with their own distinct set of underlying interfaces), the EBR configures a Templin Expires March 1, 2010 [Page 8] Internet-Draft VET August 2009 separate VET interface over each set of underlying interfaces, i.e., the EBR configures multiple VET interfaces. VET interfaces natively use the Subnetwork Encapsulation and Adaptation Layer (SEAL). The VET interface encapsulates each inner IP packet in any mid- layer headers followed by the SEAL header followed by an outer IP header, then forwards the packet on an underlying interface such that the Time to Live (TTL) - Hop Limit in the inner header is not decremented as the packet traverses the enterprise. The VET interface therefore presents an automatic tunneling abstraction that represents the enterprise as a single IP hop. VET interfaces in non-multicast environments are Non-Broadcast, Multiple Access (NBMA); VET interfaces in multicast environments are multicast capable. VET address an IPv6 address format associated with a VET interface that use IPv6 and IPv4 as the inner and outer IP protocols, respectively. VET addresses are formed exactly as specified for ISATAP addresses in Sections 6.1 and 6.2 of [RFC5214]. VET host any node (host or router) that configures a VET interface for host operation only. Note that a single node may configure some of its VET interfaces as host interfaces and others as router interfaces. VET node any node that configures and uses a VET interface. Provider-Independent (PI) prefix an IPv6 or IPv4 prefix (e.g., 2001:DB8::/48, 192.0.2/24, etc.) that is either self-generated by an ER or delegated to an enterprise by a registry. Provider Aggregated (PA) prefix an IPv6 or IPv4 prefix that is delegated to an enterprise by a provider network. Routing Locator (RLOC) a non-link-local IPv4 or IPv6 address taken from a PI/PA prefix that can appear in enterprise-interior and/or interdomain routing tables. Global-scope RLOC prefixes are delegated to specific enterprises and routable within both the enterprise-interior and interdomain routing regions. Enterprise-local-scope RLOC prefixes (e.g., IPv6 Unique Local Addresses [RFC4193], IPv4 privacy addresses [RFC1918], etc.) are self-generated by individual Templin Expires March 1, 2010 [Page 9] Internet-Draft VET August 2009 enterprises and routable only within the enterprise-interior routing region. ERs use RLOCs for operating the enterprise-interior routing protocol and for next-hop determination in forwarding packets addressed to other RLOCs. End systems use RLOCs as addresses for communications between endpoints within the same enterprise. VET interfaces treat RLOCs as *outer* IP addresses during IP in IP encapsulation. Endpoint Interface iDentifier (EID) an IPv4 or IPv6 address taken from a PI/PA prefix that is routable within an enterprise-edge or VET overlay network scope, and may also appear in enterprise-interior and/or interdomain mapping tables. EID prefixes are typically separate and distinct from any RLOC prefix space. Edge network routers use EIDs for operating the enterprise-edge or VET overlay network routing protocol and for next-hop determination in forwarding packets addressed to other EIDs. End systems use EIDs as addresses for communications between endpoints either within the same enterprise or within different enterprises. VET interfaces treat EIDs as *inner* IP addresses during IP in IP encapsulation. The following additional acronyms are used throughout the document: CGA - Cryptographically Generated Address DHCP(v4, v6) - Dynamic Host Configuration Protocol FIB - Forwarding Information Base ISATAP - Intra-Site Automatic Tunnel Addressing Protocol NBMA - Non-Broadcast, Multiple Access ND - Neighbor Discovery PIO - Prefix Information Option PRL - Potential Router List PRLNAME - Identifying name for the PRL (default is "isatapv2") RIO - Route Information Option RS/RA - IPv6 ND Router Solicitation/Advertisement SEAL - Subnetwork Encapsulation and Adaptation Layer SLAAC - IPv6 StateLess Address AutoConfiguation 3. Enterprise Characteristics Enterprises consist of links that are connected by Enterprise Routers (ERs) as depicted in Figure 1. ERs typically participate in a routing protocol over enterprise-interior interfaces to discover routes that may include multiple Layer 2 or Layer 3 forwarding hops. Templin Expires March 1, 2010 [Page 10] Internet-Draft VET August 2009 Enterprise Border Routers (EBRs) are ERs that connect edge networks to the enterprise and/or join multiple enterprises together. Enterprise Border Gateways (EBGs) are EBRs that either directly or indirectly connect enterprises to provider networks. Conceptually, an ER embodies both a host function and router function. The host function supports Endpoint Interface iDentifier (EID)-based and/or Routing LOCator (RLOC)-based communications according to the weak end-system model [RFC1122]. The router function engages in the enterprise-interior routing protocol, connects any of the ER's edge networks to the enterprise, and may also connect the enterprise to provider networks (see Figure 1). An enterprise may be as simple as a small collection of ERs and their attached edge networks; an enterprise may also contain other enterprises and/or be a subnetwork of a larger enterprise. An enterprise may further encompass a set of branch offices and/or nomadic hosts connected to a home office over one or several service providers, e.g., through Virtual Private Network (VPN) tunnels. Finally, an enterprise may contain many internal partitions that are logical groupings of nodes for the purpose of load balancing, organizational separation, etc. In that case, each internal partition resembles an individual segment of a bridged LAN. Enterprises that comprise link types with sufficiently similar properties (e.g., Layer 2 (L2) address formats, maximum transmission units (MTUs), etc.) can configure a sub-IP layer routing service such that IP sees the enterprise as an ordinary shared link the same as for a (bridged) campus LAN. In that case, a single IP hop is sufficient to traverse the enterprise without IP layer encapsulation. Enterprises that comprise link types with diverse properties and/or configure multiple IP subnets must also provide a routing service that operates as an IP layer mechanism. In that case, multiple IP hops may be necessary to traverse the enterprise such that care must be taken to avoid multi-link subnet issues [RFC4903]. In addition to other interface types, VET nodes configure VET interfaces that view all other VET nodes in an enterprise as single- hop neighbors attached to a virtual link. VET nodes configure a separate VET interface for each distinct enterprise to which they connect, and discover other EBRs on each VET interface that can be used for forwarding packets to off-enterprise destinations. For each distinct enterprise, an enterprise trust basis must be established and consistently applied. For example, in enterprises in which EBRs establish symmetric security associations, mechanisms such as IPsec [RFC4301] can be used to assure authentication and confidentiality. In other enterprise network scenarios, asymmetric Templin Expires March 1, 2010 [Page 11] Internet-Draft VET August 2009 securing mechanisms such as SEcure Neighbor Discovery (SEND) [RFC3971] may be necessary to authenticate exchanges based on trust anchors. Still other enterprises may have sufficient infrastructure trust basis (e.g., through proper deployment of filtering gateways at enterprise borders) and may not require nodes to implement such additional mechanisms. Finally, in enterprises with a centralized management structure (e.g., a corporate campus network), an enterprise mapping service and a synchronized set of EBGs can provide sufficient infrastructure support for virtual enterprise traversal. In that case, the EBGs can provide a "default mapper" [I-D.jen-apt] service used for short-term packet forwarding until EBR neighbor relationships can be established. In enterprises with a distributed management structure (e.g., MANETs), peer-to-peer coordination between the EBRs themselves may be required. Recognizing that various use cases will entail a continuum between a fully distributed and fully centralized approach, the following sections present the mechanisms of Virtual Enterprise Traversal as they apply to a wide variety of scenarios. 4. Autoconfiguration ERs, EBRs, EBGs, and VET hosts configure themselves for operation as specified in the following subsections. 4.1. Enterprise Router (ER) Autoconfiguration ERs configure enterprise-interior interfaces and engage in any routing protocols over those interfaces. When an ER joins an enterprise, it first configures an IPv6 link- local address on each enterprise-interior interface and configures an IPv4 link-local address on each enterprise-interior interface that requires an IPv4 link-local capability. IPv6 link-local address generation mechanisms include Cryptographically Generated Addresses (CGAs) [RFC3972], IPv6 Privacy Addresses [RFC4941], StateLess Address AutoConfiguration (SLAAC) using EUI-64 interface identifiers [RFC4291] [RFC4862], etc. The mechanisms specified in [RFC3927] provide an IPv4 link-local address generation capability. Next, the ER configures one or more RLOCs and engages in any routing protocols on its enterprise-interior interfaces. The ER can configure RLOCs via explicit management, DHCP autoconfiguration, pseudo-random self-generation from a suitably large address pool, or through an alternate autoconfiguration mechanism. The ER may optionally configure and assign a separate RLOC for each underlying interface, or it may configure only a single RLOC and assign it to a Templin Expires March 1, 2010 [Page 12] Internet-Draft VET August 2009 VET interface configured over the underlying interfaces (see Section 4.2.1). In the latter case, the ER can use the VET interface for link layer multiplexing and traffic engineering purposes as specified in Appendix B. Alternatively (or in addition), the ER can request RLOC prefix delegations via an automated prefix delegation exchange over an enterprise-interior interface and can assign the prefix(es) on enterprise-edge interfaces. Note that in some cases, the same enterprise-edge interfaces may assign both RLOC and EID addresses if there is a means for source address selection. In other cases (e.g., for separation of security domains), RLOCs and EIDs must be assigned on separate sets of enterprise-edge interfaces. Self-generation of RLOCs for IPv6 can be from a large public or local-use IPv6 address range (e.g., IPv6 Unique Local Addresses [RFC4193]). Self-generation of RLOCs for IPv4 can be from a large public or private IPv4 private address range (e.g., [RFC1918]). When self-generation is used alone, the ER must continuously monitor the RLOCs for uniqueness, e.g., by monitoring the routing protocol. DHCP generation of RLOCs may require support from relays within the enterprise. For DHCPv6, relays that do not already know the RLOC of a server within the enterprise forward requests to the 'All_DHCP_Servers' site-scoped IPv6 multicast group [RFC3315]. For DHCPv4, relays that do not already know the RLOC of a server within the enterprise forward requests to the site-scoped IPv4 multicast group address 'All_DHCPv4_Servers', which should be set to 239.255.2.1 unless an alternate multicast group for the site is known. DHCPv4 servers that delegate RLOCs should therefore join the 'All_DHCPv4_Servers' multicast group and service any DHCPv4 messages received for that group. A combined approach using both DHCP and self-generation is also possible when the ER configures both a DHCP client and relay that are connected, e.g., via a pair of back-to-back connected Ethernet interfaces, a tun/tap interface, a loopback interface, inter-process communication, etc. The ER first self-generates a temporary RLOC used only for the purpose of procuring an actual RLOC taken from a disjoint addressing range. The ER then engages in the routing protocol and performs a DHCP client/relay exchange using the temporary RLOC as the address of the relay. When the DHCP server delegates an actual RLOC address/prefix, the ER abandons the temporary RLOC and re-engages in the routing protocol using an RLOC taken from the delegation. In some enterprise use cases (e.g., MANETs), assignment of RLOCs on enterprise-interior interfaces as singleton addresses (i.e., as Templin Expires March 1, 2010 [Page 13] Internet-Draft VET August 2009 addresses with /32 prefix lengths for IPv4, or as addresses with /128 prefix lengths for IPv6) may be necessary to avoid multi-link subnet issues. In other use cases, assignment of an RLOC on a VET interface as specified in Appendix B can provide link layer multiplexing and traffic engineering over multiple underlying interfaces using only a single IP address. 4.2. Enterprise Border Router (EBR) Autoconfiguration EBRs are ERs that configure VET interfaces over distinct sets of underlying interfaces belonging to the same enterprise; an EBR can connect to multiple enterprises, in which case it would configure multiple VET interfaces. In addition to the ER autoconfiguration procedures specified in Section 4.1, EBRs perform the following autoconfiguration operations. 4.2.1. VET Interface Autoconfiguration VET interface autoconfiguration entails: 1) interface initialization, 2) EBG discovery and enterprise identification, and 3) EID configuration. These functions are specified in the following sections. 4.2.1.1. Interface Initialization EBRs configure a VET interface over a set of underlying interfaces belonging to the same enterprise, where the VET interface presents a virtual-link abstraction in which all EBRs in the enterprise appear as single-hop neighbors through the use of IP in IP encapsulation. After the EBR configures a VET interface, it initializes the interface and assigns an IPv6 link-local address and an IPv4 link- local address if necessary. The EBR also associates an RLOC obtained as specified in Section 4.1 with the VET interface to serve as the source address for outer IP packets. When IPv6 and IPv4 are used as the inner/outer protocols (respectively), the EBR autoconfigures an IPv6 link-local VET address on the VET interface to support packet forwarding and operation of the IPv6 neighbor discovery protocol. The link-local VET address is formed exactly as specified in Sections 6.1 and 6.2 of [RFC5214]. The link-local address need not be checked for uniqueness since the IPv4 RLOC embedded in the address itself is managed for uniqueness (see Section 4.1). Link-local address configuration for other inner/outer IP protocol combinations is through administrative configuration or through an unspecified alternate method. Link-local address configuration for other inner/outer IP protocol combinations may not be necessary if an Templin Expires March 1, 2010 [Page 14] Internet-Draft VET August 2009 EID can be configured through other means (see Section 4.2.1.3). After the EBR initializes a VET interface, it can communicate with other VET nodes as single-hop neighbors on the VET interface from the viewpoint of the inner IP protocol. The EBR can also configure the VET interface for link-layer multiplexing and traffic engineering purposes as specified in Appendix B. 4.2.1.2. Enterprise Border Gateway Discovery and Enterprise Identification The EBR next discovers a list of EBGs for each of its VET interfaces. The list can be discovered through information conveyed in the routing protocol, through the Potential Router List (PRL) discovery mechanisms outlined in Section 8.3.2 of [RFC5214], through DHCP options, etc. In multicast-capable enterprises, EBRs can also listen for advertisements on the 'rasadv' [RASADV] multicast group address. In particular, whether or not routing information is available, the EBR can discover the list of EBGs by resolving an identifying name for the PRL ('PRLNAME') formed as 'hostname.domainname', where 'hostname' is an enterprise-specific name string and 'domainname' is an enterprise-specific DNS suffix. The EBR discovers 'PRLNAME' through manual configuration, the DHCP Domain Name option [RFC2132], 'rasadv' protocol advertisements, link-layer information (e.g., an IEEE 802.11 Service Set Identifier (SSID)), or through some other means specific to the enterprise. In the absence of other information, the EBR sets the 'hostname' component of 'PRLNAME' to "isatapv2" and sets the 'domainname' component to the enterprise-specific DNS suffix "example.com" (e.g., as "isatapv2.example.com"). Note that this naming convention is intentionally distinct from the convention specified in [RFC5214], and is used by the EBR to distinguish between ISATAP and VET virtual interfaces. The global Internet interdomain routing core represents a specific example of an enterprise network scenario, albeit on an enormous scale. The 'PRLNAME' assigned to the global Internet interdomain routing core for the purpose of VET is "isatapv2.net". After discovering 'PRLNAME', the EBR can discover the list of EBGs by resolving 'PRLNAME' to a list of RLOC addresses through a name service lookup. For centrally managed enterprises, the EBR resolves 'PRLNAME' using an enterprise-local name service (e.g., the enterprise-local DNS). For enterprises with a distributed management structure, the EBR resolves 'PRLNAME' using Link-Local Multicast Name Resolution (LLMNR) [RFC4795] over the VET interface. In that case, Templin Expires March 1, 2010 [Page 15] Internet-Draft VET August 2009 all EBGs in the PRL respond to the LLMNR query, and the EBR accepts the union of all responses. Each distinct enterprise must have a unique identity that EBRs can use to uniquely discern their enterprise affiliations. 'PRLNAME' as well as the RLOCs of EBGs and the IP prefixes they aggregate serve as an identifier for the enterprise. 4.2.1.3. EID Configuration After EBG discovery, the EBR configures EIDs on its VET interfaces. When IPv6 and IPv4 are used as the inner/outer protocols (respectively), the EBR autoconfigures EIDs as specified in Section 5.4. In particular, the EBR acts as a host on its VET interfaces for router and prefix discovery purposes but acts as a router on its VET interfaces for routing protocol operation and packet forwarding purposes. EID configuration for other inner/outer IP protocol combinations is through administrative configuration or through an unspecified alternate method; in some cases, such EID configuration can be performed independently of EBG discovery. 4.2.2. Provider-Aggregated (PA) EID Prefix Autoconfiguration EBRs can acquire Provider-Aggregated (PA) EID prefixes through autoconfiguration exchanges with EBGs over VET interfaces, where each EBG may be configured as either a DHCP relay or DHCP server. For IPv4 EIDs, the EBR acquires prefixes via an automated IPv4 prefix delegation exchange, explicit management, etc. For IPv6 EIDs, the EBR acquires prefixes via DHCPv6 Prefix Delegation exchanges. In particular, the EBR (acting as a requesting router) can use DHCPv6 prefix delegation [RFC3633] over the VET interface to obtain IPv6 EID prefixes from the server (acting as a delegating router). The EBR obtains prefixes using either a 2-message or 4-message DHCPv6 exchange [RFC3315]. For example, to perform the 2-message exchange, the EBR's DHCPv6 client forwards a Solicit message with an IA_PD option to its DHCPv6 relay, i.e., the EBR acts as a combined client/ relay (see Section 4.1). The relay then forwards the message over the VET interface to an EBG, which either services the request or relays it further. The forwarded Solicit message will elicit a reply from the server containing PA IPv6 prefix delegations. The EBR can propose a specific prefix to the DHCPv6 server per Templin Expires March 1, 2010 [Page 16] Internet-Draft VET August 2009 Section 7 of [RFC3633], e.g., if a prefix delegation hint is available. The server will check the proposed prefix for consistency and uniqueness, then return it in the reply to the EBR if it was able to perform the delegation. After the EBR receives PA prefix delegations, it can provision the prefixes on enterprise-edge interfaces as well as on other VET interfaces for which it is configured as an EBG. It can also provision the prefixes on enterprise-interior interfaces as long as other nodes on those interfaces unambiguously associate the prefixes with the EBR. 4.2.3. Provider-Independent (PI) EID Prefix Autoconfiguration Independent of any PA prefixes, EBRs can acquire and use Provider- Independent (PI) EID prefixes that are self-configured (e.g., using [RFC4193], etc.) and/or delegated by a registration authority (e.g., through a regional Internet registry, through a centrally-assigned unique local address delegation authority [I-D.hain-ipv6-ulac], etc.). When an EBR acquires a PI prefix, it must also obtain credentials that it can use to prove prefix ownership when it registers the prefixes with EBGs within an enterprise (see Section 5.4 and Section 5.5). After the EBR receives PI prefix delegations, it can provision the prefixes on enterprise-edge interfaces as well as on other VET interfaces for which it is configured as an EBG. It can also provision the prefixes on enterprise-interior interfaces as long as other nodes on those interfaces can unambiguously associate the prefixes with the EBR. The minimum-sized IPv6 PI prefix that an EBR may acquire is a /56. The minimum-sized IPv4 PI prefix that an EBR may acquire is a /24. 4.3. Enterprise Border Gateway (EBG) Autoconfiguration EBGs are EBRs that connect child enterprises to provider networks via provider-edge interfaces and/or via VET interfaces configured over parent enterprises. EBGs autoconfigure their provider-edge interfaces in a manner that is specific to the provider connections, and they autoconfigure their VET interfaces that were configured over parent enterprises using the EBR autoconfiguration procedures specified in Section 4.2. For each of its VET interfaces configured over a child enterprise, the EBG initializes the interface the same as for an ordinary EBR (see Section 4.2.1). It must then arrange to add one or more of its Templin Expires March 1, 2010 [Page 17] Internet-Draft VET August 2009 RLOCs associated with the child enterprise to the PRL, and it must maintain these resource records in accordance with [RFC5214], Section 9. In particular, for each VET interface configured over a child enterprise, the EBG adds the RLOCs to name-service resource records for 'PRLNAME' ("isatapv2.example.com" by default). EBGs respond to LLMNR queries for 'PRLNAME' on VET interfaces configured over child enterprises with a distributed management structure. EBGs configure a DHCP relay/server on VET interfaces configured over child enterprises that require DHCP services. To avoid looping, EBGs must not configure a default route on a VET interface configured over a child interface. 4.4. VET Host Autoconfiguration Nodes that cannot be attached via an EBR's enterprise-edge interface (e.g., nomadic laptops that connect to a home office via a Virtual Private Network (VPN)) can instead be configured for operation as a simple host connected to the VET interface. Such VET hosts perform the same VET interface autoconfiguration procedures as specified for EBRs in Section 4.2.1, but they configure their VET interfaces as host interfaces (and not router interfaces). VET hosts can then send packets to the EID addresses of other hosts on the VET interface, or to off-enterprise EID destinations via a next-hop EBR. Note that a node may be configured as a host on some VET interfaces and as an EBR/EBG on other VET interfaces. 5. Internetworking Operation Following the autoconfiguration procedures specified in Section 4, ERs, EBRs, EBGs, and VET hosts engage in normal internetworking operations as discussed in the following sections. 5.1. Routing Protocol Participation Following autoconfiguration, ERs engage in any RLOC-based IP routing protocols and forward IP packets with RLOC addresses. EBRs can additionally engage in any EID-based IP routing protocols and forward IP packets with EID addresses. Note that the EID-based IP routing domains are separate and distinct from any RLOC-based IP routing domains. Templin Expires March 1, 2010 [Page 18] Internet-Draft VET August 2009 5.2. RLOC-Based Communications When permitted by policy and supported by routing, end systems can avoid VET interface encapsulation through communications that directly invoke the outer IP protocol using RLOC addresses instead of EID addresses. End systems can use source address selection rules to determine whether to use EID or RLOC addresses based on, e.g., name service information. 5.3. EID-Based Communications In many enterprise scenarios, the use of EID-based communications (i.e., instead of RLOC-based communications) may be necessary and/or beneficial to support address scaling, NAT avoidance, security domain separation, site multihoming, traffic engineering, etc. The remainder of this section discusses internetworking operation for EID-based communications using the VET interface abstraction. 5.4. IPv6 Router and Prefix Discovery The following sections discuss router and prefix discovery considerations for the case of IPv6 as the inner IP protocol and IPv4 as the outer protocol. Router discovery and prefix discovery for other IP protocol combinations are out of scope. 5.4.1. Router and Prefix Discovery VET nodes follow the router and prefix discovery procedures specified in [RFC5214], Section 8.3. They discover EBGs within the enterprise as specified in Section 4.2.1.2, then perform RS/RA exchanges with the EBGs to establish and maintain routes and prefixes. Depending on the enterprise network trust basis, VET nodes may be required to use SEND to secure the RS/RA exchanges. EBGs follow the router and prefix discovery procedures specified in [RFC5214], Section 8.2. They send solicited RAs over VET interfaces for which they are configured as gateways where the RAs include Router Lifetimes, Prefix Information Options (PIOs) that contain PA prefixes for SLAAC, and with other required options/parameters. The RAs can also include PIOs with the 'L' bit set to 0 and with a prefix such as '2001:DB8::/48' as a hint of an aggregated prefix from which the EBG is willing to delegate longer PA prefixes. When PIOs that contain PA prefixes for SLAAC are included, the 'M' flag in the RA should also be set to 0. When an EBG receives an RS on a VET interface, it authenticates the message then proceeds according to whether/not the VET interface maintains a neighbor cache. If the VET interface maintains a Templin Expires March 1, 2010 [Page 19] Internet-Draft VET August 2009 neighbor cache, the EBG first creates or updates a neighbor cache entry for the VET link-local source address in the RS according to Section 6.2.6 of [RFC4861]. If the neighbor cache entry cannot be created/updated (e.g., due to insufficient resources), the EBG silently discards the RS message and does not send an RA. Otherwise, the EBG creates/updates the neighbor cache entry, sets a "Time To Live (TTL)" on the entry that is no shorter than the its advertised Router Lifetime, and sends the RA response to the RS. If the neighbor cache entry TTL subsequently expires before a new RS arrives, the EBG deletes the neighbor cache entry. Note that if the VET interface does not maintain a neighbor cache, the EBG simply omits these neighbor cache manipulations and sends the RA response to the RS. When the VET node receives an RA on a VET interface, it authenticates the message then configures a default route based on the Router Lifetime. Thereafter, the VET node accepts packets that are forwarded by EBGs for which it has current default routing information (i.e., ingress filtering is based on the default router trust relationship rather than a prefix-specific ingress filter entry). If the RA also contains Prefix Information Options (PIOs) with the 'A' and 'L' bits set to 1, the VET node autoconfigures IPv6 VET addresses from the advertised prefixes and assigns them to the VET interface as specified in Section 5.4.2. 5.4.2. Address Autoconfiguration on VET Interfaces VET nodes perform address autoconfiguration to generate both VET addresses and other types of IPv6 addresses (e.g.,CGA addresses [RFC3972], IPv6 Privacy addresses [RFC4941], etc.). When a VET node generates a VET address, it first creates an ISATAP interface identifer that embeds its IPv4 RLOC address as specified in Section 6.1 of [RFC5214]. The node then configures IPv6 unicast VET addresses from advertised on-link prefixes received in RA messages according to [RFC4862] and assigns them to the VET interface, i.e., it does not perform Duplicate Address Detection (DAD) on the addresses since the embedded IPv4 RLOC address already provides uniqueness. When the node self-generates a non-VET IPv6 address from one of the EBG's advertised on-link prefixes, it first verifies that the interface identifier does not begin with the reserved tokens "00-00- 5E-FE" or "02-00-5E-FE"; otherwise, it repeats the self-generation process until it obtains an interface identifier that does not collide. The VET node next marks each self-generated non-VET address as tentative and uses the address as the target address in an IPv6 Neighbor Solicitation (NS) message [RFC4861] used for DAD [RFC4862]. Templin Expires March 1, 2010 [Page 20] Internet-Draft VET August 2009 If the self-generated address is a CGA, the node also includes SEND credentials to prove address ownership. The VET node sets the IPv6 source address of the NS to 0 and sets the IPv6 destination address to the VET link-local unicast address of the EBG that advertised the prefix, but does not include a Source Link-Layer Address Option (SLLAO) in the NS message. When the EBG receives the NS, it checks for the VET link-local address of the sender in its neighbor cache. If the EBG does not have the address in the cache (i.e., the EBG has not received a recent RS from this VET node), it silently discards the NS. Otherwise, it checks for the target address in the NS mesage in its neighbor cache. If the target address is not already in the cache, the EBG first verifies the NS SEND credentials (if present) then creates a new neighbor cache entry for the target address in the STALE state and records the IPv4 RLOC source address of the requesting node as the link layer address. It the target address is already in the cache and its link-layer address matches the IPv4 RLOC source address of the NS, the EBG updates the neighbor cache entry TTL. If the target address is already in the neighbor cache and its link-layer address does not match the IPv4 source address of the NS, the VET node's tentative address is a duplicate and the NS does not update the cache. The EBG then prepares a Neighbor Advertisement (NA) message with the IPv6 source address set to the EBG's VET link-local address, the IPv6 destination address set to the VET node's VET link-local address, the target address set to the VET node's proposed self-generated address, and with a Target Link-Layer Address Option (TLLAO) formatted using a modified version of the form specified in Section 5 of [RFC2529], i.e., as shown in Figure 2: +-------+-------+-------+-------+-------+-------+-------+-------+ | Type |Length | TTL | IPv4 Address | +-------+-------+-------+-------+-------+-------+-------+-------+ Figure 2: VET Link-Layer Address Option Format The EBG sets "IPv4 address" in the TLLAO option to the IPv4 RLOC address of the VET node if the address was not a duplicate, sets "IPv4 address" to the EBG's own IPv4 RLOC address if the address was a duplicate, or sets "IPv4 address" to 0 if the address could not otherwise be assigned (e.g., due to incorrect SEND credentails, insufficient resources, etc.). The EBG also sets "TTL" to the maximum time in seconds that the VET node is permitted to use the address, where the value '0' means that the address was either a duplicate or cannot otherwise be used. The EBG then sends the NA message to the VET node. Templin Expires March 1, 2010 [Page 21] Internet-Draft VET August 2009 When the VET node receives the NA message, it does not update its neighbor cache but rather checks the NA to verify that it is authorized to use the non-VET address. In particular, if the TLLAO contains a non-zero TTL and IPv4 address set to the VET node's IPv4 RLOC address, the VET node assigns the address to the VET interface and can subsequently use it as the IPv6 source address for on- and off-link communications. If the VET node wishes to subsequently extend the lifetime of the non-VET address beyond TTL seconds, it must send additional NS(DAD) messages as above to update the EBG's neighbor cache. This implies that EBGs that maintain a neighbor cache can provide an address registration service for VET nodes that will autoconfigure non-VET IPv6 addresses, and that the EBG sets the frequency with which non-VET IPv6 addresses may be updated or deprecated (i.e. by setting the TTL). The EBG must therefore maintain neighbor cache entries indexed by the node's IPv4 RLOC address (i.e., as the link- layer address) for each non-VET IPv6 address that the VET node autoconfigures in addition to maintaining a neighbor cache entry for the node's VET link-local address. EBG neighbor cache entries for non-VET addresses are therefore purged under two possible circumstances: 1) that the non-VET address expires due to no NS(DAD) message being received within the TTL timeout period, or 2) that the VET link-local address of the VET node expires due to no RS message being received within the prefix lifetime timeout period. 5.4.3. PA Prefix Registration After an EBR discovers default routes, it can use DHCP prefix delegation to obtain PA prefixes via an EBG as specified in Section 4.2.2. The DHCP server ensures that the delegations are unique and that the EBG's router function will forward IP packets over the VET interface to the correct EBR. In particular, the EBG must register and track the PA prefixes that are delegated to each EBR. The PA prefix registrations remain active in the EBGs as long as the EBR continues to issue DHCP renewals over the VET interface before lease lifetimes expire. The lease lifetime also keeps the delegation state active even if communications between the EBR and DHCP server are disrupted for a period of time (e.g., due to an enterprise network partition) before being reestablished (e.g., due to an enterprise network merge). 5.4.4. PI Prefix Registration After an EBR discovers default routes, it must register its PI prefixes by sending RAs to a set of one or more EBGs with Route Templin Expires March 1, 2010 [Page 22] Internet-Draft VET August 2009 Information Options (RIOs) [RFC4191] that contain the EBR's PI prefixes. Each RA must include the RLOC of an EBG as the outer IP destination address and a link-local address assigned to the VET interface as the inner IP destination address. For enterprises that use SEND, the RAs also include a CGA link-local inner source address, SEND credentials, plus any certificates needed to prove ownership of the PI prefixes. The EBR additionally tracks the set of EBGs to which it sends RAs so that it can send subsequent RAs to the same set. When the EBG receives the RA, it first authenticates the message; if the authentication fails, the EBG discards the RA. Otherwise, the EBG installs the PI prefixes with their respective lifetimes in its Forwarding Information Base (FIB) and configures them for both ingress filtering [RFC3704] and forwarding purposes. In particular, the EBG configures the FIB entries as ingress filter rules to accept packets received on the VET interface that have a source address taken from the PI prefixes. It also configures the FIB entries to permit forwarding of packets with a destination address taken from the PI prefixes to the EBR that registered the prefixes on the VET interface. The EBG then publishes the PI prefixes in a distributed mapping database (e.g., in a private instance of a routing protocol in which only EBGs participate, via an automated name-service update mechanism [RFC3007], etc.). For enterprises that are managed under a centralized administrative authority, the EBG also publishes the PI prefixes in the enterprise-local name-service (e.g., the enterprise- local DNS [RFC1035]). In particular, the EBG publishes each /56 prefix taken from the PI prefixes as a separate Fully Qualified Domain Name (FQDN) that consists of a sequence of 14 nibbles in reverse order (i.e., the same as in [RFC3596], Section 2.5) followed by the string 'ip6' followed by the string 'PRLNAME'. For example, when 'PRLNAME' is "isatapv2.example.com", the EBG publishes the prefix '2001:DB8::/56' as: '0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.isatapv2.example.com'. The EBG includes the outer RLOC source address of the RA (e.g., in a DNS A resource record) in each prefix publication. For enterprises that use SEND, the EBG also includes the inner IPv6 CGA source address (e.g., in a DNS AAAA record) in each prefix publication. If the prefix was already installed in the distributed database, the EBG instead adds the outer RLOC source address (e.g., in an additional DNS A record) to the preexisting publication to support PI prefixes that are multihomed. For enterprises that use SEND, this latter provision requires all EBRs of a multihomed site that advertise the Templin Expires March 1, 2010 [Page 23] Internet-Draft VET August 2009 same PI prefixes in RAs to use the same CGA and the same SEND credentials. After the EBG authenticates the RA and publishes the PI prefixes, it next acts as a Neighbor Discovery proxy (NDProxy) [RFC4389] on the VET interfaces configured over any of its parent enterprises, and it relays a proxied RA to the EBGs on those interfaces. (For enterprises that use SEND, the EBG additionally acts as a SEcure Neighbor Discovery Proxy (SENDProxy) [I-D.ietf-csi-proxy-send].) EBGs in parent enterprises that receive the proxied RAs in turn act as NDProxys/SENDProxys to relay the RAs to EBGs on their parent enterprises, etc. The RA proxying and PI prefix publication recurses in this fashion and ends when an EBR attached to an interdomain routing core is reached. After the initial PI prefix registration, the EBR that owns the prefix(es) must periodically send additional RAs to its set of EBGs to refresh prefix lifetimes. Each such EBG tracks the set of EBGs in parent enterprises to which it relays the proxied RAs, and should relay subsequent RAs to the same set. This procedure has a direct analogy in the Teredo method of maintaining state in network middleboxes through the periodic transmission of "bubbles" [RFC4380]. 5.4.5. Next-Hop Discovery VET nodes discover destination-specific next-hop EBRs within the enterprise by querying the name service for the /56 IPv6 PI prefix taken from a packet's destination address, by forwarding packets via a default route to an EBG, or by some other inner-IP to outer-IP address mapping mechanism. For example, for the IPv6 destination address '2001:DB8:1:2::1' and 'PRLNAME' "isatapv2.example.com" the VET node can lookup the domain name: '0.0.1.0.0.0.8.b.d.0.1.0.0.2.ip6.isatapv2.example.com'. If the name-service lookup succeeds, it will return RLOC addresses (e.g., in DNS A records) that correspond to next-hop EBRs to which the VET node can forward packets. (In enterprises that use SEND, it will also return an IPv6 CGA address, e.g., in a DNS AAAA record.) Name-service lookups in enterprises with a centralized management structure use an infrastructure-based service, e.g., an enterprise- local DNS. Name-service lookups in enterprises with a distributed management structure and/or that lack an infrastructure-based name- service instead use LLMNR over the VET interface. When LLMNR is used, the EBR that performs the lookup sends an LLMNR query (with the /56 prefix taken from the IP destination address encoded in dotted- Templin Expires March 1, 2010 [Page 24] Internet-Draft VET August 2009 nibble format as shown above) and accepts the union of all replies it receives from other EBRs on the VET interface. When an EBR receives an LLMNR query, it responds to the query IFF it aggregates an IP prefix that covers the prefix in the query. Alternatively, in enterprises with a stable and highly-available set of EBGs, the VET node can simply forward an initial packet via a default route to an EBG. The EBG will forward the packet to a next- hop EBR on the VET interface and return an ICMPv6 Redirect [RFC4861] (using SEND, if necessary). If the packet's source address is on- link on the VET interface, the EBG returns an ordinary "router-to- host" redirect with the source address of the packet as its destination. If the packet's source address is not on-link, the EBG instead returns a "router-to-router" redirect with the link-local VET address of the previous-hop EBR as its destination. When IPv4 is used as the outer IP protocol, the EBG includes in the redirect one or more IPv6 TLLAOs formatted as specified n Section 5.4.2. The TLLAOs contain the IPv4 RLOCs of potential next-hop EBRs arranged in order from lowest to highest priority (i.e., the first TLLAO contains the lowest priority RLOC and the final TLLAO option contains the highest priority). For each such IPv6/IPv4 LLAO, the Type is set to 2 (for Target Link-Layer Address Option), Length is set to 1, and IPv4 Address is set to the IPv4 RLOC of the next-hop EBR. TTL is set to the time in seconds that the recipient may cache the RLOC, where the value 65535 represents infinity and the value 0 suspends forwarding through this RLOC. When a VET host receives an ordinary "router-to-host" redirect, it processes the redirect exactly as specified in [RFC4861], Section 8. When an EBR receives a "router-to-router" redirect, it discovers the RLOC addresses of potential next-hop EBRs by examining the LLAOs included in the redirect. The EBR then installs a FIB entry that contains the /56 prefix of the destination address encoded in the redirect and the list of RLOCs of potential next-hop EBRs. The EBR then enables the FIB entry for forwarding to next-hop EBRs but DOES NOT enable it for ingress filtering acceptance of packets from next- hop EBRs (i.e., the forwarding determination is unidirectional). In enterprises in which spoofing is possible, after discovering potential next-hop EBRs (either through name-service lookup or ICMP redirect) the EBR must send authenticating credentials before forwarding packets via the next-hops. To do so, the EBR must send RAs over the VET interface (using SEND, if necessary) to the RLOCs of one or more of the potential next-hop EBRs. The RAs must include a Route Information Option (RIO) [RFC4191] that contains the /56 PI prefix of the original packet's source address. After sending the RAs, the EBR can either enable the new FIB entry for forwarding Templin Expires March 1, 2010 [Page 25] Internet-Draft VET August 2009 immediately or delay until it receives an explicit acknowledgement that a next-hop EBR received the RA (e.g., using the SEAL explicit acknowledgement mechanism -- see Section 5.7). When a next-hop EBR receives the RA, it authenticates the message then it performs a name-service lookup on the prefix in the RIO if further authenticating evidence is required. If the name service returns resource records that are consistent with the inner and outer IP addresses of the RA, the next-hop EBR then installs the prefix in the RIO in its FIB and enables the FIB entry for ingress filtering but DOES NOT enable it for forwarding purposes. After an EBR sends initial RAs following a redirect, it should send periodic RAs to refresh the next-hop EBR's ingress filter prefix lifetimes as long as traffic is flowing. EBRs retain the FIB entries created as a result of an ICMP redirect until all RLOC TTLs expire, or until no hints of forward progress through any of the associated RLOCs are received. In this way, RLOC liveness detection exactly parallels IPv6 Neighbor Unreachability Detection ([RFC4861], Section 3). 5.5. IPv4 Router and Prefix Discovery When IPv4 is used as the inner IP protocol, router discovery and prefix registration exactly parallel the mechanisms specified for IPv6 in Section 5.4. To support this, modifications to the ICMPv4 Router Advertisement [RFC1256] function to include SEND constructs and modifications to the ICMPv4 Redirect [RFC0792] function to support router-to-router redirects will be specified in a future document. Additionally, publications for IPv4 prefixes will be in dotted-nibble format in the 'ip4.isatapv2.example.com' domain. For example, the IPv4 prefix 192.0.2/24 would be represented as: '2.0.0.0.0.c.ip4.isatapv2.example.com' 5.6. Forwarding Packets on VET Interfaces VET nodes forward packets by consulting the FIB to determine a route with a next-hop toward the destination, where the next-hop is the destination itself if the destination matches an interface's on-link prefix. When multiple routes are available, VET nodes can use default router preferences, routing protocol information, traffic engineering configurations, etc. to select the best route. When no routes other than "default" are available, VET nodes can discover the best next-hop through the mechanisms specified in Section 5.4 and Section 5.5. When the VET node selects a route with a next-hop configured on a VET interface that uses IPv6-in-SEAL-in-IPv4 encapsulation, it next Templin Expires March 1, 2010 [Page 26] Internet-Draft VET August 2009 performs next-hop address resolution. For VET addresses, the VET node performs address resolution through static extraction of the embedded IPv4 RLOC in the VET interface identifier. For non-VET addresses, the VET node first checks for the next-hop address in its neigbhbor cache. If the address is in the cache, address resolution is through static extraction of the IPv4 RLOC address recorded in the link-layer address. Otherwise, if the node is not the EBG it sends a Neighbor Solicitation (NS) message to the EBG with its VET interface link-local address as the IPv6 source, the VET link-local address of the EBG as the destination, and the next-hop address as the target. When the EBG receives the NS message, it does not update or create a neighbor cache entry for the source of the solicitation, but rather returns an immediate Neighbor Advertisement (NA) message. If the EBG has an entry for the target address in its neighbor cache, it returns an NA message with the next-hop address as the target, the link-local address of the EBG as the IPv6 source, the link-local address of the VET node as the IPv6 destination, and with a Target Link Layer Address Option (TLLAO) formatted as specified in Section 5.4.2 that encodes a TTL and the IPv4 RLOC address of the VET node that owns the next-hop address. If the EBG does not have a neighbor cache entry for the target address, it returns an NA message as above except that the TLLAO encodes the value 0 in both the TTL and IPv4 address fields. When the VET node receives the NA message, it can immediately determine whether address resolution has succeeded or failed by examining the results recorded in the TLLAO. If the address resolution succeeds, the VET node records the address in its neighbor cache and retains the neighbor cache entry for up to the duration recorded in the TTL. If the address resolution fails, the VET node discards the packet and/or selects an alternate route (if one is available). Note that the above address resolution is peformed only for IPv6-in- SEAL-in-IPv4 encapsulation. For other encapsulations, address resolutuion is through administrative configuration or through an unspecified alternate method. 5.7. VET and SEAL Encapsulation After address resolution, the VET interface encapsulates the inner IP packet in any mid-layer headers (e.g., IPsec [RFC4301]) followed a SEAL header [I-D.templin-intarea-seal] followed by an outer IP header; it next submits the encapsulated packet to the outer IP forwarding engine for transmission on an underlying interface. VET interfaces use SEAL encapsulation to accommodate path MTU Templin Expires March 1, 2010 [Page 27] Internet-Draft VET August 2009 diversity, to defeat source address spoofing, and to enable sub-IP layer hints of forward progress that can be piggybacked on ordinary data messages. SEAL encapsulation maintains a unidirectional and monotonically incrementing per-packet identification value known as the 'SEAL_ID'. When a VET node that uses SEAL encapsulation sends a SEND-protected Router Advertisement (RA) or Router Solicitation (RS) message to another VET node, both nodes can cache the new SEAL_ID as per-tunnel state used for maintaining a window of unacknowledged SEAL_IDs. In terms of security, when a VET node receives an ICMP message or a SEAL error message, it can confirm that the packet-in-error within the message corresponds to one of its recently sent packets by examining the SEAL_ID along with source and destination addresses, etc. Additionally, a next-hop EBR can track the SEAL_ID in packets received from EBRs for which there is an ingress filter entry and discard packets that have SEAL_ID values outside of the current window. In terms of next-hop reachability, an EBR can set the SEAL "Acknowledgement Requested" bit in messages to receive confirmation that a next-hop EBR is reachable. (Note that this is a mid-layer reachability confirmation, and not an L2 reachability indication.) Setting the "Acknowledgement Requested" bit is also used as the method for maintaining the window of outstanding SEAL_IDs. 5.8. Generating Errors When an EBR receives an IPv6 packet over a VET interface and there is no matching ingress filter entry, it drops the packet and returns an ICMPv6 [RFC4443] "Destination Unreachable; Source address failed ingress/egress policy" message to the previous-hop EBR subject to rate limiting. When an EBR receives an IPv6 packet over a VET interface, and there is no longest-prefix-match FIB entry for the destination, it returns an ICMPv6 "Destination Unreachable; No route to destination" message to the previous hop EBR subject to rate limiting. When an EBR receives an IPv6 packet over a VET interface and the longest-prefix-match FIB entry for the destination is via a next-hop configured over the same VET interface the packet arrived on, the EBR forwards the packet. If the FIB prefix is longer than ::/0, the EBR then sends a router-to-router ICMPv6 Redirect message (using SEND, if necessary) to the previous-hop EBR as specified in Section 5.4.5. Generation of other ICMP messages [RFC0792] [RFC4443] is the same as for any IP interface. Templin Expires March 1, 2010 [Page 28] Internet-Draft VET August 2009 5.9. Processing Errors When an EBR receives an ICMPv6 "Destination Unreachable; Source address failed ingress/egress policy" message from a next-hop EBR, and there is a longest-prefix-match FIB entry for the original packet's destination that is more specific than ::/0, the EBR discards the message and marks the FIB entry for the destination as "forwarding suspended" for the RLOC taken from the source address of the ICMPv6 message. The EBR should then allow subsequent packets to flow through different RLOCs associated with the FIB entry until it forwards a new RA to the suspended RLOC. If the EBR receives excessive ICMPv6 ingress/egress policy errors through multiple RLOCs associated with the same FIB entry, it should delete the FIB entry and allow subsequent packets to flow through an EBG if supported in the specific enterprise scenario. When a VET node receives an ICMPv6 "Destination Unreachable; No route to destination" message from a next-hop EBR, it forwards the ICMPv6 message to the source of the original packet as normal. If the EBR has a longest-prefix-match FIB entry for the original packet's destination that is more specific than ::/0, the EBR also deletes the FIB entry. When an EBR receives an authentic ICMPv6 Redirect, it processes the packet as specified in Section 5.4.5. When an EBG receives new mapping information for a specific destination prefix, it can propagate the update to other EBRs/EBGs by sending an ICMPv6 redirect message to the 'All Routers' link-local multicast address with an LLAO with the TTL for the unreachable LLAO set to zero, and with a NULL packet in error. Additionally, a VET node may receive ICMP "Destination Unreachable; net / host unreachable" messages from an ER indicating that the path to a VET neighbor may be failing. The VET node should first check, e.g., the SEAL_ID, IPsec sequence number, source address of the original packet if available, etc. to obtain reasonable assurance that the ICMP message is authentic, then should mark the longest- prefix-match FIB entry for the destination as "forwarding suspended" for the RLOC destination address of the ICMP packet-in-error. If the VET node receives excessive ICMP unreachable errors through multiple RLOCs associated with the same FIB entry, it should delete the FIB entry and allow subsequent packets to flow through a different route. 5.10. Mobility and Multihoming Considerations EBRs that travel between distinct enterprise networks must either abandon their PA prefixes that are relative to the "old" enterprise Templin Expires March 1, 2010 [Page 29] Internet-Draft VET August 2009 and obtain new ones relative to the "new" enterprise or somehow coordinate with a "home" enterprise to retain ownership of the prefixes. In the first instance, the EBR would be required to coordinate a network renumbering event using the new PA prefixes [RFC4192]. In the second instance, an ancillary mobility management mechanism must be used. EBRs can retain their PI prefixes as they travel between distinct enterprise networks as long as they register the prefixes with new EBGs and (preferably) withdraw the prefixes from old EBGs prior to departure. Prefix registration with new EBGs is coordinated exactly as specified in Section 5.4.4; prefix withdrawal from old EBGs is simply through re-announcing the PI prefixes with zero lifetimes. Since EBRs can move about independently of one another, stale FIB entry state may be left in VET nodes when a neighboring EBR departs. Additionally, EBRs can lose state for various reasons, e.g., power failure, machine reboot, etc. For this reason, EBRs are advised to set relatively short PI prefix lifetimes in RIO options, and to send additional RAs to refresh lifetimes before they expire. (EBRs should place conservative limits on the RAs they send to reduce congestion, however.) EBRs may register their PI prefixes with multiple EBGs for multihoming purposes. EBRs should only forward packets via EBGs with which it has registered its PI prefixes, since other EBGs may drop the packets and return ICMPv6 "Destination Unreachable; Source address failed ingress/egress policy" messages. EBRs can also act as delegating routers to sub-delegate portions of their PI prefixes to requesting routers on their enterprise-edge interfaces and on VET interfaces for which they are configured as EBGs. In this sense, the sub-delegations of an EBR's PI prefixes become the PA prefixes for downstream-dependent nodes. The EBGs of a multihomed enterprise should participate in a private inner IP routing protocol instance between themselves (possibly over an alternate topology) to accommodate enterprise partitions/merges as well as intra-enterprise mobility events. These peer EBGs should accept packets from one another without respect to the destination (i.e., ingress filtering is based on the peering relationship rather than a prefix-specific ingress filter entry). 5.11. Multicast In multicast-capable deployments, ERs provide an enterprise-wide multicasting service (e.g., Simplified Multicast Forwarding (SMF) [I-D.ietf-manet-smf], Protocol Independent Multicast (PIM) routing, Templin Expires March 1, 2010 [Page 30] Internet-Draft VET August 2009 Distance Vector Multicast Routing Protocol (DVMRP) routing, etc.) over their enterprise-interior interfaces such that outer IP multicast messages of site-scope or greater scope will be propagated across the enterprise. For such deployments, VET nodes can also provide an inner IP multicast/broadcast capability over their VET interfaces through mapping of the inner IP multicast address space to the outer IP multicast address space. In that case, operation of link-scoped (or greater scoped) inner IP multicasting services (e.g., a link-scoped neighbor discovery protocol) over the VET interface is available, but link-scoped services should be used sparingly to minimize enterprise-wide flooding. VET nodes encapsulate inner IP multicast messages sent over the VET interface in any mid-layer headers (e.g., IPsec, etc.) followed by a SEAL header followed by an outer IP header with a site-scoped outer IP multicast address as the destination. For the case of IPv6 and IPv4 as the inner/outer protocols (respectively), [RFC2529] provides mappings from the IPv6 multicast address space to a site-scoped IPv4 multicast address space (for other encapsulations, mappings are established through administrative configuration or through an unspecified alternate static mapping). Multicast mapping for inner IP multicast groups over outer IP multicast groups can be accommodated, e.g., through VET interface snooping of inner multicast group membership and routing protocol control messages. To support inner-to-outer IP multicast mapping, the VET interface acts as a virtual outer IP multicast host connected to its underlying interfaces. When the VET interface detects that an inner IP multicast group joins or leaves, it forwards corresponding outer IP multicast group membership reports on an underlying interface over which the VET interface is configured. If the VET node is configured as an outer IP multicast router on the underlying interfaces, the VET interface forwards locally looped-back group membership reports to the outer IP multicast routing process. If the VET node is configured as a simple outer IP multicast host, the VET interface instead forwards actual group membership reports (e.g., IGMP messages) directly over an underlying interface. Since inner IP multicast groups are mapped to site-scoped outer IP multicast groups, the VET node must ensure that the site-scope outer IP multicast messages received on the underlying interfaces for one VET interface do not "leak out" to the underlying interfaces of another VET interface. This is accommodated through normal site- scoped outer IP multicast group filtering at enterprise boundaries. Templin Expires March 1, 2010 [Page 31] Internet-Draft VET August 2009 5.12. Service Discovery VET nodes can perform enterprise-wide service discovery using a suitable name-to-address resolution service. Examples of flooding- based services include the use of LLMNR [RFC4795] over the VET interface or multicast DNS (mDNS) [I-D.cheshire-dnsext-multicastdns] over an underlying interface. More scalable and efficient service discovery mechanisms are for further study. 5.13. Enterprise Partitioning EBGs can physically partition an enterprise by configuring multiple VET interfaces over multiple distinct sets of underlying interfaces. In that case, each partition (i.e., each VET interface) must configure its own distinct 'PRLNAME' (e.g., 'isatapv2.zone1.example.com', 'isatapv2.zone2.example.com', etc.). EBGs can logically partition an enterprise using a single VET interface by sending RAs with PIOs containing different IPv6 PA prefixes to group nodes into different logical partitions. EBGs can identify partitions, e.g., by examining RLOC prefixes, observing the interfaces over which RSs are received, etc. In that case, a single 'PRLNAME' can cover all partitions. 5.14. EBG Prefix State Recovery EBGs must retain explicit state that tracks the inner IP prefixes owned by EBRs within the enterprise, e.g., so that packets are delivered to the correct EBRs and not incorrectly "leaked out" of the enterprise via a default route. For PA prefixes, the state is maintained via an EBR's DHCP prefix delegation lease renewals, while for PI prefixes the state is maintained via an EBR's periodic prefix registration RAs. When an EBG loses some or all of its state (e.g., due to a power failure), it must recover the state so that packets can be forwarded over correct routes. If the EBG aggregates PA prefixes from which the IP prefixes of all EBRs in the enterprise are sub-delegated, then the EBG can recover state through DHCP prefix delegation lease renewals, through bulk lease queries, or through on-demand name- service lookups based on IP packet forwarding. If the EBG serves as an anchor for PI prefixes, however, care must be taken to avoid looping while state is recovered through prefix registration RAs from EBRs. In that case, when the EBG that is recovering state forwards an IP packet for which it has no explicit route other than ::/0, it must first perform an on-demand name-service lookup to refresh state. Templin Expires March 1, 2010 [Page 32] Internet-Draft VET August 2009 5.15. Support for Legacy ISATAP Services EBGs support legacy ISATAP services according to the specifications in [RFC5214]. In particular, EBGs can configure legacy ISATAP interfaces and VET interfaces over the same sets of underlying interface as long as the IPv6 prefixes associated with the ISATAP/VET interfaces are distinct. 6. IANA Considerations There are no IANA considerations for this document. 7. Security Considerations Security considerations for MANETs are found in [RFC2501]. The security considerations found in [RFC2529] [RFC5214] also apply to VET. In particular: o VET nodes must ensure that a VET interface does not span multiple sites as specified in Section 6.2 of [RFC5214]. o VET nodes must verify that the outer IP source address of a packet received on a VET interface is correct for the inner IP source address; for the case of IPv6-in-SEAL-in-IPv4 encapsulation, this is accomodated using the procedures specified in Section 7.3 of [RFC5214]. o EBRs/EBGs must implement both inner and outer IP ingress filtering in a manner that is consistent with [RFC2827] as well as ip-proto-41 filtering. When the node at the physical boundary of the enterprise is an ER (i.e., and not an EBR/EBG), the ER itself should implement filtering. Additionally, when an EBG receives an IPv6-in-SEAL-in-IPv4 encapsulated packet with an IPv6 destination address whose prefix does not match one of the EBG's on-link prefixes, if the IPv6 interface identifier encodes the value "0200:5EFE:V4ADDR" (where V4ADDR is one of the EBG's own IPv4 addresses) the EBG drops the packet. This mitigation is necessary to avoid a potential routing loop between two EBGs on different VET links. For EBGs that can maintain a coherent neighbor cache, an additional simple mitgation can be employed to avoid accidental routing loops within a site. In particular, when the EBG forwards a packet with a next-hop address that matches an on-link prefix on one of its VET interfaces, it should first verify that the VET interface has a neighbor cache entry Templin Expires March 1, 2010 [Page 33] Internet-Draft VET August 2009 corresponding to the next-hop as specified in Section 5.6. If the neighbor cache entries exist, the EBG forwards the packet; otherwise, it drops the packet. SEND [RFC3971], IPsec [RFC4301], and SEAL [I-D.templin-intarea-seal] provide additional securing mitigations to detect source address spoofing and bogus RA messages sent by rogue routers. Rogue routers can send bogus RA messages with spoofed RLOC source addresses that can consume network resources and cause EBGs to perform extra work. Nonetheless, EBGs should not "blacklist" such RLOCs, as that may result in a denial of service to the RLOCs' legitimate owners. 8. Related Work Brian Carpenter and Cyndi Jung introduced the concept of intra-site automatic tunneling in [RFC2529]; this concept was later called: "Virtual Ethernet" and investigated by Quang Nguyen under the guidance of Dr. Lixia Zhang. Subsequent works by these authors and their colleagues have motivated a number of foundational concepts on which this work is based. Telcordia has proposed DHCP-related solutions for MANETs through the CECOM MOSAIC program. The Naval Research Lab (NRL) Information Technology Division uses DHCP in their MANET research testbeds. Security concerns pertaining to tunneling mechanisms are discussed in [I-D.ietf-v6ops-tunnel-security-concerns]. Default router and prefix information options for DHCPv6 are discussed in [I-D.droms-dhc-dhcpv6-default-router]. An automated IPv4 prefix delegation mechanism is proposed in [I-D.ietf-dhc-subnet-alloc]. RLOC prefix delegation for enterprise-edge interfaces is discussed in [I-D.clausen-manet-autoconf-recommendations]. MANET link types are discussed in [I-D.clausen-manet-linktype]. Various proposals within the IETF have suggested similar mechanisms. Templin Expires March 1, 2010 [Page 34] Internet-Draft VET August 2009 9. Acknowledgements The following individuals gave direct and/or indirect input that was essential to the work: Jari Arkko, Teco Boot, Emmanuel Bacelli, James Bound, Scott Brim, Brian Carpenter, Thomas Clausen, Claudiu Danilov, Chris Dearlove, Ralph Droms, Dino Farinacci, Vince Fuller, Thomas Goff, Joel Halpern, Bob Hinden, Sascha Hlusiak, Sapumal Jayatissa, Dan Jen, Darrel Lewis, Tony Li, Joe Macker, David Meyer, Gabi Nakibly, Thomas Narten, Pekka Nikander, Dave Oran, Alexandru Petrescu, John Spence, Jinmei Tatuya, Dave Thaler, Ole Troan, Michaela Vanderveen, Lixia Zhang, and others in the IETF AUTOCONF and MANET working groups. Many others have provided guidance over the course of many years. 10. Contributors The following individuals have contributed to this document: Eric Fleischman (eric.fleischman@boeing.com) Thomas Henderson (thomas.r.henderson@boeing.com) Steven Russert (steven.w.russert@boeing.com) Seung Yi (seung.yi@boeing.com) Ian Chakeres (ian.chakeres@gmail.com) contributed to earlier versions of the document. Jim Bound's foundational work on enterprise networks provided significant guidance for this effort. We mourn his loss and honor his contributions. 11. References 11.1. Normative References [I-D.templin-intarea-seal] Templin, F., "The Subnetwork Encapsulation and Adaptation Layer (SEAL)", draft-templin-intarea-seal-05 (work in progress), July 2009. [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, September 1981. [RFC0792] Postel, J., "Internet Control Message Protocol", STD 5, RFC 792, September 1981. [RFC0826] Plummer, D., "Ethernet Address Resolution Protocol: Or Templin Expires March 1, 2010 [Page 35] Internet-Draft VET August 2009 converting network protocol addresses to 48.bit Ethernet address for transmission on Ethernet hardware", STD 37, RFC 826, November 1982. [RFC1035] Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, November 1987. [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, March 1997. [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998. [RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing", BCP 38, RFC 2827, May 2000. [RFC3007] Wellington, B., "Secure Domain Name System (DNS) Dynamic Update", RFC 3007, November 2000. [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. [RFC3596] Thomson, S., Huitema, C., Ksinant, V., and M. Souissi, "DNS Extensions to Support IP Version 6", RFC 3596, October 2003. [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6", RFC 3633, December 2003. [RFC3971] Arkko, J., Kempf, J., Zill, B., and P. Nikander, "SEcure Neighbor Discovery (SEND)", RFC 3971, March 2005. [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", RFC 3972, March 2005. [RFC4191] Draves, R. and D. Thaler, "Default Router Preferences and More-Specific Routes", RFC 4191, November 2005. [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, February 2006. [RFC4443] Conta, A., Deering, S., and M. Gupta, "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification", RFC 4443, March 2006. Templin Expires March 1, 2010 [Page 36] Internet-Draft VET August 2009 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, September 2007. [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless Address Autoconfiguration", RFC 4862, September 2007. [RFC5214] Templin, F., Gleeson, T., and D. Thaler, "Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)", RFC 5214, March 2008. 11.2. Informative References [CATENET] Pouzin, L., "A Proposal for Interconnecting Packet Switching Networks", May 1974. [I-D.cheshire-dnsext-multicastdns] Cheshire, S. and M. Krochmal, "Multicast DNS", draft-cheshire-dnsext-multicastdns-07 (work in progress), September 2008. [I-D.clausen-manet-autoconf-recommendations] Clausen, T. and U. Herberg, "MANET Router Configuration Recommendations", draft-clausen-manet-autoconf-recommendations-00 (work in progress), February 2009. [I-D.clausen-manet-linktype] Clausen, T., "The MANET Link Type", draft-clausen-manet-linktype-00 (work in progress), October 2008. [I-D.droms-dhc-dhcpv6-default-router] Droms, R. and T. Narten, "Default Router and Prefix Advertisement Options for DHCPv6", draft-droms-dhc-dhcpv6-default-router-00 (work in progress), March 2009. [I-D.hain-ipv6-ulac] Hain, T., Hinden, R., Huston, G., and T. Narten, "Centrally Assigned IPv6 Unicast Unique Local Address Prefixes", draft-hain-ipv6-ulac-00 (work in progress), July 2009. [I-D.ietf-autoconf-manetarch] Chakeres, I., Macker, J., and T. Clausen, "Mobile Ad hoc Network Architecture", draft-ietf-autoconf-manetarch-07 (work in progress), November 2007. Templin Expires March 1, 2010 [Page 37] Internet-Draft VET August 2009 [I-D.ietf-csi-proxy-send] Krishnan, S., Laganier, J., and M. Bonola, "Secure Proxy ND Support for SEND", draft-ietf-csi-proxy-send-01 (work in progress), July 2009. [I-D.ietf-dhc-subnet-alloc] Johnson, R., Kumarasamy, J., Kinnear, K., and M. Stapp, "Subnet Allocation Option", draft-ietf-dhc-subnet-alloc-09 (work in progress), March 2009. [I-D.ietf-manet-smf] Macker, J. and S. Team, "Simplified Multicast Forwarding", draft-ietf-manet-smf-09 (work in progress), July 2009. [I-D.ietf-v6ops-tunnel-security-concerns] Hoagland, J., Krishnan, S., and D. Thaler, "Security Concerns With IP Tunneling", draft-ietf-v6ops-tunnel-security-concerns-01 (work in progress), October 2008. [I-D.jen-apt] Jen, D., Meisel, M., Massey, D., Wang, L., Zhang, B., and L. Zhang, "APT: A Practical Transit Mapping Service", draft-jen-apt-01 (work in progress), November 2007. [I-D.russert-rangers] Russert, S., Fleischman, E., and F. Templin, "RANGER Scenarios", draft-russert-rangers-00 (work in progress), May 2009. [I-D.templin-ranger] Templin, F., "Routing and Addressing in Next-Generation EnteRprises (RANGER)", draft-templin-ranger-07 (work in progress), February 2009. [IEN48] Cerf, V., "The Catenet Model for Internetworking", July 1978. [RASADV] Microsoft, "Remote Access Server Advertisement (RASADV) Protocol Specification", October 2008. [RFC1122] Braden, R., "Requirements for Internet Hosts - Communication Layers", STD 3, RFC 1122, October 1989. [RFC1256] Deering, S., "ICMP Router Discovery Messages", RFC 1256, September 1991. [RFC1753] Chiappa, J., "IPng Technical Requirements Of the Nimrod Templin Expires March 1, 2010 [Page 38] Internet-Draft VET August 2009 Routing and Addressing Architecture", RFC 1753, December 1994. [RFC1918] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and E. Lear, "Address Allocation for Private Internets", BCP 5, RFC 1918, February 1996. [RFC1955] Hinden, R., "New Scheme for Internet Routing and Addressing (ENCAPS) for IPNG", RFC 1955, June 1996. [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor Extensions", RFC 2132, March 1997. [RFC2501] Corson, M. and J. Macker, "Mobile Ad hoc Networking (MANET): Routing Protocol Performance Issues and Evaluation Considerations", RFC 2501, January 1999. [RFC2529] Carpenter, B. and C. Jung, "Transmission of IPv6 over IPv4 Domains without Explicit Tunnels", RFC 2529, March 1999. [RFC2775] Carpenter, B., "Internet Transparency", RFC 2775, February 2000. [RFC3056] Carpenter, B. and K. Moore, "Connection of IPv6 Domains via IPv4 Clouds", RFC 3056, February 2001. [RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed Networks", BCP 84, RFC 3704, March 2004. [RFC3753] Manner, J. and M. Kojo, "Mobility Related Terminology", RFC 3753, June 2004. [RFC3819] Karn, P., Bormann, C., Fairhurst, G., Grossman, D., Ludwig, R., Mahdavi, J., Montenegro, G., Touch, J., and L. Wood, "Advice for Internet Subnetwork Designers", BCP 89, RFC 3819, July 2004. [RFC3927] Cheshire, S., Aboba, B., and E. Guttman, "Dynamic Configuration of IPv4 Link-Local Addresses", RFC 3927, May 2005. [RFC4192] Baker, F., Lear, E., and R. Droms, "Procedures for Renumbering an IPv6 Network without a Flag Day", RFC 4192, September 2005. [RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast Addresses", RFC 4193, October 2005. Templin Expires March 1, 2010 [Page 39] Internet-Draft VET August 2009 [RFC4301] Kent, S. and K. Seo, "Security Architecture for the Internet Protocol", RFC 4301, December 2005. [RFC4380] Huitema, C., "Teredo: Tunneling IPv6 over UDP through Network Address Translations (NATs)", RFC 4380, February 2006. [RFC4389] Thaler, D., Talwar, M., and C. Patel, "Neighbor Discovery Proxies (ND Proxy)", RFC 4389, April 2006. [RFC4795] Aboba, B., Thaler, D., and L. Esibov, "Link-local Multicast Name Resolution (LLMNR)", RFC 4795, January 2007. [RFC4852] Bound, J., Pouffary, Y., Klynsma, S., Chown, T., and D. Green, "IPv6 Enterprise Network Analysis - IP Layer 3 Focus", RFC 4852, April 2007. [RFC4903] Thaler, D., "Multi-Link Subnet Issues", RFC 4903, June 2007. [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy Extensions for Stateless Address Autoconfiguration in IPv6", RFC 4941, September 2007. Appendix A. Duplicate Address Detection (DAD) Considerations A priori uniqueness determination (also known as "pre-service DAD") for an RLOC assigned on an enterprise-interior interface would require either flooding the entire enterprise or somehow discovering a link in the enterprise on which a node that configures a duplicate address is attached and performing a localized DAD exchange on that link. But, the control message overhead for such an enterprise-wide DAD would be substantial and prone to false-negatives due to packet loss and intermittent connectivity. An alternative to pre-service DAD is to autoconfigure pseudo-random RLOCs on enterprise-interior interfaces and employ a passive in-service DAD (e.g., one that monitors routing protocol messages for duplicate assignments). Pseudo-random IPv6 RLOCs can be generated with mechanisms such as CGAs, IPv6 privacy addresses, etc. with very small probability of collision. Pseudo-random IPv4 RLOCs can be generated through random assignment from a suitably large IPv4 prefix space. Consistent operational practices can assure uniqueness for EBG- aggregated addresses/prefixes, while statistical properties for pseudo-random address self-generation can assure uniqueness for the Templin Expires March 1, 2010 [Page 40] Internet-Draft VET August 2009 RLOCs assigned on an ER's enterprise-interior interfaces. Still, an RLOC delegation authority should be used when available, while a passive in-service DAD mechanism should be used to detect RLOC duplications when there is no RLOC delegation authority. Appendix B. Link-Layer Multiplexing and Traffic Engineering For each distinct enterprise that it connects to, an EBR configures a VET interface over possibly multiple underlying interfaces that all connect to the same enterprise. The VET interface therefore represents the EBR's logical point of attachment to the enterprise, and provides a logical interface for link-layer multiplexing over its underlying interfaces as described in Section 3.3.4.1 of [RFC1122]: "Finally, we note another possibility that is NOT multihoming: one logical interface may be bound to multiple physical interfaces, in order to increase the reliability or throughput between directly connected machines by providing alternative physical paths between them. For instance, two systems might be connected by multiple point-to-point links. We call this "link-layer multiplexing". With link-layer multiplexing, the protocols above the link layer are unaware that multiple physical interfaces are present; the link-layer device driver is responsible for multiplexing and routing packets across the physical interfaces." EBRs can support such a link-layer multiplexing capability across the enterprise in accordance with the Weak End System Model (see Section 3.3.4.2 of [RFC1122]). In particular, when an EBR autoconfigures an RLOC address (see Section 4.1), it can associate it with the VET interface only instead of assigning it to an underlying interface. The EBR therefore only needs to obtain a single RLOC address even if there are multiple underlying interfaces, i.e., it does not need to obtain one for each underlying interface. The EBR can then leave the underlying interfaces unnumbered, or it can configure a randomly chosen IP link-local address (e.g., from the prefix 169.254/16 [RFC3927] for IPv4) on underlying interfaces that require a configuration. The EBR need not check these link-local addresses for uniqueness within the enterprise, as they will not normally be used as the source address for packets. When the EBR engages in the enterprise-interior routing protocol, it uses the RLOC address assigned to the VET interface as the source address for all routing protocol control messages, however it must also supply an interface identifier (e.g., a small integer) that uniquely identifies the underlying interface that the control message is sent over. For example, if the underlying interfaces are known as "eth0", "eth1" and "eth7" the EBR can supply the token "7" when it Templin Expires March 1, 2010 [Page 41] Internet-Draft VET August 2009 sends a routing protocol control message over the "eth7" interface. This is necessary to ensure that other routers can determine the specific interface over which the EBR's routing protocol control message was sent, but the token need only be unique within the EBR itself and need not be unique throughout the enterprise. When the EBR discovers an RLOC route via the enterprise interior routing protocol, it configures a preferred route in the IP FIB that points to the VET interface instead of the underlying interface. At the same time, the EBR also configures an ancillary route that points to the underlying interface. If the EBR discovers that the same RLOC route is reachable via multiple underlying interfaces, it configures multiple ancillary routes (i.e., one for each interface). If the EBR discovers that the RLOC route is no longer reachable via any underlying interface, it removes the route in the IP FIB that points to the VET interface. With these arrangements, all locally-generated packets with RLOC destinations will flow through the VET interface (and thereby use the VET interface's RLOC address as the source address) instead of through the underlying interfaces. In the same fashion, all forwarded packets with RLOC destinations will flow through the VET interface instead of through the underlying interfaces. This arrangement has several operational advantages that enable a number of traffic engineering capabilities. First, the VET interface inserts the SEAL header so that ID-based duplicate packet detection is enabled within the enterprise. Secondly, SEAL can dynamically adjust its packet sizing parameters so that an optimum Maximum Transmission Unit (MTU) can be determined. This is true even if the VET interface reroutes traffic between underlying interfaces with different MTUs. Most importantly, the EBR can configure default and more-specific routes on the VET interface to direct traffic through a specific egress EBR (eEBR) that may be many outer IP hops away. Encapsulation will ensure that a specific eEBR is chosen, and the best eEBR can be chosen when multiple are available. Also, local applications see a stable IP source address even if there are multiple underlying interfaces. This link-layer multiplexing can therefore provide continuous operation across failovers between multiple links attached to the same enterprise without any need for readdressing. Finally, the VET interface can forward packets with RLOC-based destinations over an underlying interface without any encapsulation if encapsulation avoidance is desired. It must be specifically noted that the above arrangement constitutes a case in which the same RLOC may be used as both the inner and outer Templin Expires March 1, 2010 [Page 42] Internet-Draft VET August 2009 IP source address. This will not present a problem as long as both ends configure a VET interface in the same fashion. It must also be noted that EID-based communications can use the same VET interface arrangement, except that the EID-based next hop must be mapped to an RLOC-based next-hop within the VET interface. For IPvX- in-SEAL-in-IPvX encapsulation, as well as for IPv4-in-SEAL-in-Pv6 encapsulation, this requires a VET interface specific address mapping database. For IPv6-in-SEAL-in-IPv4 encapsulation, the mapping is accomplished through simple static extraction of an IPv4 address embedded in a VET address. Appendix C. Change Log (Note to RFC editor - this section to be removed before publication as an RFC.) Changes from -02 to -03: o security consideration clarifications o new PRLNAME for VET is "isatav2.example.com" o VET now uses SEAL natively o EBGs can support both legacy ISATAP and VET over the same underlying interfaces. Changes from -01 to -02: o Defined CGA and privacy address configuration on VET interfaces o Interface identifiers added to routing protocol control messages for link-layer multiplexing Changes from -00 to -01: o Section 4.1 clarifications on link-local assignment and RLOC autoconfiguration. o Appendix B clarifications on Weak End System Model Changes from RFC5558 to -00: o New appendix on RLOC configuration on VET intefaces. Templin Expires March 1, 2010 [Page 43] Internet-Draft VET August 2009 Author's Address Fred L. Templin (editor) Boeing Research & Technology P.O. Box 3707 MC 7L-49 Seattle, WA 98124 USA Email: fltemplin@acm.org Templin Expires March 1, 2010 [Page 44]