idnits 2.17.1 draft-templin-intarea-vet-24.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == There are 1 instance of lines with multicast IPv4 addresses in the document. If these are generic example addresses, they should be changed to use the 233.252.0.x range defined in RFC 5771 Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (March 14, 2011) is 4792 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-68) exists of draft-templin-intarea-seal-28 ** Downref: Normative reference to an Experimental draft: draft-templin-intarea-seal (ref. 'I-D.templin-intarea-seal') ** Obsolete normative reference: RFC 2460 (Obsoleted by RFC 8200) ** Obsolete normative reference: RFC 3315 (Obsoleted by RFC 8415) ** Obsolete normative reference: RFC 3633 (Obsoleted by RFC 8415) ** Obsolete normative reference: RFC 5342 (Obsoleted by RFC 7042) == Outdated reference: A later version (-15) exists of draft-cheshire-dnsext-multicastdns-14 == Outdated reference: A later version (-12) exists of draft-ietf-6man-udpzero-02 == Outdated reference: A later version (-13) exists of draft-ietf-dhc-subnet-alloc-11 == Outdated reference: A later version (-06) exists of draft-ietf-grow-va-04 == Outdated reference: A later version (-24) exists of draft-ietf-lisp-10 == Outdated reference: A later version (-14) exists of draft-ietf-manet-smf-11 -- Obsolete informational reference (is this intentional?): RFC 4306 (Obsoleted by RFC 5996) -- Obsolete informational reference (is this intentional?): RFC 4941 (Obsoleted by RFC 8981) Summary: 5 errors (**), 0 flaws (~~), 9 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group F. Templin, Ed. 3 Internet-Draft Boeing Research & Technology 4 Intended status: Standards Track March 14, 2011 5 Expires: September 15, 2011 7 Virtual Enterprise Traversal (VET) 8 draft-templin-intarea-vet-24.txt 10 Abstract 12 Enterprise networks connect hosts and routers over various link 13 types, and often also connect to provider networks and/or the global 14 Internet. Enterprise network nodes require a means to automatically 15 provision addresses/prefixes and support internetworking operation in 16 a wide variety of use cases including Small Office, Home Office 17 (SOHO) networks, Mobile Ad hoc Networks (MANETs), ISP networks, 18 multi-organizational corporate networks and the interdomain core of 19 the global Internet itself. This document specifies a Virtual 20 Enterprise Traversal (VET) abstraction for autoconfiguration and 21 operation of nodes in enterprise networks. 23 Status of this Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at http://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on September 15, 2011. 40 Copyright Notice 42 Copyright (c) 2011 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (http://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 58 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 59 3. Enterprise Network Characteristics . . . . . . . . . . . . . . 11 60 4. Autoconfiguration . . . . . . . . . . . . . . . . . . . . . . 13 61 4.1. Enterprise Router (ER) Autoconfiguration . . . . . . . . . 13 62 4.2. VET Border Router (VBR) Autoconfiguration . . . . . . . . 15 63 4.2.1. VET Interface Initialization . . . . . . . . . . . . . 15 64 4.2.2. Potential Router List (PRL) Discovery . . . . . . . . 15 65 4.2.3. Provider-Aggregated (PA) EID Prefix 66 Autoconfiguration . . . . . . . . . . . . . . . . . . 16 67 4.2.4. Provider-(In)dependent (PI) EID Prefix 68 Autoconfiguration . . . . . . . . . . . . . . . . . . 18 69 4.3. VET Border Gateway (VBG) Autoconfiguration . . . . . . . . 18 70 4.4. VET Host Autoconfiguration . . . . . . . . . . . . . . . . 19 71 5. Internetworking Operation . . . . . . . . . . . . . . . . . . 20 72 5.1. Routing Protocol Participation . . . . . . . . . . . . . . 20 73 5.1.1. PI Prefix Routing Considerations . . . . . . . . . . . 20 74 5.2. Default Route Configuration and Selection . . . . . . . . 21 75 5.3. Address Selection . . . . . . . . . . . . . . . . . . . . 21 76 5.4. Next Hop Determination . . . . . . . . . . . . . . . . . . 22 77 5.5. VET Interface Encapsulation/Decapsulation . . . . . . . . 23 78 5.5.1. Inner Network Layer Protocol . . . . . . . . . . . . . 23 79 5.5.2. Mid-Layer Encapsulation . . . . . . . . . . . . . . . 23 80 5.5.3. SEAL Encapsulation . . . . . . . . . . . . . . . . . . 23 81 5.5.4. Outer UDP Header Encapsulation . . . . . . . . . . . . 24 82 5.5.5. Outer IP Header Encapsulation . . . . . . . . . . . . 25 83 5.5.6. Decapsulation . . . . . . . . . . . . . . . . . . . . 25 84 5.6. Mobility and Multihoming Considerations . . . . . . . . . 26 85 5.7. Neighbor Coordination on VET Interfaces using SEAL . . . . 26 86 5.7.1. Router Discovery . . . . . . . . . . . . . . . . . . . 28 87 5.7.2. Neighbor Unreachability Detection . . . . . . . . . . 28 88 5.7.3. Redirect Function . . . . . . . . . . . . . . . . . . 29 89 5.8. Neighbor Coordination on VET Interfaces using IPsec . . . 29 90 5.9. Multicast . . . . . . . . . . . . . . . . . . . . . . . . 30 91 5.9.1. Multicast over (Non)Multicast Enterprise Networks . . 30 92 5.9.2. Multicast Over Multicast-Capable Enterprise 93 Networks . . . . . . . . . . . . . . . . . . . . . . . 30 94 5.10. Service Discovery . . . . . . . . . . . . . . . . . . . . 31 95 5.11. VET Link Partitioning . . . . . . . . . . . . . . . . . . 31 96 5.12. VBG Prefix State Recovery . . . . . . . . . . . . . . . . 31 97 5.13. Legacy ISATAP Services . . . . . . . . . . . . . . . . . . 32 98 5.14. ISATAP Update . . . . . . . . . . . . . . . . . . . . . . 32 99 5.14.1. ISATAP Predirection . . . . . . . . . . . . . . . . . 32 100 5.14.2. Scaling Considerations . . . . . . . . . . . . . . . . 39 101 5.14.3. Proxy Chaining . . . . . . . . . . . . . . . . . . . . 40 102 5.14.4. Mobility . . . . . . . . . . . . . . . . . . . . . . . 40 103 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 41 104 7. Security Considerations . . . . . . . . . . . . . . . . . . . 41 105 8. Related Work . . . . . . . . . . . . . . . . . . . . . . . . . 42 106 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 42 107 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 43 108 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 43 109 11.1. Normative References . . . . . . . . . . . . . . . . . . . 43 110 11.2. Informative References . . . . . . . . . . . . . . . . . . 44 111 Appendix A. Duplicate Address Detection (DAD) Considerations . . 49 112 Appendix B. Anycast Services . . . . . . . . . . . . . . . . . . 50 113 Appendix C. Change Log . . . . . . . . . . . . . . . . . . . . . 51 114 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 53 116 1. Introduction 118 Enterprise networks [RFC4852] connect hosts and routers over various 119 link types (see [RFC4861], Section 2.2). The term "enterprise 120 network" in this context extends to a wide variety of use cases and 121 deployment scenarios. For example, an "enterprise" can be as small 122 as a Small Office, Home Office (SOHO) network, as complex as a multi- 123 organizational corporation, or as large as the global Internet 124 itself. Internet Service Provider (ISP) networks are another example 125 use case that fits well with the VET enterprise network model. 126 Mobile Ad hoc Networks (MANETs) [RFC2501] can also be considered as a 127 challenging example of an enterprise network, in that their 128 topologies may change dynamically over time and that they may employ 129 little/no active management by a centralized network administrative 130 authority. These specialized characteristics for MANETs require 131 careful consideration, but the same principles apply equally to other 132 enterprise network scenarios. 134 This document specifies a Virtual Enterprise Traversal (VET) 135 abstraction for autoconfiguration and internetworking operation, 136 where addresses of different scopes may be assigned on various types 137 of interfaces with diverse properties. Both IPv4/ICMPv4 138 [RFC0791][RFC0792] and IPv6/ICMPv6 [RFC2460][RFC4443] are discussed 139 within this context (other network layer protocols are also 140 considered). The use of standard DHCP [RFC2131] [RFC3315] is assumed 141 unless otherwise specified. 143 Provider-Edge Interfaces 144 x x x 145 | | | 146 +--------------------+---+--------+----------+ E 147 | | | | | n 148 | I | | .... | | t 149 | n +---+---+--------+---+ | e 150 | t | +--------+ /| | r 151 | e I x----+ | Host | I /*+------+--< p I 152 | r n | |Function| n|**| | r n 153 | n t | +--------+ t|**| | i t 154 | a e x----+ V e|**+------+--< s e 155 | l r . | E r|**| . | e r 156 | f . | T f|**| . | f 157 | V a . | +--------+ a|**| . | I a 158 | i c . | | Router | c|**| . | n c 159 | r e x----+ |Function| e \*+------+--< t e 160 | t s | +--------+ \| | e s 161 | u +---+---+--------+---+ | r 162 | a | | .... | | i 163 | l | | | | o 164 +--------------------+---+--------+----------+ r 165 | | | 166 x x x 167 Enterprise-Edge Interfaces 169 Figure 1: Enterprise Router (ER) Architecture 171 Figure 1 above depicts the architectural model for an Enterprise 172 Router (ER). As shown in the figure, an ER may have a variety of 173 interface types including enterprise-edge, enterprise-interior, 174 provider-edge, internal-virtual, as well as VET interfaces used for 175 encapsulating inner network layer protocol packets for transmission 176 over outer IPv4 or IPv6 networks. The different types of interfaces 177 are defined, and the autoconfiguration mechanisms used for each type 178 are specified. This architecture applies equally for MANET routers, 179 in which enterprise-interior interfaces typically correspond to the 180 wireless multihop radio interfaces associated with MANETs. Out of 181 scope for this document is the autoconfiguration of provider 182 interfaces, which must be coordinated in a manner specific to the 183 service provider's network. 185 Enterprise networks require a means for supporting both Provider- 186 (In)dependent (PI) and Provider-Aggregated (PA) addressing. This is 187 especially true for enterprise network scenarios that involve 188 mobility and multihoming. The VET specification provides adaptable 189 mechanisms that address these and other issues in a wide variety of 190 enterprise network use cases. 192 The VET framework builds on a Non-Broadcast Multiple Access (NBMA) 193 [RFC2491] virtual interface model in a manner similar to other 194 automatic tunneling technologies [RFC2529][RFC5214]. VET interfaces 195 support the encapsulation of inner network layer protocol packets 196 over IP networks (i.e., either IPv4 or IPv6). VET is also compatible 197 with mid-layer encapsulation technologies including IPsec [RFC4301], 198 and supports both stateful and stateless prefix delegation. 200 VET and its associated technologies (including the Subnetwork 201 Encapsulation and Adaptation Layer (SEAL) [I-D.templin-intarea-seal]) 202 are functional building blocks for a new Internetworking architecture 203 based on the Internet Routing Overlay Network (IRON) [RFC6179] and 204 Routing and Addressing in Networks with Global Enterprise Recursion 205 (RANGER) [RFC5720][RFC6139]. Many of the VET principles can be 206 traced to the deliberations of the ROAD group in January 1992, and 207 also to still earlier initiatives including NIMROD [RFC1753] and the 208 Catenet model for internetworking [CATENET] [IEN48] [RFC2775]. The 209 high-level architectural aspects of the ROAD group deliberations are 210 captured in a "New Scheme for Internet Routing and Addressing 211 (ENCAPS) for IPNG" [RFC1955]. 213 VET is related to the present-day activities of the IETF INTAREA, 214 AUTOCONF, DHC, IPv6, MANET, and V6OPS working groups, as well as the 215 IRTF RRG working group. 217 2. Terminology 219 The mechanisms within this document build upon the fundamental 220 principles of IP encapsulation. The term "inner" refers to the 221 innermost {address, protocol, header, packet, etc.} *before* 222 encapsulation, and the term "outer" refers to the outermost {address, 223 protocol, header, packet, etc.} *after* encapsulation. VET also 224 accommodates "mid-layer" encapsulations including the Subnetwork 225 Encapsulation and Adaptation Layer (SEAL) [I-D.templin-intarea-seal], 226 IPsec [RFC4301], etc. 228 The terminology in the normative references apply; the following 229 terms are defined within the scope of this document: 231 Virtual Enterprise Traversal (VET) 232 an abstraction that uses encapsulation to create virtual overlays 233 for transporting inner network layer packets over outer IPv4 and 234 IPv6 enterprise networks. 236 enterprise network 237 the same as defined in [RFC4852]. An enterprise network is 238 further understood to refer to a cooperative networked collective 239 of devices within a structured IP routing and addressing plan and 240 with a commonality of business, social, political, etc., 241 interests. Minimally, the only commonality of interest in some 242 enterprise network scenarios may be the cooperative provisioning 243 of connectivity itself. 245 subnetwork 246 the same as defined in [RFC3819]. 248 site 249 a logical and/or physical grouping of interfaces that connect a 250 topological area less than or equal to an enterprise network in 251 scope. From a network organizational standpoint, a site within an 252 enterprise network can be considered as an enterprise network unto 253 itself. 255 Mobile Ad hoc Network (MANET) 256 a connected topology of mobile or fixed routers that maintain a 257 routing structure among themselves over links that often have 258 dynamic connectivity properties. The characteristics of MANETs 259 are described in [RFC2501], Section 3, and a wide variety of 260 MANETs share common properties with enterprise networks. 262 enterprise/site/MANET 263 throughout the remainder of this document, the term "enterprise 264 network" is used to collectively refer to any of {enterprise, 265 site, MANET}, i.e., the VET mechanisms and operational principles 266 can be applied to enterprises, sites, and MANETs of any size or 267 shape. 269 VET link 270 a virtual link that uses automatic tunneling to create an overlay 271 network that spans an enterprise network routing region. VET 272 links can be segmented (e.g., by filtering gateways) into multiple 273 distinct segments that can be joined together by bridges or IP 274 routers the same as for any link. Bridging would view the 275 multiple (bridged) segments as a single VET link, whereas IP 276 routing would view the multiple segments as multiple distinct VET 277 links. VET links can further be partitioned into multiple logical 278 areas, where each area is identified by a distinct set of border 279 nodes. 281 VET links configured over non-multicast enterprise networks 282 support only Non-Broadcast, Multiple Access (NBMA) services; VET 283 links configured over enterprise networks that support multicast 284 can support both NBMA and native multicast services. All nodes 285 connected to the same VET link appear as neighbors from the 286 standpoint of the inner network layer. 288 Enterprise Router (ER) 289 As depicted in Figure 1, an Enterprise Router (ER) is a fixed or 290 mobile router that comprises a router function, a host function, 291 one or more enterprise-interior interfaces, and zero or more 292 internal virtual, enterprise-edge, provider-edge, and VET 293 interfaces. At a minimum, an ER forwards outer IP packets over 294 one or more sets of enterprise-interior interfaces, where each set 295 connects to a distinct enterprise network. 297 VET Border Router (VBR) 298 an ER that connects edge networks to VET links and/or connects 299 multiple VET links together. A VBR is a tunnel endpoint router, 300 and it configures a separate VET interface for each distinct VET 301 link. All VBRs are also ERs. 303 VET Border Gateway (VBG) 304 a VBR that connects VET links to provider networks. A VBG may 305 alternately act as "half-gateway", and forward the packets it 306 receives from neighbors on the VET link to another VBG on the same 307 VET link. All VBGs are also VBRs. 309 VET host 310 any node (host or router) that configures a VET interface for 311 host-operation only. Note that a node may configure some of its 312 VET interfaces as host interfaces and others as router interfaces. 314 VET node 315 any node (host or router) that configures and uses a VET 316 interface. 318 enterprise-interior interface 319 an ER's attachment to a link within an enterprise network. 320 Packets sent over enterprise-interior interfaces may be forwarded 321 over multiple additional enterprise-interior interfaces within the 322 enterprise network before they reach either their final 323 destination or a border router/gateway. Enterprise-interior 324 interfaces connect laterally within the IP network hierarchy. 326 enterprise-edge interface 327 a VBR's attachment to a link (e.g., an Ethernet, a wireless 328 personal area network, etc.) on an arbitrarily complex edge 329 network that the VBR connects to a VET link and/or a provider 330 network. Enterprise-edge interfaces connect to lower levels 331 within the IP network hierarchy. 333 provider-edge interface 334 a VBR's attachment to the Internet or to a provider network via 335 which the Internet can be reached. Provider-edge interfaces 336 connect to higher levels within the IP network hierarchy. 338 internal-virtual interface 339 an interface that is internal to a VET node and does not in itself 340 directly attach to a tangible link, e.g., a loopback interface. 342 VET interface 343 a VET node's attachment to a VET link. VET nodes configure each 344 VET interface over a set of underlying enterprise-interior 345 interfaces that connect to a routing region spanned by a single 346 VET link. When there are multiple distinct VET links (each with 347 their own distinct set of underlying interfaces), the VET node 348 configures a separate VET interface for each link. 350 The VET interface encapsulates each inner packet in any mid-layer 351 headers followed by an outer IP header, then forwards the packet 352 on an underlying interface such that the Time to Live (TTL) - Hop 353 Limit in the inner header is not decremented as the packet 354 traverses the link. The VET interface therefore presents an 355 automatic tunneling abstraction that represents the VET link as a 356 single hop to the inner network layer. 358 Provider Aggregated (PA) prefix 359 a network layer protocol prefix that is delegated to a VET node by 360 a provider network. 362 Provider-(In)dependent (PI) address/prefix 363 a network layer protocol prefix that is delegated to a VET node by 364 an independent prefix registration authority. 366 Routing Locator (RLOC) 367 a public-scope or enterprise-local-scope IP address that can 368 appear in enterprise-interior and/or interdomain routing tables. 369 Public-scope RLOCs are delegated to specific enterprise networks 370 and routable within both the enterprise-interior and interdomain 371 routing regions. Enterprise-local-scope RLOCs (e.g., IPv6 Unique 372 Local Addresses [RFC4193], IPv4 privacy addresses [RFC1918], etc.) 373 are self-generated by individual enterprise networks and routable 374 only within the enterprise-interior routing region. 376 ERs use RLOCs for operating the enterprise-interior routing 377 protocol and for next-hop determination in forwarding packets 378 addressed to other RLOCs. End systems can use RLOCs as addresses 379 for end-to-end communications between peers within the same 380 enterprise network. VET interfaces treat RLOCs as *outer* IP 381 addresses during encapsulation. 383 Endpoint Interface iDentifier (EID) 384 a public-scope network layer address that is routable within 385 enterprise-edge and/or VET overlay networks. In a pure mapping 386 system, EID prefixes are not routable within the interdomain 387 routing system. In a hybrid routing/mapping system, EID prefixes 388 may be represented within the same interdomain routing instances 389 that distribute RLOC prefixes. In either case, EID prefixes are 390 separate and distinct from any RLOC prefix space, but they are 391 mapped to RLOC addresses to support packet forwarding over VET 392 interfaces. 394 VBRs participate in any EID-based routing instances and use EID 395 addresses for next-hop determination. End systems can use EIDs as 396 addresses for end-to-end communications between peers either 397 within the same enterprise network or within different enterprise 398 networks. VET interfaces treat EIDs as *inner* network layer 399 addresses during encapsulation. 401 Note that an EID can also be used as an *outer* network layer 402 address if there are nested encapsulations. In that case, the EID 403 would appear as an RLOC to the innermost encapsulation. 405 The following additional acronyms are used throughout the document: 407 CGA - Cryptographically Generated Address 408 DHCP(v4, v6) - Dynamic Host Configuration Protocol 409 ECMP - Equal Cost Multi Path 410 FIB - Forwarding Information Base 411 ICMP - either ICMPv4 or ICMPv6 412 IP - either IPv4 or IPv6 413 ISATAP - Intra-Site Automatic Tunnel Addressing Protocol 414 NBMA - Non-Broadcast, Multiple Access 415 ND - Neighbor Discovery 416 PIO - Prefix Information Option 417 PRL - Potential Router List 418 PRLNAME - Identifying name for the PRL 419 RIB - Routing Information Base 420 RIO - Route Information Option 421 SCMP - SEAL Control Message Protocol 422 SEAL - Subnetwork Encapsulation and Adaptation Layer 423 SLAAC - IPv6 StateLess Address AutoConfiguration 424 SNS/SNA - SEAL Neighbor Solicitation/Advertisement 425 SRS/SRA - SEAL Router Solicitation/Advertisement 427 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 428 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 429 document are to be interpreted as described in [RFC2119]. When used 430 in lower case (e.g., must, must not, etc.), these words MUST NOT be 431 interpreted as described in [RFC2119], but are rather interpreted as 432 they would be in common English. 434 3. Enterprise Network Characteristics 436 Enterprise networks consist of links that are connected by Enterprise 437 Routers (ERs) as depicted in Figure 1. ERs typically participate in 438 a routing protocol over enterprise-interior interfaces to discover 439 routes that may include multiple Layer 2 or Layer 3 forwarding hops. 440 VET Border Routers (VBRs) are ERs that connect edge networks to VET 441 links that span enterprise networks. VET Border Gateways (VBGs) are 442 VBRs that connect VET links to provider networks. 444 Conceptually, an ER embodies both a host function and router 445 function, and supports communications according to the weak end- 446 system model [RFC1122]. The router function engages in the 447 enterprise-interior routing protocol on its enterprise-interior 448 interfaces, connects any of the ER's edge networks to its VET links, 449 and may also connect the VET links to provider networks (see 450 Figure 1). The host function typically supports network management 451 applications, but may also support diverse applications typically 452 associated with general-purpose computing platforms. 454 An enterprise network may be as simple as a small collection of ERs 455 and their attached edge networks; an enterprise network may also 456 contain other enterprise networks and/or be a subnetwork of a larger 457 enterprise network. An enterprise network may further encompass a 458 set of branch offices and/or nomadic hosts connected to a home office 459 over one or several service providers, e.g., through Virtual Private 460 Network (VPN) tunnels. Finally, an enterprise network may contain 461 many internal partitions that are logical or physical groupings of 462 nodes for the purpose of load balancing, organizational separation, 463 etc. In that case, each internal partition resembles an individual 464 segment of a bridged LAN. 466 Enterprise networks that comprise link types with sufficiently 467 similar properties (e.g., Layer 2 (L2) address formats, maximum 468 transmission units (MTUs), etc.) can configure a subnetwork routing 469 service such that the inner network layer sees the underlying network 470 as an ordinary shared link the same as for a (bridged) campus LAN 471 (this is often the case with large cellular operator networks). In 472 that case, a single inner network layer hop is sufficient to traverse 473 the underlying network. Enterprise networks that comprise link types 474 with diverse properties and/or configure multiple IP subnets must 475 also provide an enterprise-interior routing service that operates as 476 an IP layer mechanism. In that case, multiple inner network layer 477 hops may be necessary to traverse the underlying network such that 478 care must be taken to avoid multi-link subnet issues [RFC4903]. 480 In addition to other interface types, VET nodes configure VET 481 interfaces that view all other nodes on the VET link as neighbors on 482 a virtual NBMA link. VET nodes configure a separate VET interface 483 for each distinct VET link to which they connect, and discover 484 neighbors on the link that can be used for forwarding packets to off- 485 link destinations. VET interface neighbor relationships may be 486 either unidirectional or bidirectional. 488 A unidirectional neighbor relationship is typically established and 489 maintained as a result of network layer control protocol messaging in 490 a manner that parallels IPv6 neighbor discovery [RFC4861]. A 491 bidirectional neighbor relationship is typically established and 492 maintained as result of a short transaction between the neighbors 493 carried by a reliable transport protocol such as TCP. The protocol 494 details of the transaction are out of scope for this document, and 495 indeed need not be standardized as long as both neighbors observe the 496 same specifications. 498 For each distinct VET link , a trust basis must be established and 499 consistently applied. For example, for VET links configured over 500 enterprise networks in which VBRs establish symmetric security 501 associations, mechanisms such as IPsec [RFC4301] can be used to 502 assure authentication and confidentiality. In other enterprise 503 network scenarios, VET links may require asymmetric securing 504 mechanisms such as SEcure Neighbor Discovery (SEND) [RFC3971]. VET 505 links configured over still other enterprise networks may find it 506 sufficient to employ additional encapsulations (e.g., SEAL 507 [I-D.templin-intarea-seal]) that include a simple per-packet nonce to 508 detect off-path attacks. 510 Finally, for VET links configured over enterprise networks with a 511 centralized management structure (e.g., a corporate campus network, 512 an ISP network, etc.), a hybrid routing/mapping service can be 513 deployed using a synchronized set of VBGs. In that case, the VBGs 514 can provide a "default mapper" [I-D.jen-apt] service used for short- 515 term packet forwarding until route-optimized paths can be 516 established. For VET links configured over enterprise networks with 517 a distributed management structure (e.g., disconnected MANETs), peer- 518 to-peer coordination between the VET nodes themselves without the 519 assistance of VBGs may be required. Recognizing that various use 520 cases will entail a continuum between a fully centralized and fully 521 distributed approach, the following sections present the mechanisms 522 of Virtual Enterprise Traversal as they apply to a wide variety of 523 scenarios. 525 4. Autoconfiguration 527 ERs, VBRs, VBGs, and VET hosts configure themselves for operation as 528 specified in the following subsections. 530 4.1. Enterprise Router (ER) Autoconfiguration 532 ERs configure enterprise-interior interfaces and engage in any 533 routing protocols over those interfaces. 535 When an ER joins an enterprise network, it first configures an IPv6 536 link-local address on each enterprise-interior interface that 537 requires an IPv6 link-local capability and configures an IPv4 link- 538 local address on each enterprise-interior interface that requires an 539 IPv4 link-local capability. IPv6 link-local address generation 540 mechanisms include Cryptographically Generated Addresses (CGAs) 541 [RFC3972], IPv6 Privacy Addresses [RFC4941], StateLess Address 542 AutoConfiguration (SLAAC) using EUI-64 interface identifiers 543 [RFC4291] [RFC4862], etc. The mechanisms specified in [RFC3927] 544 provide an IPv4 link-local address generation capability. 546 Next, the ER configures one or more RLOCs and engages in any routing 547 protocols on its enterprise-interior interfaces. The ER can 548 configure RLOCs via administrative configuration, pseudo-random self- 549 generation from a suitably large address pool, DHCP 550 autoconfiguration, or through an alternate autoconfiguration 551 mechanism. 553 Pseudo-random self-generation of IPv6 RLOCs can be from a large 554 public or local-use IPv6 address range (e.g., IPv6 Unique Local 555 Addresses [RFC4193]). Pseudo-random self-generation of IPv4 RLOCs 556 can be from a large public or local-use IPv4 address range (e.g., 557 [RFC1918]). When self-generation is used alone, the ER continuously 558 monitors the RLOCs for uniqueness, e.g., by monitoring the 559 enterprise-interior routing protocol. (Note however that anycast 560 RLOCs may be assigned to multiple enterprise-interior interfaces; 561 hence, monitoring for uniqueness applies only to RLOCs that are 562 provisioned as unicast.) 563 DHCP autoconfiguration of RLOCs uses standard DHCP procedures, 564 however ERs acting as DHCP clients SHOULD also use DHCP 565 Authentication [RFC3118] [RFC3315] as discussed further below. In 566 typical enterprise network scenarios (i.e., those with stable links), 567 it may be sufficient to configure one or a few DHCP relays on each 568 link that does not include a DHCP server. In more extreme scenarios 569 (e.g., MANETs that include links with dynamic connectivity 570 properties), DHCP operation may require any ERs that have already 571 configured RLOCs to act as DHCP relays to ensure that client DHCP 572 requests eventually reach a DHCP server. This may result in 573 considerable DHCP message relaying until a server is located, but the 574 DHCP Authentication Replay Detection vector provides relays with a 575 means for avoiding message duplication. 577 In all enterprise network scenarios, the amount of DHCP relaying 578 required can be significantly reduced if each relay has a way of 579 contacting a DHCP server directly. In particular, if the relay can 580 discover the unicast addresses for one or more servers (e.g., by 581 discovering the unicast RLOC addresses of VBGs as described in 582 Section 4.2.2) it can forward DHCP requests directly to the unicast 583 address(es) of the server(s). If the relay does not know the unicast 584 address of a server, it can forward DHCP requests to a site-scoped 585 DHCP server multicast address if the enterprise network supports 586 site-scoped multicast services. For DHCPv6, relays can forward 587 requests to the site-scoped IPv6 multicast group address 588 'All_DHCP_Servers' [RFC3315]. For DHCPv4, relays can forward 589 requests to the site-scoped IPv4 multicast group address 590 'All_DHCPv4_Servers', which SHOULD be set to 239.255.2.1 unless an 591 alternate multicast group for the enterprise network is known. 592 DHCPv4 servers that delegate RLOCs SHOULD therefore join the 593 'All_DHCPv4_Servers' multicast group and service any DHCPv4 messages 594 received for that group. 596 A combined approach using both DHCP and self-generation is also 597 possible when the ER configures both a DHCP client and relay that are 598 connected, e.g., via a pair of back-to-back connected Ethernet 599 interfaces, a tun/tap interface, a loopback interface, inter-process 600 communication, etc. The ER first self-generates an RLOC taken from a 601 temporary addressing range used only for the bootstrapping purpose of 602 procuring an actual RLOC taken from a delegated addressing range. 603 The ER then engages in the enterprise-interior routing protocol and 604 performs a DHCP exchange as above using the temporary RLOC as the 605 address of its relay function. When the DHCP server delegates an 606 actual RLOC address/prefix, the ER abandons the temporary RLOC and 607 re-engages in the enterprise-interior routing protocol using an RLOC 608 taken from the delegation. 610 Alternatively (or in addition to the above), the ER can request RLOC 611 prefix delegations via an automated prefix delegation exchange over 612 an enterprise-interior interface and can assign the prefix(es) on 613 enterprise-edge interfaces. Note that in some cases, the same 614 enterprise-edge interfaces may assign both RLOC and EID addresses if 615 there is a means for source address selection. In other cases (e.g., 616 for separation of security domains), RLOCs and EIDs are assigned on 617 separate sets of enterprise-edge interfaces. 619 In some enterprise network scenarios (e.g., MANETs that include links 620 with dynamic connectivity properties), assignment of RLOCs on 621 enterprise-interior interfaces as singleton addresses (i.e., as 622 addresses with /32 prefix lengths for IPv4, or as addresses with /128 623 prefix lengths for IPv6) MAY be necessary to avoid multi-link subnet 624 issues. 626 4.2. VET Border Router (VBR) Autoconfiguration 628 VBRs are ERs that configure and use one or more VET interfaces. In 629 addition to the ER autoconfiguration procedures specified in 630 Section 4.1, VBRs perform the following autoconfiguration operations. 632 4.2.1. VET Interface Initialization 634 VBRs configure a separate VET interface for each VET link, where each 635 VET link spans a distinct sets of underlying links belonging to the 636 same enterprise network. All nodes on the VET link appear as single- 637 hop neighbors from the standpoint of the inner network layer protocol 638 through the use of encapsulation. 640 The VBR binds each VET interface to one or more underlying 641 interfaces, and uses the underlying interface addresses as RLOCs to 642 serve as the outer source addresses for encapsulated packets. The 643 VBR then assigns a link-local address to each VET interface if 644 necessary. When IPv6 and IPv4 are used as the inner/outer protocols 645 (respectively), the VBR can autoconfigure an IPv6 link-local address 646 on the VET interface using a modified EUI-64 interface identifier 647 based on an IPv4 RLOC address (see Section 2.2.1 of [RFC5342]). 648 Link-local address configuration for other inner/outer protocol 649 combinations is through administrative configuration, random self- 650 generation (e.g., [RFC4941], etc.) or through an unspecified 651 alternate method. 653 4.2.2. Potential Router List (PRL) Discovery 655 After initializing the VET interface, the VBR next discovers a 656 Potential Router List (PRL) for the VET link that includes the RLOC 657 addresses of VBGs. The PRL can be discovered through administrative 658 configuration, information conveyed in the enterprise-interior 659 routing protocol, an anycast VBG discovery message exchange, a DHCP 660 option, etc. In multicast-capable enterprise networks, VBRs can also 661 listen for advertisements on the 'rasadv' [RASADV] multicast group 662 address. 664 When no other information is available, the VBR can resolve an 665 identifying name for the PRL ('PRLNAME') formed as 666 'hostname.domainname', where 'hostname' is an enterprise-specific 667 name string and 'domainname' is an enterprise-specific Domain Name 668 System (DNS) suffix [RFC1035]. The VBR discovers 'PRLNAME' through 669 administrative configuration, the DHCP Domain Name option [RFC2132], 670 'rasadv' protocol advertisements, link-layer information (e.g., an 671 IEEE 802.11 Service Set Identifier (SSID)), or through some other 672 means specific to the enterprise network. The VBR can also obtain 673 'PRLNAME' as part of an arrangement with a private-sector PI prefix 674 vendor (see: Section 4.2.4). 676 In the absence of other information, the VBR sets the 'hostname' 677 component of 'PRLNAME' to "isatapv2" and sets the 'domainname' 678 component to an enterprise-specific DNS suffix (e.g., "example.com"). 679 Isolated enterprise networks that do not connect to the outside world 680 may have no enterprise-specific DNS suffix, in which case the 681 'PRLNAME' consists only of the 'hostname' component. (Note that the 682 default hostname "isatapv2" is intentionally distinct from the 683 convention specified in [RFC5214].) 685 After discovering 'PRLNAME', the VBR resolves the name into a list of 686 RLOC addresses through a name service lookup. For centrally managed 687 enterprise networks, the VBR resolves 'PRLNAME' using an enterprise- 688 local name service (e.g., the DNS). For enterprises with no 689 centralized management structure, the VBR resolves 'PRLNAME' using 690 Link-Local Multicast Name Resolution (LLMNR) [RFC4795] over the VET 691 interface. In that case, all VBGs in the PRL respond to the LLMNR 692 query, and the VBR accepts the union of all responses. 694 4.2.3. Provider-Aggregated (PA) EID Prefix Autoconfiguration 696 VBRs that connect their enterprise networks to a provider network 697 obtain Provider-Aggregated (PA) EID prefixes through stateful and/or 698 stateless autoconfiguration mechanisms. The stateful and stateless 699 approaches are discussed in the following subsections. 701 4.2.3.1. Stateful Prefix Delegation 703 For IPv4, VBRs acquire IPv4 PA EID prefixes through administrative 704 configuration, an automated IPv4 prefix delegation exchange, etc. 706 For IPv6, VBRs acquire IPv6 PA EID prefixes through administrative 707 configuration or through DHCPv6 Prefix Delegation exchanges with an 708 VBG acting as a DHCP relay/server. In particular, the VBR (acting as 709 a requesting router) can use DHCPv6 prefix delegation [RFC3633] over 710 the VET interface to obtain prefixes from the VBG (acting as a 711 delegating router). The VBR obtains prefixes using either a 712 2-message or 4-message DHCPv6 exchange [RFC3315]. When the VBR acts 713 as a DHCPv6 client, it maps the IPv6 714 "All_DHCP_Relay_Agents_and_Servers" link- scoped multicast address to 715 the VBG's outer RLOC address. 717 To perform the 2-message exchange, the VBR's DHCPv6 client function 718 can send a Solicit message with an IA_PD option either directly or 719 via the VBR's own DHCPv6 relay function (see Section 4.1). The VBR's 720 VET interface then forwards the message using VET encapsulation (see: 721 Section 5.4) to a VBG which either services the request or relays it 722 further. The forwarded Solicit message will elicit a Reply message 723 from the server containing prefix delegations. The VBR can also 724 propose a specific prefix to the DHCPv6 server per Section 7 of 725 [RFC3633]. The server will check the proposed prefix for consistency 726 and uniqueness, then return it in the Reply message if it was able to 727 perform the delegation. 729 After the VBR receives IPv4 and/or IPv6 prefix delegations, it can 730 provision the prefixes on enterprise-edge interfaces as well as on 731 other VET interfaces configured over child enterprise networks for 732 which it acts as an VBG. The VBR can also provision the prefixes on 733 enterprise-interior interfaces to service directly-attached hosts on 734 the enterprise-interior link. 736 The prefix delegations remain active as long as the VBR continues to 737 renew them via the delegating VBG before lease lifetimes expire. The 738 lease lifetime also keeps the delegation state active even if 739 communications between the VBR and delegating VBG are disrupted for a 740 period of time (e.g., due to an enterprise network partition, power 741 failure, etc.). Note however that if the VBR abandons or otherwise 742 loses continuity with the prefixes, it may be obliged to perform 743 network-wide renumbering if it subsequently receives a new and 744 different set of prefixes. 746 Stateful prefix delegation for non-IP protocols is out of scope. 748 4.2.3.2. Stateless Prefix Delegation 750 When IPv6 and IPv4 are used as the inner and outer protocols, 751 respectively, a stateless IPv6 PA prefix delegation capability is 752 available using the mechanisms specified in [RFC5569][RFC5969]. VBRs 753 can use these mechanisms to statelessly configure IPv6 PA prefixes 754 that embed one of the VBR's IPv4 RLOCs. 756 Using this stateless prefix delegation, if the IPv4 RLOC changes the 757 IPv6 prefix also changes and the VBR is obliged to renumber any 758 interfaces on which sub-prefixes from the delegated prefix are 759 assigned. This method may therefore be most suitable for enterprise 760 networks in which IPv4 RLOC assignments rarely change, or in 761 enterprise networks in which only services that do not depend on a 762 long-term stable IPv6 prefix (e.g., client-side web browsing) are 763 used. 765 Stateless prefix delegation for other protocol combinations is out of 766 scope. 768 4.2.4. Provider-(In)dependent (PI) EID Prefix Autoconfiguration 770 VBRs can acquire Provider (In)dependent (PI) prefixes to facilitate 771 multihoming, mobility and traffic engineering without requiring site- 772 wide renumbering events. These PI prefixes are made available to 773 VBRs through a prefix delegation authority that may or may not be 774 associated with a specific ISP. 776 VBRs that connect major enterprise networks (e.g., large 777 corporations, academic campuses, ISP networks, etc.) to a parent 778 enterprise network and/or the global Internet can acquire short PI 779 prefixes (e.g., an IPv6 ::/20, an IPv4 /16, etc.) through a 780 registration authority such as the Internet Assigned Numbers 781 Authority (IANA) or a major regional Internet registry. VBRs that 782 connect small enterprise networks (e.g., SOHO networks, MANETs, etc.) 783 to a parent enterprise network can acquire longer PI prefixes through 784 arrangements with a PI prefix delegation vendor. 786 After a VBR receives PI prefixes, it can sub-delegate portions of the 787 prefixes on enterprise-edge interfaces, on child VET interfaces for 788 which it is configured as a VBG and on enterprise-interior interfaces 789 to service directly-attached hosts on the enterprise-interior link. 790 The VBR can also sub-delegate portions of its PI prefixes to 791 requesting routers connected to child enterprise networks. These 792 requesting routers consider their sub-delegated portions of the PI 793 prefix as PA, and consider the delegating routers as their points of 794 connection to a provider network. 796 4.3. VET Border Gateway (VBG) Autoconfiguration 798 VBGs are VBRs that connect VET links configured over child enterprise 799 networks to provider networks via provider-edge interfaces and/or via 800 VET links configured over parent enterprise networks. A VBG may also 801 act as a "half-gateway", in that it may need to forward the packets 802 it receives from neighbors on the VET link via another VBG connected 803 to the same VET link. This arrangement is seen in the IRON [RFC6179] 804 client/server/relay architecture, in which a server "half-gateway" is 805 a VBG that forwards packets with off-link destinations via a relay 806 "half-gateway" VBG that connects the VET link to the provider 807 network. 809 VBGs autoconfigure their provider-edge interfaces in a manner that is 810 specific to the provider connections, and they autoconfigure their 811 VET interfaces that were configured over parent VET links using the 812 VBR autoconfiguration procedures specified in Section 4.2. For each 813 of its VET interfaces connected to child VET links, the VBG 814 initializes the interface the same as for an ordinary VBR (see 815 Section 4.2.1). It then arranges to add one or more of its RLOCs 816 associated with the child VET link to the PRL. 818 VBGs configure a DHCP relay/server on VET interfaces connected to 819 child VET links that require DHCP services. VBGs may also engage in 820 an unspecified anycast VBG discovery message exchange if they are 821 configured to do so. Finally, VBGs respond to LLMNR queries for 822 'PRLNAME' on VET interfaces connected to VET links that span child 823 enterprise networks with a distributed management structure. 825 4.4. VET Host Autoconfiguration 827 Nodes that cannot be attached via a VBR's enterprise-edge interface 828 (e.g., nomadic laptops that connect to a home office via a Virtual 829 Private Network (VPN)) can instead be configured for operation as a 830 simple host on the VET link. Each VET host performs the same 831 enterprise interior interfaces RLOC configuration procedures as 832 specified for ERs in Section 4.1. The VET host next performs the 833 same VET interface initialization and PRL discovery procedures as 834 specified for VBRs in Section 4.2, except that it configures its VET 835 interfaces as host interfaces (and not router interfaces). Note also 836 that a node may be configured as a host on some VET interfaces and as 837 an VBR/VBG on other VET interfaces. 839 A VET host may receive non-link-local addresses and/or prefixes to 840 assign to the VET interface via DHCP exchanges and/or through 841 information conveyed in Router Advertisements (RAs). If prefixes are 842 provided, however, there must be assurance that either 1) the VET 843 link will not partition, or 2) that each VET host interface connected 844 to the VET link will configure a unique set of prefixes. VET hosts 845 therefore depend on DHCP and/or RA exchanges to provide only 846 addresses/prefixes that are appropriate for assignment to the VET 847 interface according to these specific cases, and depend on the VBGs 848 within the enterprise keeping track of which addresses/prefixes were 849 assigned to which hosts. 851 When the VET host solicits a DHCP-assigned EID address/prefix over a 852 (non-multicast) VET interface, it maps the DHCP relay/server 853 multicast inner destination address to the outer RLOC address of a 854 VBG that it has selected as a default router. The VET host then 855 assigns any resulting DHCP-delegated addresses/prefixes to the VET 856 interface for use as the source address of inner packets. The host 857 will subsequently send all packets destined to EID correspondents via 858 a default router on the VET link, and will discover more-specific 859 routes based on any redirect messages it receives. 861 5. Internetworking Operation 863 Following the autoconfiguration procedures specified in Section 4, 864 ERs, VBRs, VBGs, and VET hosts engage in normal internetworking 865 operations as discussed in the following sections. 867 5.1. Routing Protocol Participation 869 ERs engage in any RLOC-based routing protocols over enterprise- 870 interior interfaces to exchange routing information for forwarding IP 871 packets with RLOC addresses. VBRs and VBGs can additionally engage 872 in any EID-based routing protocols over VET, enterprise-edge and 873 provider-edge interfaces to exchange routing information for 874 forwarding inner network layer packets with EID addresses. Note that 875 any EID-based routing instances are separate and distinct from any 876 RLOC-based routing instances. 878 VBR/VBG routing protocol participation on non-multicast VET 879 interfaces uses the NBMA interface model, e.g., in the same manner as 880 for OSPF over NBMA interfaces [RFC5340]. (VBR/VBG routing protocol 881 participation on multicast-capable VET interfaces can alternatively 882 use the standard multicast interface model, but this may result in 883 excessive multicast control message overhead.) 885 VBRs can use the list of VBGs in the PRL (see: Section 4.2.1) as an 886 initial list of neighbors for EID-based routing protocol 887 participation. VBRs can alternatively use the list of VBGs as 888 potential default routers instead of engaging in an EID-based routing 889 protocol instance. In that case, when the VBR forwards a packet via 890 a default router it may receive a redirect message indicating a 891 different VBR as a better next hop. 893 5.1.1. PI Prefix Routing Considerations 895 VBRs that connect large enterprise networks to the global Internet 896 advertise their EID PI prefixes directly into the Internet default- 897 free RIB via the Border Gateway Protocol (BGP) [RFC4271] the same as 898 for a major service provider network. VBRs that connect large 899 enterprise networks to provider networks can instead advertise their 900 EID PI prefixes into the providers' routing system(s) if the provider 901 networks are configured to accept them. 903 VBRs that connect small enterprise networks to provider networks 904 obtain one or more PI prefixes and register the prefixes with a 905 serving VBG in the PI prefix vendor's network (e.g., through a 906 vendor-specific short http(s) transaction). The PI prefix vendor 907 network then acts as a virtual "home" enterprise network that 908 connects its customer small enterprise networks to the Internet 909 routing system. The customer small enterprise networks in turn 910 appear as mobile components of the PI prefix vendor's network, i.e., 911 the customer networks are always "away from home". 913 Further details on routing for PI prefixes is discussed in "The 914 Internet Routing Overlay Network (IRON)" [RFC6179] and "Fib 915 Suppression with Virtual Aggregation" [I-D.ietf-grow-va]. 917 5.2. Default Route Configuration and Selection 919 Configuration of default routes in the presence of VET interfaces 920 must be carefully coordinated according to the inner and outer 921 network protocols. If the inner and outer protocols are different 922 (e.g., IPv6 within IPv4) then default routes of the inner protocol 923 version can be configured with next-hops corresponding to default 924 routers on a VET interface while default routes of the outer protocol 925 version can be configured with next-hops corresponding to default 926 routers on an underlying interface. 928 If the inner and outer protocols are the same (e.g., IPv4 within 929 IPv4), care must be taken in setting the default route to avoid 930 ambiguity. For example, if default routes are configured on the VET 931 interface then more-specific routes could be configured on underlying 932 interfaces to avoid looping. In a preferred method, however, 933 multiple default routes can be configured with some having next-hops 934 corresponding to (EID-based) default routers on VET interfaces and 935 others having next-hops corresponding to (RLOC-based) default routers 936 on underlying interfaces. In that case, special next-hop 937 determination rules must be used (see: Section 5.4). 939 5.3. Address Selection 941 When permitted by policy and supported by enterprise-interior 942 routing, VET nodes can avoid encapsulation through communications 943 that directly invoke the outer IP protocol using RLOC addresses 944 instead of EID addresses for end-to-end communications. For example, 945 an enterprise network that provides native IPv4 intra-enterprise 946 services can provide continued support for native IPv4 communications 947 even when encapsulated IPv6 services are available for inter- 948 enterprise communications. In other enterprise network scenarios, 949 the use of EID-based communications (i.e., instead of RLOC-based 950 communications) may be necessary and/or beneficial to support address 951 scaling, transparent Network Address Translator (NAT) traversal, 952 security domain separation, site multihoming, traffic engineering, 953 etc. . 955 VET nodes can use source address selection rules (e.g., based on name 956 service information) to determine whether to use EID-based or RLOC- 957 based addressing. The remainder of this section discusses 958 internetworking operation for EID-based communications using the VET 959 interface abstraction. 961 5.4. Next Hop Determination 963 VET nodes perform normal next-hop determination via longest prefix 964 match, and send packets according to the most-specific matching entry 965 in the FIB. If the FIB entry has multiple next-hop addresses, the 966 VBR selects the next-hop with the best metric value. If multiple 967 next hops have the same metric value, the VET node can use Equal Cost 968 Multi Path (ECMP) to forward different flows via different next-hop 969 addresses, where flows are determined, e.g., by computing a hash of 970 the inner packet's source address, destination address and flow label 971 fields. 973 If the VET node has multiple default routes of the same inner and 974 outer protocol versions, with some corresponding to EID-based default 975 routers and others corresponding to RLOC-based default routers, it 976 must perform source address based selection of a default route. In 977 particular, if the packet's source address is taken from an EID 978 prefix the VET node selects a default route configured over the VET 979 interface; otherwise, it selects a default route configured over an 980 underlying interface. 982 As a last resort when there is no matching entry in the FIB (i.e., 983 not even default), VET nodes can discover neighbors within the 984 enterprise network through on-demand name service queries for the EID 985 prefix taken from a packet's destination address (or, by some other 986 inner address to outer address mapping mechanism). For example, for 987 the IPv6 destination address '2001:DB8:1:2::1' and 'PRLNAME' 988 "isatapv2.example.com" the VET node can perform a name service lookup 989 for the domain name: 990 '0.0.1.0.0.0.8.b.d.0.1.0.0.2.ip6.isatapv2.example.com'. 992 Name-service lookups in enterprise networks with a centralized 993 management structure use an infrastructure-based service, e.g., an 994 enterprise-local DNS. Name-service lookups in enterprise networks 995 with a distributed management structure and/or that lack an 996 infrastructure-based name service instead use LLMNR over the VET 997 interface. 999 When LLMNR is used, the VBR that performs the lookup sends an LLMNR 1000 query (with the prefix taken from the IP destination address encoded 1001 in dotted-nibble format as shown above) and accepts the union of all 1002 replies it receives from neighbors on the VET interface. When a VET 1003 node receives an LLMNR query, it responds to the query IFF it 1004 aggregates an IP prefix that covers the prefix in the query. If the 1005 name-service lookup succeeds, it will return RLOC addresses (e.g., in 1006 DNS A records) that correspond to neighbors to which the VET node can 1007 forward packets. 1009 5.5. VET Interface Encapsulation/Decapsulation 1011 VET interfaces encapsulate inner network layer packets in any 1012 necessary mid-layer headers and trailers (e.g., IPsec [RFC4301], 1013 etc.) followed by a SEAL header (if necessary) followed by an outer 1014 UDP header (if necessary) followed by an outer IP header. Following 1015 all encapsulations, the VET interface submits the encapsulated packet 1016 to the outer IP forwarding engine for transmission on an underlying 1017 interface. The following sections provide further details on 1018 encapsulation: 1020 5.5.1. Inner Network Layer Protocol 1022 The inner network layer protocol sees the VET interface as an 1023 ordinary network interface, and views the outer network layer 1024 protocol as an ordinary L2 transport. The inner- and outer network 1025 layer protocol types are mutually independent and can be used in any 1026 combination. Inner network layer protocol types include IPv6 1027 [RFC2460] and IPv4 [RFC0791], but they may also include non-IP 1028 protocols such as OSI/CLNP [RFC0994][RFC1070][RFC4548]. 1030 5.5.2. Mid-Layer Encapsulation 1032 VET interfaces that use mid-layer encapsulations encapsulate each 1033 inner network layer packet in any mid-layer headers and trailers as 1034 the first step in a potentially multi-layer encapsulation. 1036 5.5.3. SEAL Encapsulation 1038 Following any mid-layer encapsulations, VET interfaces that use SEAL 1039 add a SEAL header as specified in [I-D.templin-intarea-seal]. 1040 Inclusion of a SEAL header must be applied uniformly between all 1041 neighbors on the VET link. Note that when a VET interface sends a 1042 SEAL-encapsulated packet to a neighbor that does not use SEAL 1043 encapsulation, it may receive an ICMP "port unreachable" or "protocol 1044 unreachable" depending on whether/not an outer UDP header is 1045 included. 1047 SEAL encapsulation is used on VET links that require path MTU 1048 mitigations due to encapsulation overhead and/or mechanisms for VET 1049 interface neighbor coordination. When SEAL encapsulation is used, 1050 the VET interface sets the 'Next Header' value in the SEAL header to 1051 the IP protocol number associated with either the mid-layer 1052 encapsulation or the IP protocol number of the inner network layer 1053 (if no mid-layer encapsulation is used). The VET interface sets the 1054 other fields in the SEAL header as specified in 1055 [I-D.templin-intarea-seal]. 1057 5.5.4. Outer UDP Header Encapsulation 1059 Following any mid-layer and/or SEAL encapsulations, VET interfaces 1060 that use UDP encapsulation add an outer UDP header. Inclusion of an 1061 outer UDP header must be applied uniformly between all neighbors on 1062 the VET link. Note that when a VET interface sends a UDP- 1063 encapsulated packet to a neighbor that does not recognize the UDP 1064 port number, it may receive an ICMP "port unreachable" message. 1066 VET interfaces use UDP encapsulation on VET links that may traverse 1067 NATs and/or legacy networking gear (e.g., Equal Cost MultiPath (ECMP) 1068 routers, Link Aggregation Gateways (LAGs), etc.) that only recognize 1069 well-known network layer protocols. When UDP encapsulation is used, 1070 the VET interface encapsulates the mid-layer packet in an outer UDP 1071 header then sets the UDP port numbers as specified for the outermost 1072 mid-layer protocol (e.g., IPsec [RFC3947][RFC3948], etc.). 1074 When SEAL [I-D.templin-intarea-seal] is used as the outermost mid- 1075 layer protocol, the VET interface maintains per-neighbor local and 1076 remote UDP port numbers. For bidirectional neighbors, the interface 1077 sets the local UDP port number to the value reserved for SEAL and 1078 sets the remote UDP port number to the observed UDP source port 1079 number in packets that it receives from the neighbor. In cases in 1080 which one of the bidirectional neighbors is behind a NAT, this 1081 implies that the one behind the NAT initiates the neighbor 1082 relationship. If both neighbors have a way of knowing that there are 1083 no NATs in the path, then they may select and set port numbers as 1084 described for unidirectional neighbors below. 1086 For unidirectional neighbors, the VET interface sets both the local 1087 and remote UDP port numbers to the value reserved for SEAL, and 1088 additionally selects a small set of dynamic port number values for 1089 use as additional local UDP port numbers. The VET interface then 1090 selects one of this set of local port numbers for the UDP source port 1091 for each inner packet it sends, where the port number is determined 1092 e.g., by a hash calculated over the inner network layer addresses and 1093 inner transport layer port numbers. The VET interface uses a hash 1094 function of its own choosing when selecting a dynamic port number 1095 value, but it should choose a function that provides uniform 1096 distribution between the set of values, and it shoud be consistent in 1097 the manner in which the hash is applied. 1099 Finally, for VET links configured over IPv4 enterprise networks, the 1100 VET interface sets the UDP checksum field to zero. For VET links 1101 configured over IPv6 enterprise networks, considerations for setting 1102 the UDP checksum are discussed in [I-D.ietf-6man-udpzero]. 1104 5.5.5. Outer IP Header Encapsulation 1106 Following any mid-layer, SEAL and/or UDP encapsulations, the VET 1107 interface adds an outer IP header. Outer IP header construction is 1108 the same as specified for ordinary IP encapsulation (e.g., [RFC2003], 1109 [RFC2473], [RFC4213], etc.) except that the "TTL/Hop Limit", "Type of 1110 Service/Traffic Class" and "Congestion Experienced" values in the 1111 inner network layer header are copied into the corresponding fields 1112 in the outer IP header. The VET interface also sets the IP protocol 1113 number to the appropriate value for the first protocol layer within 1114 the encapsulation (e.g., UDP, SEAL, IPsec, etc.). When IPv6 is used 1115 as the outer IP protocol, the VET interface sets the flow label value 1116 in the outer IPv6 header the same as described in 1117 [I-D.carpenter-flow-ecmp]. 1119 5.5.6. Decapsulation 1121 When a VET interface receives an encapsulated packet, it retains the 1122 outer headers and processes the SEAL header as specified in 1123 [I-D.templin-intarea-seal]. 1125 Next, if the packet will be forwarded from the receiving VET 1126 interface into a forwarding VET interface, the VET node copies the 1127 "TTL/Hop Limit", "Type of Service/Traffic Class" and "Congestion 1128 Experienced" values in the outer IP header received on the receiving 1129 VET interface into the corresponding fields in the outer IP header to 1130 be sent over the forwarding VET interface (i.e., the values are 1131 transferred between outer headers and *not* copied from the inner 1132 network layer header). This is true even if the packet is forwarded 1133 out the same VET interface that it arrived on, and necessary to 1134 support diagnostic functions (e.g., traceroute) and avoid looping. 1136 During decapsulation, when the next-hop is via a non-VET interface, 1137 the "Congestion Experienced" value in the outer IP header is copied 1138 into the corresponding field in the inner network layer header. 1140 5.6. Mobility and Multihoming Considerations 1142 VBRs that travel between distinct enterprise networks must either 1143 abandon their PA prefixes that are relative to the "old" network and 1144 obtain PA prefixes relative to the "new" network, or somehow 1145 coordinate with a "home" network to retain ownership of the prefixes. 1146 In the first instance, the VBR would be required to coordinate a 1147 network renumbering event on its attached networks using the new PA 1148 prefixes [RFC4192][RFC5887]. In the second instance, an adjunct 1149 mobility management mechanism is required. 1151 VBRs can retain their PI prefixes as they travel between distinct 1152 network points of attachment as long as they continue to refresh 1153 their PI prefix to RLOC address mappings with their serving VBG as 1154 described in [RFC6179]. (When the VBR moves far from its serving 1155 VBG, it can also select a new VBG in order to maintain optimal 1156 routing.) In this way, VBRs can update their PI prefix to RLOC 1157 mappings in real time and without requiring an adjunct mobility 1158 management mechanism. 1160 The VBGs of a multihomed enterprise network participate in a private 1161 inner network layer routing protocol instance (e.g., via an interior 1162 BGP instance) to accommodate network partitions/merges as well as 1163 intra-enterprise mobility events. 1165 5.7. Neighbor Coordination on VET Interfaces using SEAL 1167 VET interfaces that use SEAL use the SEAL Control Message Protocol 1168 (SCMP) as specified in Section 4.5 of [I-D.templin-intarea-seal] to 1169 coordinate reachability, routing information, and mappings between 1170 the inner and outer network layer protocols. SCMP directly parallels 1171 the IPv6 Neighbor Discovery (ND) [RFC4191][RFC4861] and ICMPv6 1172 [RFC4443] protocols, but operates from within the tunnel and supports 1173 operation for any combinations of inner and outer network layer 1174 protocols. 1176 VET and SEAL are specifically designed for encapsulation of inner 1177 network layer payloads over outer IPv4 and IPv6 networks as a link 1178 layer. VET interfaces that use SCMP therefore require a new Source/ 1179 Target Link-Layer Address Option (S/TLLAO) format that encapsulates 1180 IPv4 addresses as shown in Figure 2 and IPv6 addresses as shown in 1181 Figure 3: 1183 0 1 2 3 1184 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 1185 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1186 | Type = 2 | Length = 1 | Reserved | 1187 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1188 | IPv4 address (bytes 0 thru 3) | 1189 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1191 Figure 2: SCMP S/TLLAO Option for IPv4 RLOCs 1193 0 1 2 3 1194 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 1195 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1196 | Type = 2 | Length = 3 | Reserved | 1197 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1198 | Reserved | 1199 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1200 | IPv6 address (bytes 0 thru 3) | 1201 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1202 | IPv6 address (bytes 4 thru 7) | 1203 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1204 | IPv6 address (bytes 8 thru 11) | 1205 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1206 | IPv6 address (bytes 12 thru 15) | 1207 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1209 Figure 3: SCMP S/TLLAO Option for IPv6 RLOCs 1211 In addition, VET interfaces that use SCMP use a modified version of 1212 the Route Information Option (RIO) (see: [RFC4191]) formatted as 1213 shown in Figure 4: 1215 0 1 2 3 1216 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 1217 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1218 | Type = 24 | Length | Prefix Length | AF |Prf|Resvd| 1219 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1220 | Route Lifetime | 1221 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1222 | Prefix (Variable Length) | 1223 . . 1224 . . 1225 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1227 Figure 4: SCMP Route Information Option Format 1229 In this modified format, the VET interface sets the Route Lifetime 1230 and Prefix fields in the RIO option the same as specified in 1232 [RFC4191]. It then sets the fields in the header as follows: 1234 o the 'Type', 'Prf', and 'Resvd' fields are set the same as 1235 specified in [RFC4191]. 1237 o the 'Length' field is set to 1, 2, or 3 as specified in [RFC4191]. 1238 It is instead set to 4 if the 'Prefix Length' is greater than 128 1239 and set to 5 if the 'Prefix Length' is greater than 192 (e.g., in 1240 order to accommodate longer prefixes of non-IP protocols). 1242 o the 'Prefix Length' field ranges from 0 to 255. The 'Prefix' 1243 field is 0, 8, 16, 24 or 32 octets depending on the Length, and 1244 the embedded prefix MAY be up to 255 bits in length. 1246 o bits 24 - 26 are used to contain an 'Address Family (AF)' value 1247 that indicates the embedded prefix protocol type. This document 1248 defines the following values for AF: 1250 * 000 - IPv4 1252 * 001 - IPv6 1254 * 010 - OSI/CLNP NSAP 1256 The following subsections discuss VET interface neighbor coordination 1257 using SCMP: 1259 5.7.1. Router Discovery 1261 VET hosts and VBRs can send SCMP Router Solicitation (SRS) messages 1262 to one or more VBGs in the PRL to receive solicited SCMP Router 1263 Advertisements (SRAs). 1265 When an VBG receives an SRS message on a VET interface, it prepares a 1266 solicited SRA message. The SRA includes Router Lifetimes, Default 1267 Router Preferences, PIOs and any other options/parameters that the 1268 VBG is configured to include. If necessary, the VBG also includes 1269 Route Information Options (RIOs) formatted as specified above. 1271 The VBG finally includes one or more SLLAOs formatted as specified 1272 above that encode the IPv6 and/or IPv4 RLOC unicast addresses of its 1273 own enterprise-interior interfaces or the enterprise-interior 1274 interfaces of other nearby VBGs. 1276 5.7.2. Neighbor Unreachability Detection 1278 VET nodes perform Neighbor Unreachability Detection (NUD) on VET 1279 interface neighbors by monitoring hints of forward progress enabled 1280 by SEAL mechanisms as evidence that a neighbor is reachable. First, 1281 when data packets are flowing, the VET node can periodically set the 1282 A bit in the SEAL header of data packets to elicit SCMP responses 1283 from the neighbor. Secondly, when no data packets are flowing, the 1284 VET node can send periodic probes such as SCMP Neighbor Solicitation 1285 (SNS) messages for the same purpose. 1287 Responsiveness to routing changes is directly related to the delay in 1288 detecting that a neighbor has gone unreachable. In order to provide 1289 responsiveness comparable to dynamic routing protocols, a reasonably 1290 short neighbor reachable time (e.g., 5sec) SHOULD be used. 1292 Additionally, a VET node may receive outer IP ICMP "Destination 1293 Unreachable; net / host unreachable" messages from an ER on the path 1294 indicating that the path to a neighbor may be failing. The node 1295 SHOULD first check the packet-in-error to obtain reasonable assurance 1296 that the ICMP message is authentic. If the node receives excessive 1297 ICMP unreachable errors through multiple RLOCs associated with the 1298 same FIB entry, it SHOULD delete the FIB entry and allow subsequent 1299 packets to flow through a different route (e.g., a default route with 1300 a VBG as the next hop). 1302 5.7.3. Redirect Function 1304 [[ UNDER CONSTRUCTION ]] 1306 This section will be updated to reflect the new technique known as 1307 "Predirection" as discussed for ISATAP updates in Section 5.14. 1309 [[ UNDER CONSTRUCTION ]] 1311 5.8. Neighbor Coordination on VET Interfaces using IPsec 1313 VET interfaces that use IPsec encapsulation use the Internet Key 1314 Exchange protocol, version 2 (IKEv2) [RFC4306] to manage security 1315 association setup and maintenance. IKEv2 provides a logical 1316 equivalent of the SCMP in terms of VET interface neighbor 1317 coordinations; for example, IKEv2 also provides mechanisms for 1318 redirection [RFC5685] and mobility [RFC4555]. 1320 IPsec additionally provides an extended Identification field and 1321 integrity check vector; these features allow IPsec to utilize outer 1322 IP fragmentation and reassembly with less risk of exposure to data 1323 corruption due to reassembly misassociations. On the other hand, 1324 IPsec entails the use of symmetric security associations and hence 1325 may not be appropriate to all enterprise network use cases. 1327 5.9. Multicast 1329 5.9.1. Multicast over (Non)Multicast Enterprise Networks 1331 Whether or not the underlying enterprise network supports a native 1332 multicasting service, the VET node can act as an inner network layer 1333 IGMP/MLD proxy [RFC4605] on behalf of its attached edge networks and 1334 convey its multicast group memberships over the VET interface to a 1335 VBG acting as a multicast router. Its inner network layer multicast 1336 transmissions will therefore be encapsulated in outer headers with 1337 the unicast address of the VBG as the destination. 1339 5.9.2. Multicast Over Multicast-Capable Enterprise Networks 1341 In multicast-capable enterprise networks, ERs provide an enterprise- 1342 wide multicasting service (e.g., Simplified Multicast Forwarding 1343 (SMF) [I-D.ietf-manet-smf], Protocol Independent Multicast (PIM) 1344 routing, Distance Vector Multicast Routing Protocol (DVMRP) routing, 1345 etc.) over their enterprise-interior interfaces such that outer IP 1346 multicast messages of site-scope or greater scope will be propagated 1347 across the enterprise network. For such deployments, VET nodes can 1348 optionally provide a native inner multicast/broadcast capability over 1349 their VET interfaces through mapping of the inner multicast address 1350 space to the outer multicast address space. In that case, operation 1351 of link-or greater-scoped inner multicasting services (e.g., a link- 1352 scoped neighbor discovery protocol) over the VET interface is 1353 available, but SHOULD be used sparingly to minimize enterprise-wide 1354 flooding. 1356 VET nodes encapsulate inner multicast messages sent over the VET 1357 interface in any mid-layer headers (e.g., UDP, SEAL, IPsec, etc.) 1358 followed by an outer IP header with a site-scoped outer IP multicast 1359 address as the destination. For the case of IPv6 and IPv4 as the 1360 inner/outer protocols (respectively), [RFC2529] provides mappings 1361 from the IPv6 multicast address space to a site-scoped IPv4 multicast 1362 address space (for other encapsulations, mappings are established 1363 through administrative configuration or through an unspecified 1364 alternate static mapping). 1366 Multicast mapping for inner multicast groups over outer IP multicast 1367 groups can be accommodated, e.g., through VET interface snooping of 1368 inner multicast group membership and routing protocol control 1369 messages. To support inner-to-outer multicast address mapping, the 1370 VET interface acts as a virtual outer IP multicast host connected to 1371 its underlying interfaces. When the VET interface detects that an 1372 inner multicast group joins or leaves, it forwards corresponding 1373 outer IP multicast group membership reports on an underlying 1374 interface over which the VET interface is configured. If the VET 1375 node is configured as an outer IP multicast router on the underlying 1376 interfaces, the VET interface forwards locally looped-back group 1377 membership reports to the outer IP multicast routing process. If the 1378 VET node is configured as a simple outer IP multicast host, the VET 1379 interface instead forwards actual group membership reports (e.g., 1380 IGMP messages) directly over an underlying interface. 1382 Since inner multicast groups are mapped to site-scoped outer IP 1383 multicast groups, the VET node MUST ensure that the site-scoped outer 1384 IP multicast messages received on the underlying interfaces for one 1385 VET interface do not "leak out" to the underlying interfaces of 1386 another VET interface. This is accommodated through normal site- 1387 scoped outer IP multicast group filtering at enterprise network 1388 boundaries. 1390 5.10. Service Discovery 1392 VET nodes can perform enterprise-wide service discovery using a 1393 suitable name-to-address resolution service. Examples of flooding- 1394 based services include the use of LLMNR [RFC4795] over the VET 1395 interface or multicast DNS (mDNS) [I-D.cheshire-dnsext-multicastdns] 1396 over an underlying interface. More scalable and efficient service 1397 discovery mechanisms (e.g., anycast) are for further study. 1399 5.11. VET Link Partitioning 1401 A VET link can be partitioned into multiple distinct logical 1402 groupings. In that case, each partition configures its own distinct 1403 'PRLNAME' (e.g., 'isatapv2.zone1.example.com', 1404 'isatapv2.zone2.example.com', etc.). 1406 VBGs can further create multiple IP subnets within a partition, e.g., 1407 by sending SRAs with PIOs containing different IP prefixes to 1408 different groups of VET hosts. VBGs can identify subnets, e.g., by 1409 examining RLOC prefixes, observing the enterprise-interior interfaces 1410 over which SRSs are received, etc. 1412 In the limiting case, VBGs can advertise a unique set of IP prefixes 1413 to each VET host such that each host belongs to a different subnet 1414 (or set of subnets) on the VET interface. 1416 5.12. VBG Prefix State Recovery 1418 VBGs retain explicit state that tracks the inner network layer 1419 prefixes delegated to VBRs connected to the VET link, e.g., so that 1420 packets are delivered to the correct VBRs. When a VBG loses some or 1421 all of its state (e.g., due to a power failure), client VBRs must 1422 refresh the VBG's state so that packets can be forwarded over correct 1423 routes. 1425 5.13. Legacy ISATAP Services 1427 VBGs can support legacy ISATAP services according to the 1428 specifications in [RFC5214]. In particular, VBGs can configure 1429 legacy ISATAP interfaces and VET interfaces over the same sets of 1430 underlying interfaces as long as the PRLs and IPv6 prefixes 1431 associated with the ISATAP/VET interfaces are distinct. 1433 Legacy ISATAP hosts acquire addresses and/or prefixes in the same 1434 manner and using the same mechanisms as described for VET hosts in 1435 Section 4.4 above. 1437 In order to support dynamic on-demand routing on ISATAP interfaces, a 1438 new (and backwards-compatible) approach called "ISATAP Predirection" 1439 is specified in the following sections: 1441 5.14. ISATAP Update 1443 In order to support dynamic on-demand routing on ISATAP interfaces, a 1444 new (and backwards-compatible) approach called "ISATAP Predirection" 1445 is specified in the following sections. This section updates 1446 [RFC5214]. 1448 5.14.1. ISATAP Predirection 1450 Figure 5 depicts a reference ISATAP network topology. The scenario 1451 shows an advertising ISATAP router ('A'), two non-advertising ISATAP 1452 routers ('B', 'D') and two ordinary IPv6 hosts ('C', 'E') in a 1453 typical deployment configuration: 1455 .-(::::::::) 1456 .-(::: IPv6 :::)-. 1457 (:::: Internet ::::) 1458 `-(::::::::::::)-' 1459 `-(::::::)-' 1460 ,-. 1461 ,-----+-/-+--' \+------. 1462 / ,~~~~~~~~~~~~~~~~~, : 1463 / |companion gateway| |. 1464 ,-' '~~~~~~~~~~~~~~~~~' `. 1465 ; +--------------+ ) 1466 : | Router A | / 1467 : | (isatap) | ; 1468 +- +--------------+ -+ 1469 ; fe80::5efe:192.0.2.1 : 1470 | ; 1471 : IPv4 Provider Network -+-' 1472 `-. (PRL: 192.0.2.1) .) 1473 \ _) 1474 `-----+--------)----+'----' 1475 fe80::5efe:192.0.2.2 fe80::5efe:192.0.2.3 .-. 1476 +--------------+ +--------------+ ,-( _)-. 1477 | (isatap) | | (isatap) | .-(_ IPv6 )-. 1478 | Router B | | Router D |--(__Edge Network ) 1479 +--------------+ +--------------+ `-(______)-' 1480 2001:db8::/48 2001:db8:1::/48 | 1481 | 2001:db8:1::1 1482 .-. +-------------+ 1483 ,-( _)-. 2001:db8::1 | IPv6 Host E | 1484 .-(_ IPv6 )-. +-------------+ +-------------+ 1485 (__Edge Network )--| IPv6 Host C | 1486 `-(______)-' +-------------+ 1488 Figure 5: Reference ISATAP Network Topology 1490 With reference to Figure 5, when router 'A' receives an IPv6 packet 1491 on an advertising ISATAP interface that it will forward back out the 1492 same interface, 'A' must arrange to redirect the originating ISATAP 1493 node 'B' to a better next hop ISATAP node 'D' that is closer to the 1494 final destination 'E'. First, however, 'A' must direct 'D' to 1495 establish a forwarding table entry so that it will have a means to 1496 determine that 'B' is authorized to produce packets using a given 1497 source address. This process is accommodated via a unidirectional 1498 reliable exchange in which 'A' first informs 'D', then 'D' informs 1499 'B' via 'A' as a trusted intermediary. 'B' therefore knows that 'D' 1500 will accept the packets it sends as long as 'D' retains the 1501 forwarding table entry. We call this process "predirection", which 1502 stands in contrast to ordinary IPv6 redirection. 1504 Consider the alternative in which 'A' informs both 'B' and 'D' 1505 separately via independent IPv6 Redirect messages (see: [RFC4861]). 1506 In that case, several conditions can occur that could result in 1507 communications failures. First, if 'B' receives the Redirect message 1508 but 'D' does not, subsequent packets sent by 'B' would disappear into 1509 a black hole since 'D' would not have a forwarding table entry to 1510 verify their source addresses. Second, if 'D' receives the Redirect 1511 message but 'B' does not, subsequent packets sent in the reverse 1512 direction by 'D' would be lost. Finally, timing issues surrounding 1513 the establishment and garbage collection of forwarding table entries 1514 at 'B' and 'D' could yield unpredictable behavior. For example, 1515 unless the timing were carefully coordinated through some form of 1516 synchronization loop, there would invariably be instances in which 1517 one node has the correct forwarding table state and the other node 1518 does not resulting in non-deterministic packet loss. 1520 The following subsections discuss the predirection steps that support 1521 the reference operational scenario: 1523 5.14.1.1. 'A' Sends Predirect Forward To 'D' 1525 When 'A' forwards an original IPv6 packet sent by 'B' out the same 1526 ISATAP interface that it arrived on, it sends a "Predirect" message 1527 forward toward 'D' instead of sending a Redirect message back to 'B'. 1528 The Predirect message is simply an ISATAP-specific version of an 1529 ordinary IPv6 Redirect message as depicted in Section 4.5 of 1530 [RFC4861], and is identified by two new backward-compatible bits 1531 taken from the Reserved field as shown in Figure 6: 1533 0 1 2 3 1534 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 1535 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1536 | Type (=137) | Code (=0) | Checksum | 1537 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1538 |I|P| Reserved | 1539 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1540 | | 1541 + + 1542 | | 1543 + Target Address + 1544 | | 1545 + + 1546 | | 1547 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1548 | | 1549 + + 1550 | | 1551 + Destination Address + 1552 | | 1553 + + 1554 | | 1555 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1556 | Options ... 1557 +-+-+-+-+-+-+-+-+-+-+-+- 1559 Figure 6: ISATAP-Specific IPv6 Redirect Message Format 1561 Where the new bits are defined as: 1563 I (1) the "ISATAP" bit. Set to 1 to indicate an ISATAP-specific 1564 Redirect message, and set to 0 to indicate an ordinary IPv6 1565 Redirect message. 1567 P (1) the "Predirect" bit. Set to 1 to indicate a Predirect 1568 message, and set to 0 to indicate a Redirect response to a 1569 Predirect message. (This bit is valid only when the I bit is set 1570 to 1.) 1572 Using this new Predirect message format, 'A' prepares the message in 1573 a similar fashion as for an ordinary ISATAP-encapsulated IPv6 1574 Redirect message as follows: 1576 o the outer IPv4 source address is set to 'A's IPv4 address. 1578 o the outer IPv4 destination address is set to 'D's IPv4 address. 1580 o the inner IPv6 source address is set to 'A's ISATAP link-local 1581 address. 1583 o the inner IPv6 destination address is set to 'D's ISATAP link- 1584 local address. 1586 o the Predirect Target and Destination Addresses are both set to 1587 'B's ISATAP link-local address. 1589 o the Predirect message includes Route Information Options (RIOs) 1590 [RFC4191] that encode an IPv6 prefix taken from 'B's address/ 1591 prefix delegations that covers the IPv6 source address of the 1592 originating IPv6 packet. 1594 o the Predirect message includes a Redirected Header Option (RHO) 1595 that contains at least the header of the originating IPv6 packet. 1597 o the I and P bits in the Predirect message header are both set to 1598 1. 1600 'A' then sends the Predirect message forward to 'D'. 1602 5.14.1.2. 'D' Processes the Predirect and Sends Redirect Back To 'A' 1604 When 'D' receives the Predirect message, it decapsulates the message 1605 according to Section 7.3 of [RFC5214] since the outer IPv4 source 1606 address is a member of the PRL. 1608 'D' then uses the message validation checks specified in Section 8.1 1609 of [RFC4861], except that instead of verifying that the "IP source 1610 address of the Redirect is the same as the current first-hop router 1611 for the specified ICMP Destination Address" (i.e., the 6th 1612 verification check), it accepts the message if the "outer IP source 1613 address of the Predirect is the same as the current first-hop router 1614 for the destination address of the originating IPv6 packet 1615 encapsulated in the RHO". (Note that this represents an ISATAP- 1616 specific adaptation of the verification checks.) Finally, 'D' only 1617 accepts the message if the destination address of the originating 1618 IPv6 packet encapsulated in the RHO is covered by one of its CURRENT 1619 delegated addresses/prefixes (see Section 5.14.4). 1621 'D' then either creates or updates an IPv6 forwarding table entry 1622 with the prefix encoded in the RIO option as the target prefix, and 1623 the IPv6 Target Address of the Predirect message (i.e., 'B's ISATAP 1624 link-local address) as the next hop. 'D' places the entry in the 1625 FILTERING state, then sets/resets a filtering expiration timer value 1626 of 40 seconds. If the filtering timer expires, the node clears the 1627 FILTERING state and deletes the forwarding table entry if it is not 1628 in the FORWARDING state. This suggests that 'D's ISATAP interface 1629 should maintain a private forwarding table separate from the common 1630 IPv6 forwarding table, since the entry must be managed by the ISATAP 1631 interface itself. 1633 After processing the Predirect message and establishing the 1634 forwarding table entry, 'D' prepares an ISATAP Redirect message in 1635 response to the Predirect as follows: 1637 o the outer IPv4 source address is set to 'D's IPv4 address. 1639 o the outer IPv4 destination address is set to 'A's IPv4 address. 1641 o the inner IPv6 source address, is set to 'D's ISATAP link-local 1642 address. 1644 o the inner IPv6 destination address is set to 'A's ISATAP link- 1645 local address. 1647 o the Redirect Target and the Redirect Destination Addresses are 1648 both set to 'D's ISATAP link-local address. 1650 o the Redirect message includes RIOs that encode IPv6 prefixes taken 1651 from 'D's address/prefix delegations that covers the IPv6 1652 destination address of the originating IPv6 packet encapsulated in 1653 the Redirected Header option of the Predirect. 1655 o the Redirect message includes an RHO copied from the corresponding 1656 Predirect message. 1658 o the (I, P) bits in the Redirect message header are set to (1, 0). 1660 'D' then sends the Redirect message to 'A'. 1662 5.14.1.3. 'A' Processes the Redirect then Proxies it Back To 'B' 1664 When 'A' receives the Redirect message, it decapsulates the message 1665 according to Section 7.3 of [RFC5214] since the inner IPv6 source 1666 address embeds the outer IPv4 source address. 1668 'A' next accepts the message only if it satisfies the same message 1669 validation checks specified for Predirects in Section 3.2.4.6.2. 1671 'A' then locates a forwarding table entry that covers the IPv6 source 1672 address of the packet segment in the RHO (i.e., a forwarding table 1673 entry with next hop 'B'), then proxies the Redirect message back 1674 toward 'B'. Without decrementing the IPv6 hop limit in the Redirect 1675 message, 'A' next changes the IPv4 source address of the Redirect 1676 message to its own IPv4 address, changes the IPv4 destination address 1677 to 'B's IPv4 address, changes the IPv6 source address to its own IPv6 1678 link-local address, and changes the IPv6 destination address to 'B's 1679 IPv6 link-local address. 'A' then sends the proxied Redirect message 1680 to 'B'. 1682 5.14.1.4. 'B' Processes The Redirect Message 1684 When 'B' receives the Redirect message, it decapsulates the message 1685 according to Section 7.3 of [RFC5214] since the outer IPv4 source 1686 address is a member of the PRL. 1688 'B' next accepts the message only if it satisfies the same message 1689 validation checks specified for Predirects in Section 3.2.4.6.2. 1691 'B' then either creates or updates an IPv6 forwarding table entry 1692 with the prefix encoded in the RIO option as the target prefix, and 1693 the IPv6 Target Address of the Redirect message (i.e., 'D's ISATAP 1694 link-local address) as the next hop. 'B' places the entry in the 1695 FORWARDING state, then sets/resets a forwarding expiration timer 1696 value of 30 seconds. If the forwarding timer expires, the node 1697 clears the FORWARDING state and deletes the forwarding table entry if 1698 it is not in the FILTERING state. Again, this suggests that 'B's 1699 ISATAP interface should maintain a private forwarding table separate 1700 from the common IPv6 forwarding table, since the entry must be 1701 managed by the ISATAP interface itself. 1703 Now, 'B' has a forwarding table entry in the FORWARDING state, and 1704 'D' has a forwarding table entry in the FILTERING state. Therefore, 1705 'B' may send ordinary IPv6 data packets with destination addresses 1706 covered by 'D's prefix directly to 'D' without involving 'A'. 'D' 1707 will in turn accept the packets since it has a forwarding table entry 1708 authorizing 'B' to source packets from its claimed IPv6 address. 1710 To enable packet forwarding from 'D' directly to 'B', a reverse- 1711 predirection operation is required which is the mirror-image of the 1712 forward-predirection operation described above. Following the 1713 reverse predirection, both 'B' and 'D' will have forwarding table 1714 entries in the "(FORWARDING | FILTERING)" state, and IPv6 packets can 1715 be exchanged bidirectionally without involving 'A'. 1717 5.14.1.5. 'B' Sends Periodic Predirect Messages Forward to 'A' 1719 In order to keep forwarding table entries alive while data packets 1720 are actively flowing, 'B' can periodically send additional Predirect 1721 messages via 'A' to solicit Redirect messages from 'D'. When 'B' 1722 forwards an IPv6 packet via 'D', and the corresponding forwarding 1723 table entry FORWARDING state timer is nearing expiration, 'B' sends 1724 Predirect messages (subject to rate limiting) prepared as follows: 1726 o the outer IPv4 source address is set to 'B's IPv4 address. 1728 o the outer IPv4 destination address is set to 'A's IPv4 address. 1730 o the inner IPv6 source address is set to 'B's ISATAP link-local 1731 address. 1733 o the inner IPv6 destination address is set to 'A's ISATAP link- 1734 local address. 1736 o the Predirect Target and Destination Addresses are both set to 1737 'B's ISATAP link-local address. 1739 o the Predirect message includes RIOs that encode IPv6 prefixes 1740 taken from 'B's address/prefix delegations that cover the IPv6 1741 source address of the originating IPv6 packet. 1743 o the Predirect message includes an RHO that contains at least the 1744 header of the originating IPv6 packet. 1746 o the I and P bits in the Predirect message header are both set to 1747 1. 1749 When 'A' receives the Predirect message, it decapsulates the message 1750 according to Section 7.3 of [RFC5214] since the inner IPv6 source 1751 address embeds the outer IPv4 source address. 1753 'A' next accepts the message only if it satisfies the same message 1754 validation checks specified for Predirects in Section 3.2.4.6.2. 1756 'A' then locates a forwarding table entry that covers the IPv6 1757 destination address of the packet segment in the RHO (in this case, a 1758 forwarding table entry with next hop 'D'). Without decrementing the 1759 IPv6 hop limit in the Redirect message, 'A' next changes the IPv4 1760 source address of the Predirect message to its own IPv4 address, 1761 changes the IPv4 destination address to 'D's IPv4 address, changes 1762 the IPv6 source address to its own IPv6 link-local address, and 1763 changes the IPv6 destination address to 'D's IPv6 link-local address. 1764 'A' then sends the proxied Predirect message to 'D'. When 'D' 1765 receives the proxied message, it processes the message the same as if 1766 it had originated from 'A' as described in Section 3.2.4.6.2. 1768 5.14.2. Scaling Considerations 1770 Figure 5 depicts an ISATAP network topology with only a single 1771 advertising ISATAP router within the provider network. In order to 1772 support larger numbers of non-advertising ISATAP routers and ISATAP 1773 hosts, the provider network can deploy more advertising ISATAP 1774 routers to support load balancing and generally shortest-path 1775 routing. 1777 Such an arrangement requires that the advertising ISATAP routers 1778 participate in an IPv6 routing protocol instance so that IPv6 1779 address/prefix delegations can be mapped to the correct router. The 1780 routing protocol instance can be configured as either a full mesh 1781 topology involving all advertising ISATAP routers, or as a partial 1782 mesh topology with each ISATAP router associating with one or more 1783 companion gateways and a full mesh between companion gateways. 1785 5.14.3. Proxy Chaining 1787 In large ISATAP deployments, there may be many advertising ISATAP 1788 routers, each serving many ISATAP clients (i.e., both non-advertising 1789 routers and simple hosts). The advertising ISATAP routers then 1790 either require full topology knowledge, or a default route to a 1791 companion gateway that does have full topology knowledge. For 1792 example, if Client 'A' connects to advertising ISATAP router 'B', and 1793 Client 'E' connects to advertising ISATAP router 'D', then 'B' and 1794 'D' must either have full topology knowledge or have a default route 1795 to a companion gateway (e.g., 'C') that does. 1797 In that case, when 'A' sends an initial packet to 'E', 'B' generates 1798 a Predirect message toward 'C', which proxies the message toward 'D' 1799 which finally proxies the message toward 'E'. 1801 In the reverse direction, when 'E' sends a Redirect response message 1802 to 'A', it first sends the message to 'D', which proxies the message 1803 toward 'C', which proxies the message toward 'B', which finally 1804 proxies the message toward 'A'. 1806 5.14.4. Mobility 1808 An ISATAP router 'A' can configure both a non-advertising ISATAP 1809 interface on a provider network and an advertising ISATAP interface 1810 on an edge network. In that case, 'A' can service ISATAP clients 1811 (i.e. both non-advertising routers and simple hosts) within the edge 1812 network by acting as a DHCPv6 relay. When a client 'B' in the edge 1813 network that has obtained IPv6 addresses/prefixes moves to a 1814 different edge network, however, 'B' can release its address/prefix 1815 delegations via 'A' and re-establish them via a different ISATAP 1816 router 'C' in the new edge network. 1818 When 'B' releases its address/prefix delegations via 'A', 'A' marks 1819 the IPv6 forwarding table entries that cover the addresses/prefixes 1820 as DEPARTED (i.e., it clears the CURRENT state). 'A' therefore 1821 ceases to respond to Predirect messages correlated with the DEPARTED 1822 entries, and also schedules a garbage-collection timer of 60 seconds, 1823 after which it deletes the DEPARTED entries. 1825 When 'A' receives IPv6 packets destined to an address covered by the 1826 DEPARTED IPv6 forwarding table entries, it forwards them to the last- 1827 known edge network link-layer address of 'B' as a means for avoiding 1828 mobility-related packet loss during routing changes. Eventually, 1829 correspondents will receive new Redirect messages from the network to 1830 discover that 'B' is now associated with 'C'. 1832 Note that this mobility management method works the same way when the 1833 edge networks comprise native IPv6 links (i.e., and not just for 1834 ISATAP links), however any IPv6 packets forwarded by 'A' via an IPv6 1835 forwarding table entry in the DEPARTED state may be lost if the 1836 mobile node moves off-link with respect to its previous edge network 1837 point of attachment. This should not be a problem for large links 1838 (e.g., large cellular network deployments, large ISP networks, etc.) 1839 in which all/most mobility events are intra-link. 1841 6. IANA Considerations 1843 There are no IANA considerations for this document. 1845 7. Security Considerations 1847 Security considerations for MANETs are found in [RFC2501]. 1849 The security considerations found in 1850 [RFC2529][RFC5214][I-D.nakibly-v6ops-tunnel-loops] also apply to VET. 1852 SEND [RFC3971] and/or IPsec [RFC4301] can be used in environments 1853 where attacks on the neighbor coordination protocol are possible. 1854 SEAL [I-D.templin-intarea-seal] provides a per-packet identification 1855 that can be used to detect source address spoofing. 1857 Rogue neighbor coordination messages with spoofed RLOC source 1858 addresses can consume network resources and cause VET nodes to 1859 perform extra work. Nonetheless, VET nodes SHOULD NOT "blacklist" 1860 such RLOCs, as that may result in a denial of service to the RLOCs' 1861 legitimate owners. 1863 VBRs and VBGs observe the recommendations for network ingress 1864 filtering [RFC2827]. 1866 8. Related Work 1868 Brian Carpenter and Cyndi Jung introduced the concept of intra-site 1869 automatic tunneling in [RFC2529]; this concept was later called: 1870 "Virtual Ethernet" and investigated by Quang Nguyen under the 1871 guidance of Dr. Lixia Zhang. Subsequent works by these authors and 1872 their colleagues have motivated a number of foundational concepts on 1873 which this work is based. 1875 Telcordia has proposed DHCP-related solutions for MANETs through the 1876 CECOM MOSAIC program. 1878 The Naval Research Lab (NRL) Information Technology Division uses 1879 DHCP in their MANET research testbeds. 1881 Security concerns pertaining to tunneling mechanisms are discussed in 1882 [I-D.ietf-v6ops-tunnel-security-concerns]. 1884 Default router and prefix information options for DHCPv6 are 1885 discussed in [I-D.droms-dhc-dhcpv6-default-router]. 1887 An automated IPv4 prefix delegation mechanism is proposed in 1888 [I-D.ietf-dhc-subnet-alloc]. 1890 RLOC prefix delegation for enterprise-edge interfaces is discussed in 1891 [I-D.clausen-manet-autoconf-recommendations]. 1893 MANET link types are discussed in [I-D.clausen-manet-linktype]. 1895 The LISP proposal [I-D.ietf-lisp] examines encapsulation/ 1896 decapsulation issues and other aspects of tunneling. 1898 Various proposals within the IETF have suggested similar mechanisms. 1900 9. Acknowledgements 1902 The following individuals gave direct and/or indirect input that was 1903 essential to the work: Jari Arkko, Teco Boot, Emmanuel Bacelli, Fred 1904 Baker, James Bound, Scott Brim, Brian Carpenter, Thomas Clausen, 1905 Claudiu Danilov, Chris Dearlove, Remi Despres, Gert Doering, Ralph 1906 Droms, Washam Fan, Dino Farinacci, Vince Fuller, Thomas Goff, David 1907 Green, Joel Halpern, Bob Hinden, Sascha Hlusiak, Sapumal Jayatissa, 1908 Dan Jen, Darrel Lewis, Tony Li, Joe Macker, David Meyer, Gabi 1909 Nakibly, Thomas Narten, Pekka Nikander, Dave Oran, Alexandru 1910 Petrescu, Mark Smith, John Spence, Jinmei Tatuya, Dave Thaler, Mark 1911 Townsley, Ole Troan, Michaela Vanderveen, Robin Whittle, James 1912 Woodyatt, Lixia Zhang, and others in the IETF AUTOCONF and MANET 1913 working groups. Many others have provided guidance over the course 1914 of many years. 1916 10. Contributors 1918 The following individuals have contributed to this document: 1920 Eric Fleischman (eric.fleischman@boeing.com) 1921 Thomas Henderson (thomas.r.henderson@boeing.com) 1922 Steven Russert (steven.w.russert@boeing.com) 1923 Seung Yi (seung.yi@boeing.com) 1925 Ian Chakeres (ian.chakeres@gmail.com) contributed to earlier versions 1926 of the document. 1928 Jim Bound's foundational work on enterprise networks provided 1929 significant guidance for this effort. We mourn his loss and honor 1930 his contributions. 1932 11. References 1934 11.1. Normative References 1936 [I-D.templin-intarea-seal] 1937 Templin, F., "The Subnetwork Encapsulation and Adaptation 1938 Layer (SEAL)", draft-templin-intarea-seal-28 (work in 1939 progress), February 2011. 1941 [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, 1942 September 1981. 1944 [RFC0792] Postel, J., "Internet Control Message Protocol", STD 5, 1945 RFC 792, September 1981. 1947 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1948 Requirement Levels", BCP 14, RFC 2119, March 1997. 1950 [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", 1951 RFC 2131, March 1997. 1953 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 1954 (IPv6) Specification", RFC 2460, December 1998. 1956 [RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: 1957 Defeating Denial of Service Attacks which employ IP Source 1958 Address Spoofing", BCP 38, RFC 2827, May 2000. 1960 [RFC3118] Droms, R. and W. Arbaugh, "Authentication for DHCP 1961 Messages", RFC 3118, June 2001. 1963 [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., 1964 and M. Carney, "Dynamic Host Configuration Protocol for 1965 IPv6 (DHCPv6)", RFC 3315, July 2003. 1967 [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic 1968 Host Configuration Protocol (DHCP) version 6", RFC 3633, 1969 December 2003. 1971 [RFC3971] Arkko, J., Kempf, J., Zill, B., and P. Nikander, "SEcure 1972 Neighbor Discovery (SEND)", RFC 3971, March 2005. 1974 [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", 1975 RFC 3972, March 2005. 1977 [RFC4191] Draves, R. and D. Thaler, "Default Router Preferences and 1978 More-Specific Routes", RFC 4191, November 2005. 1980 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 1981 Architecture", RFC 4291, February 2006. 1983 [RFC4443] Conta, A., Deering, S., and M. Gupta, "Internet Control 1984 Message Protocol (ICMPv6) for the Internet Protocol 1985 Version 6 (IPv6) Specification", RFC 4443, March 2006. 1987 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 1988 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 1989 September 2007. 1991 [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless 1992 Address Autoconfiguration", RFC 4862, September 2007. 1994 [RFC5342] Eastlake, D., "IANA Considerations and IETF Protocol Usage 1995 for IEEE 802 Parameters", BCP 141, RFC 5342, 1996 September 2008. 1998 11.2. Informative References 2000 [CATENET] Pouzin, L., "A Proposal for Interconnecting Packet 2001 Switching Networks", May 1974. 2003 [I-D.carpenter-flow-ecmp] 2004 Carpenter, B. and S. Amante, "Using the IPv6 flow label 2005 for equal cost multipath routing and link aggregation in 2006 tunnels", draft-carpenter-flow-ecmp-03 (work in progress), 2007 October 2010. 2009 [I-D.cheshire-dnsext-multicastdns] 2010 Cheshire, S. and M. Krochmal, "Multicast DNS", 2011 draft-cheshire-dnsext-multicastdns-14 (work in progress), 2012 February 2011. 2014 [I-D.clausen-manet-autoconf-recommendations] 2015 Clausen, T. and U. Herberg, "MANET Router Configuration 2016 Recommendations", 2017 draft-clausen-manet-autoconf-recommendations-00 (work in 2018 progress), February 2009. 2020 [I-D.clausen-manet-linktype] 2021 Clausen, T., "The MANET Link Type", 2022 draft-clausen-manet-linktype-00 (work in progress), 2023 October 2008. 2025 [I-D.droms-dhc-dhcpv6-default-router] 2026 Droms, R. and T. Narten, "Default Router and Prefix 2027 Advertisement Options for DHCPv6", 2028 draft-droms-dhc-dhcpv6-default-router-00 (work in 2029 progress), March 2009. 2031 [I-D.ietf-6man-udpzero] 2032 Fairhurst, G. and M. Westerlund, "IPv6 UDP Checksum 2033 Considerations", draft-ietf-6man-udpzero-02 (work in 2034 progress), October 2010. 2036 [I-D.ietf-dhc-subnet-alloc] 2037 Johnson, R., Kumarasamy, J., Kinnear, K., and M. Stapp, 2038 "Subnet Allocation Option", draft-ietf-dhc-subnet-alloc-11 2039 (work in progress), May 2010. 2041 [I-D.ietf-grow-va] 2042 Francis, P., Xu, X., Ballani, H., Jen, D., Raszuk, R., and 2043 L. Zhang, "FIB Suppression with Virtual Aggregation", 2044 draft-ietf-grow-va-04 (work in progress), February 2011. 2046 [I-D.ietf-lisp] 2047 Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, 2048 "Locator/ID Separation Protocol (LISP)", 2049 draft-ietf-lisp-10 (work in progress), March 2011. 2051 [I-D.ietf-manet-smf] 2052 Macker, J. and S. Team, "Simplified Multicast Forwarding", 2053 draft-ietf-manet-smf-11 (work in progress), March 2011. 2055 [I-D.ietf-v6ops-tunnel-security-concerns] 2056 Krishnan, S., Thaler, D., and J. Hoagland, "Security 2057 Concerns With IP Tunneling", 2058 draft-ietf-v6ops-tunnel-security-concerns-04 (work in 2059 progress), October 2010. 2061 [I-D.jen-apt] 2062 Jen, D., Meisel, M., Massey, D., Wang, L., Zhang, B., and 2063 L. Zhang, "APT: A Practical Transit Mapping Service", 2064 draft-jen-apt-01 (work in progress), November 2007. 2066 [I-D.nakibly-v6ops-tunnel-loops] 2067 Nakibly, G. and F. Templin, "Routing Loop Attack using 2068 IPv6 Automatic Tunnels: Problem Statement and Proposed 2069 Mitigations", draft-nakibly-v6ops-tunnel-loops-03 (work in 2070 progress), August 2010. 2072 [IEN48] Cerf, V., "The Catenet Model for Internetworking", 2073 July 1978. 2075 [RASADV] Microsoft, "Remote Access Server Advertisement (RASADV) 2076 Protocol Specification", October 2008. 2078 [RFC0994] International Organization for Standardization (ISO) and 2079 American National Standards Institute (ANSI), "Final text 2080 of DIS 8473, Protocol for Providing the Connectionless- 2081 mode Network Service", RFC 994, March 1986. 2083 [RFC1035] Mockapetris, P., "Domain names - implementation and 2084 specification", STD 13, RFC 1035, November 1987. 2086 [RFC1070] Hagens, R., Hall, N., and M. Rose, "Use of the Internet as 2087 a subnetwork for experimentation with the OSI network 2088 layer", RFC 1070, February 1989. 2090 [RFC1122] Braden, R., "Requirements for Internet Hosts - 2091 Communication Layers", STD 3, RFC 1122, October 1989. 2093 [RFC1753] Chiappa, J., "IPng Technical Requirements Of the Nimrod 2094 Routing and Addressing Architecture", RFC 1753, 2095 December 1994. 2097 [RFC1918] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and 2098 E. Lear, "Address Allocation for Private Internets", 2099 BCP 5, RFC 1918, February 1996. 2101 [RFC1955] Hinden, R., "New Scheme for Internet Routing and 2102 Addressing (ENCAPS) for IPNG", RFC 1955, June 1996. 2104 [RFC2003] Perkins, C., "IP Encapsulation within IP", RFC 2003, 2105 October 1996. 2107 [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor 2108 Extensions", RFC 2132, March 1997. 2110 [RFC2473] Conta, A. and S. Deering, "Generic Packet Tunneling in 2111 IPv6 Specification", RFC 2473, December 1998. 2113 [RFC2491] Armitage, G., Schulter, P., Jork, M., and G. Harter, "IPv6 2114 over Non-Broadcast Multiple Access (NBMA) networks", 2115 RFC 2491, January 1999. 2117 [RFC2501] Corson, M. and J. Macker, "Mobile Ad hoc Networking 2118 (MANET): Routing Protocol Performance Issues and 2119 Evaluation Considerations", RFC 2501, January 1999. 2121 [RFC2529] Carpenter, B. and C. Jung, "Transmission of IPv6 over IPv4 2122 Domains without Explicit Tunnels", RFC 2529, March 1999. 2124 [RFC2775] Carpenter, B., "Internet Transparency", RFC 2775, 2125 February 2000. 2127 [RFC3819] Karn, P., Bormann, C., Fairhurst, G., Grossman, D., 2128 Ludwig, R., Mahdavi, J., Montenegro, G., Touch, J., and L. 2129 Wood, "Advice for Internet Subnetwork Designers", BCP 89, 2130 RFC 3819, July 2004. 2132 [RFC3927] Cheshire, S., Aboba, B., and E. Guttman, "Dynamic 2133 Configuration of IPv4 Link-Local Addresses", RFC 3927, 2134 May 2005. 2136 [RFC3947] Kivinen, T., Swander, B., Huttunen, A., and V. Volpe, 2137 "Negotiation of NAT-Traversal in the IKE", RFC 3947, 2138 January 2005. 2140 [RFC3948] Huttunen, A., Swander, B., Volpe, V., DiBurro, L., and M. 2141 Stenberg, "UDP Encapsulation of IPsec ESP Packets", 2142 RFC 3948, January 2005. 2144 [RFC4192] Baker, F., Lear, E., and R. Droms, "Procedures for 2145 Renumbering an IPv6 Network without a Flag Day", RFC 4192, 2146 September 2005. 2148 [RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast 2149 Addresses", RFC 4193, October 2005. 2151 [RFC4213] Nordmark, E. and R. Gilligan, "Basic Transition Mechanisms 2152 for IPv6 Hosts and Routers", RFC 4213, October 2005. 2154 [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway 2155 Protocol 4 (BGP-4)", RFC 4271, January 2006. 2157 [RFC4301] Kent, S. and K. Seo, "Security Architecture for the 2158 Internet Protocol", RFC 4301, December 2005. 2160 [RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", 2161 RFC 4306, December 2005. 2163 [RFC4548] Gray, E., Rutemiller, J., and G. Swallow, "Internet Code 2164 Point (ICP) Assignments for NSAP Addresses", RFC 4548, 2165 May 2006. 2167 [RFC4555] Eronen, P., "IKEv2 Mobility and Multihoming Protocol 2168 (MOBIKE)", RFC 4555, June 2006. 2170 [RFC4605] Fenner, B., He, H., Haberman, B., and H. Sandick, 2171 "Internet Group Management Protocol (IGMP) / Multicast 2172 Listener Discovery (MLD)-Based Multicast Forwarding 2173 ("IGMP/MLD Proxying")", RFC 4605, August 2006. 2175 [RFC4795] Aboba, B., Thaler, D., and L. Esibov, "Link-local 2176 Multicast Name Resolution (LLMNR)", RFC 4795, 2177 January 2007. 2179 [RFC4852] Bound, J., Pouffary, Y., Klynsma, S., Chown, T., and D. 2180 Green, "IPv6 Enterprise Network Analysis - IP Layer 3 2181 Focus", RFC 4852, April 2007. 2183 [RFC4903] Thaler, D., "Multi-Link Subnet Issues", RFC 4903, 2184 June 2007. 2186 [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy 2187 Extensions for Stateless Address Autoconfiguration in 2188 IPv6", RFC 4941, September 2007. 2190 [RFC5214] Templin, F., Gleeson, T., and D. Thaler, "Intra-Site 2191 Automatic Tunnel Addressing Protocol (ISATAP)", RFC 5214, 2192 March 2008. 2194 [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF 2195 for IPv6", RFC 5340, July 2008. 2197 [RFC5569] Despres, R., "IPv6 Rapid Deployment on IPv4 2198 Infrastructures (6rd)", RFC 5569, January 2010. 2200 [RFC5685] Devarapalli, V. and K. Weniger, "Redirect Mechanism for 2201 the Internet Key Exchange Protocol Version 2 (IKEv2)", 2202 RFC 5685, November 2009. 2204 [RFC5720] Templin, F., "Routing and Addressing in Networks with 2205 Global Enterprise Recursion (RANGER)", RFC 5720, 2206 February 2010. 2208 [RFC5887] Carpenter, B., Atkinson, R., and H. Flinck, "Renumbering 2209 Still Needs Work", RFC 5887, May 2010. 2211 [RFC5969] Townsley, W. and O. Troan, "IPv6 Rapid Deployment on IPv4 2212 Infrastructures (6rd) -- Protocol Specification", 2213 RFC 5969, August 2010. 2215 [RFC6139] Russert, S., Fleischman, E., and F. Templin, "Routing and 2216 Addressing in Networks with Global Enterprise Recursion 2217 (RANGER) Scenarios", RFC 6139, February 2011. 2219 [RFC6179] Templin, F., "The Internet Routing Overlay Network 2220 (IRON)", RFC 6179, March 2011. 2222 Appendix A. Duplicate Address Detection (DAD) Considerations 2224 A priori uniqueness determination (also known as "pre-service DAD") 2225 for an RLOC assigned on an enterprise-interior interface would 2226 require either flooding the entire enterprise network or somehow 2227 discovering a link in the network on which a node that configures a 2228 duplicate address is attached and performing a localized DAD exchange 2229 on that link. But, the control message overhead for such an 2230 enterprise-wide DAD would be substantial and prone to false-negatives 2231 due to packet loss and intermittent connectivity. An alternative to 2232 pre-service DAD is to autoconfigure pseudo-random RLOCs on 2233 enterprise-interior interfaces and employ a passive in-service DAD 2234 (e.g., one that monitors routing protocol messages for duplicate 2235 assignments). 2237 Pseudo-random IPv6 RLOCs can be generated with mechanisms such as 2238 CGAs, IPv6 privacy addresses, etc. with very small probability of 2239 collision. Pseudo-random IPv4 RLOCs can be generated through random 2240 assignment from a suitably large IPv4 prefix space. 2242 Consistent operational practices can assure uniqueness for VBG- 2243 aggregated addresses/prefixes, while statistical properties for 2244 pseudo-random address self-generation can assure uniqueness for the 2245 RLOCs assigned on an ER's enterprise-interior interfaces. Still, an 2246 RLOC delegation authority should be used when available, while a 2247 passive in-service DAD mechanism should be used to detect RLOC 2248 duplications when there is no RLOC delegation authority. 2250 Appendix B. Anycast Services 2252 Some of the IPv4 addresses that appear in the Potential Router List 2253 may be anycast addresses, i.e., they may be configured on the VET 2254 interfaces of multiple VBRs/VBGs. In that case, each VET router 2255 interface that configures the same anycast address must exhibit 2256 equivalent outward behavior. 2258 Use of an anycast address as the IP destination address of tunneled 2259 packets can have subtle interactions with tunnel path MTU and 2260 neighbor discovery. For example, if the initial fragments of a 2261 fragmented tunneled packet with an anycast IP destination address are 2262 routed to different egress tunnel endpoints than the remaining 2263 fragments, the multiple endpoints will be left with incomplete 2264 reassembly buffers. This issue can be mitigated by ensuring that 2265 each egress tunnel endpoint implements a proactive reassembly buffer 2266 garbage collection strategy. Additionally, ingress tunnel endpoints 2267 that send packets with an anycast IP destination address must use the 2268 minimum path MTU for all egress tunnel endpoints that configure the 2269 same anycast address as the tunnel MTU. Finally, ingress tunnel 2270 endpoints should treat ICMP unreachable messages from a router within 2271 the tunnel as at most a weak indication of neighbor unreachability, 2272 since the failures may only be transient and a different path to an 2273 alternate anycast router quickly selected through reconvergence of 2274 the underlying routing protocol. 2276 Use of an anycast address as the IP source address of tunneled 2277 packets can lead to more serious issues. For example, when the IP 2278 source address of a tunneled packet is anycast, ICMP messages 2279 produced by routers within the tunnel might be delivered to different 2280 ingress tunnel endpoints than the ones that produced the packets. In 2281 that case, functions such as path MTU discovery and neighbor 2282 unreachability detection may experience non-deterministic behavior 2283 that can lead to communications failures. Additionally, the 2284 fragments of multiple tunneled packets produced by multiple ingress 2285 tunnel endpoints may be delivered to the same reassembly buffer at a 2286 single egress tunnel endpoint. In that case, data corruption may 2287 result due to fragment misassociation during reassembly. 2289 In view of these considerations, VBGs that configure an anycast 2290 address should also configure one or more unicast addresses from the 2291 Potential Router List; they should further accept tunneled packets 2292 destined to any of their anycast or unicast addresses, but should 2293 send tunneled packets using a unicast address as the source address. 2295 Appendix C. Change Log 2297 (Note to RFC editor - this section to be removed before publication 2298 as an RFC.) 2300 Changes from -14 to -15: 2302 o new insights into default route configuration and next-hop 2303 determination 2305 Changes from -13 to -14: 2307 o fixed Idnits 2309 Changes from -12 to -13: 2311 o Changed "VGL" *back* to "PRL" 2313 o More changes for multi-protocol support 2315 o Changes to Redirect function 2317 Changes from -11 to -12: 2319 o Major section rearrangement 2321 o Changed "PRL" to "VGL" 2323 o Brought back text that was lost in the -10 to -11 transition 2325 Changes from -10 to -11: 2327 o Major changes with significant simplifications 2329 o Now support stateless PD using 6rd mechanisms 2331 o SEAL Control Message Protocol (SCMP) used instead of ICMPv6 2333 o Multi-protocol support including IPv6, IPv4, OSI/CLNP, etc. 2335 Changes from -09 to -10: 2337 o Changed "enterprise" to "enterprise network" throughout 2339 o dropped "inner IP", since inner layer may be non-IP 2341 o TODO - convert "IPv6 ND" to SEAL SCMP messages so that control 2342 messages remain *within* the tunnel interface instead of being 2343 exposed to the inner network layer protocol engine. 2345 Changes from -08 to -09: 2347 o Expanded discussion of encapsulation/decapsulation procedures 2349 o cited IRON 2351 Changes from -07 to -08: 2353 o Specified the approach to global mapping using virtual aggregation 2354 and BGP 2356 Changes from -06 to -07: 2358 o reworked redirect function 2360 o created new section on VET interface encapsulation 2362 o clarifications on nexthop selection 2364 o fixed several bugs 2366 Changed from -05 to -06: 2368 o reworked VET interface ND 2370 o anycast clarifications 2372 Changes from -03 to -04: 2374 o security consideration clarifications 2376 Changes from -02 to -03: 2378 o security consideration clarifications 2380 o new PRLNAME for VET is "isatav2.example.com" 2382 o VET now uses SEAL natively 2384 o EBGs can support both legacy ISATAP and VET over the same 2385 underlying interfaces. 2387 Changes from -01 to -02: 2389 o Defined CGA and privacy address configuration on VET interfaces 2391 o Interface identifiers added to routing protocol control messages 2392 for link-layer multiplexing 2394 Changes from -00 to -01: 2396 o Section 4.1 clarifications on link-local assignment and RLOC 2397 autoconfiguration. 2399 o Appendix B clarifications on Weak End System Model 2401 Changes from RFC5558 to -00: 2403 o New appendix on RLOC configuration on VET interfaces. 2405 Author's Address 2407 Fred L. Templin (editor) 2408 Boeing Research & Technology 2409 P.O. Box 3707 MC 7L-49 2410 Seattle, WA 98124 2411 USA 2413 Email: fltemplin@acm.org