idnits 2.17.1 draft-ietf-ngtrans-dstm-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? == Mismatching filename: the document gives the document name as 'draft-toutain-dstm-00', but the file name used is 'draft-ietf-ngtrans-dstm-00' == There are 2 instances of lines with non-ascii characters in the document. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 5 longer pages, the longest (page 8) being 64 lines == It seems as if not all pages are separated by form feeds - found 0 form feeds but 21 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There are 28 instances of too long lines in the document, the longest one being 4 characters in excess of 72. == There are 9 instances of lines with non-RFC2606-compliant FQDNs in the document. == There are 4 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: The Client MUST not assume it can use the IPv4 Global Address until it has received a corresponding Reply to the Client Request, which is required for a Reconfigure Message too as specified in section 7.2. -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- Couldn't find a document date in the document -- date freshness check skipped. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: '1' is defined on line 899, but no explicit reference was found in the text == Unused Reference: '7' is defined on line 920, but no explicit reference was found in the text == Unused Reference: '12' is defined on line 935, but no explicit reference was found in the text == Unused Reference: '14' is defined on line 941, but no explicit reference was found in the text == Unused Reference: '16' is defined on line 949, but no explicit reference was found in the text == Unused Reference: '17' is defined on line 952, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2460 (ref. '3') (Obsoleted by RFC 8200) == Outdated reference: A later version (-28) exists of draft-ietf-dhc-dhcpv6-14 -- No information found for draft-ietf-dhc-dhcpv6ext - is the name correct? -- Possible downref: Normative reference to a draft: ref. '5' -- Possible downref: Non-RFC (?) normative reference: ref. '7' -- Possible downref: Non-RFC (?) normative reference: ref. '8' ** Obsolete normative reference: RFC 2065 (ref. '10') (Obsoleted by RFC 2535) ** Obsolete normative reference: RFC 2137 (ref. '11') (Obsoleted by RFC 3007) ** Downref: Normative reference to an Informational RFC: RFC 2185 (ref. '12') == Outdated reference: A later version (-08) exists of draft-ietf-ngtrans-siit-03 -- Possible downref: Non-RFC (?) normative reference: ref. '18' ** Obsolete normative reference: RFC 2462 (ref. '19') (Obsoleted by RFC 4862) ** Obsolete normative reference: RFC 2373 (ref. '20') (Obsoleted by RFC 3513) Summary: 11 errors (**), 0 flaws (~~), 17 warnings (==), 7 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 INTERNET-DRAFT Jim Bound 2 NGTRANS Tools Working Group Compaq 3 Obsoletes draft-toutain-dstm-00.txt Laurent Toutain 4 Expires April 2000 Hossam Afifi 5 ENST Bretagne 7 Dual Stack Transition Mechanism (DSTM) 9 11 Status of this Memo 13 This document is an Internet-Draft and is in full conformance with 14 all provisions of Section 10 of RFC2026. 16 Internet-Drafts are working documents of the Internet Engineering 17 Task Force (IETF), its areas, and its working groups. Note that 18 other groups may also distribute working documents as Internet- 19 Drafts. 21 Internet-Drafts are draft documents valid for a maximum of six months 22 and may be updated, replaced, or obsoleted by other documents at any 23 time. It is inappropriate to use Internet- Drafts as reference 24 material or to cite them other than as "work in progress." 26 The list of current Internet-Drafts can be accessed at 27 http://www.ietf.org/ietf/1id-abstracts.txt 29 The list of Internet-Draft Shadow Directories can be accessed at 30 http://www.ietf.org/shadow.html. 32 To view the entire list of current Internet-Drafts, please check the 33 "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow 34 Directories on ftp.is.co.za (Africa), ftp.nordu.net (Europe), 35 munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or 36 ftp.isi.edu (US West Coast). 38 Distribution of this memo is unlimited. 40 Abstract 42 The initial deployment of IPv6 will require a tightly coupled use of 43 IPv4 addresses to support the interoperation of IPv6 and IPv4, within 44 an IPv6 Network. Nodes will be able to be deployed with IPv6 45 addresses, but will still need to communicate with IPv4 nodes that do 46 not have a dual IP layer supporting both IPv4 and IPv6. The Dual 47 Stack Transition Method (DSTM) provides a set of mechanisms to assign 48 temporary Global IPv4 Addresses to IPv6 nodes, use of dynamic tunnels 49 within an IPv6 Network to carry IPv4 traffic, and a defined set of 50 processes and architecture for the supporting infrastructure required 51 for this transition mechanism. 53 Table of Contents: 55 1. Introduction.................................................3 56 2. Terminology..................................................4 57 2.1 IPv6 AIIH Terminology.......................................4 58 2.2 Specification Language......................................4 59 3. DSTM Overview................................................5 60 4. Scenarios....................................................7 61 4.1 IPv6 node to an IPv4 node...................................8 62 4.2 IPv4 node to an IPv6 node...................................9 63 4.3 IPv4 compiled application between to IPv6 nodes............10 64 5. AIIH Server Design Model....................................10 65 5.1 AIIH DHCPv6/DNS Server.....................................10 66 5.1.1. Requesting an IPv4 Global Address.......................11 67 5.1.2 AIIH DHCPv6 Client IPv4 Global Address Requests..........12 68 5.1.3 AIIH DNS Query and DHCPv6 Processing.....................12 69 5.1.4. Cleaning up the AIIH IPv4 Assigned Address..............13 70 5.2 Links with other DNS.......................................13 71 6. DTI.........................................................14 72 6.1. DTI Architecture..........................................14 73 6.1 Assignment of the IPv4 address to the DTI..................14 74 6.2 Encapsulation of IPv4 packets..............................15 75 6.2.1 IPv6 source address......................................15 76 6.2.2 IPv6 destination address.................................15 77 6.2.2.1 Dynamic TEP............................................15 78 6.2.2.2 Static TEP.............................................16 79 7. AIIH DHCPv6 Requirements....................................17 80 7.1 DHCPv6 IPv4 Global Address Extension.......................17 81 7.2 AIIH Server Processing of an IPv4 Global Address Extension.17 82 7.3 AIIH Client Processing of an IPv4 Global Address Extension.18 83 8. Security Considerations.....................................19 84 9. Year 2000 Considerations....................................19 85 Appendix A: DSTM Discussion and Issues........................19 86 References.....................................................19 87 1. Introduction 89 The initial deployment of IPv6 will require a tightly coupled use of 90 IPv4 addresses to support the interoperation of IPv6 and IPv4, within an 91 IPv6 Network. Nodes will be able to be deployed with IPv6 addresses, 92 but will still need to communicate with IPv4 nodes that do not have a 93 dual IP layer supporting both IPv4 and IPv6. The Dual Stack Transition 94 Method (DSTM) provides a set of mechanisms to assign temporary Global 95 IPv4 Addresses to IPv6 nodes, use of dynamic tunnels within an IPv6 96 Network to carry IPv4 traffic, and a defined set of processes and 97 architecture for the supporting infrastructure required for this 98 transition mechanism. In the dual stack approach defined in RFC 1933, 99 every node needs both an IPv4 and an IPv6 address to exchange 100 information with the IPv4 and the IPv6 world. Use of the dual stack 101 approach can be acceptable during a short period for testing IPv6 102 applications and initial network deployment, but does not scale since it 103 does not solve the lack of IPv4 addresses, once IPv6 begins production 104 deployment. 106 The DSTM assigns, when needed an IPv4 address to an IPv6 host. This will 107 allow either IPv6 hosts to communicate with IPv4-only hosts, or for 108 IPv4-only applications to run without modification on an IPv6 host. This 109 allocation mechanism is coupled with the ability to perform dynamic 110 tunneling of an IPv4 packet inside an IPv6 packet, to suppress the 111 exposure of IPv4 native packets within some areas of an IPv6 network. 112 This will simplify the network management of IPv6 deployment, since 113 routers need only IPv6 routing tables to move IPv4 packets across an 114 IPv6 network. 116 DSTM is targeted to help the interoperation of IPv6 newly deployed 117 networks with existing IPv4 networks. The main theme of DSTM is to avoid 118 situations where the introduction of IPv6 in a network, is delayed 119 because IPv6 will have to interoperate with IPv4 networks and 120 applications for some time. 122 DSTM is composed of a DHCPv6 server coupled with a DNS server (called 123 AIIH server, for Assignment of IPv4 Global Addresses to IPv6 Hosts). 124 This server will allocate temporary IPv4 addresses to IPv6 hosts using 125 DHCPv6. This server will also be used to maintain the mapping between 126 the allocated IPv4 address and the permanent IPv6 address of the host. 127 Every IPv6 host will have an IPv4 interface called DTI (Dynamic 128 Tunneling Interface) designed to encapsulate IPv4 packets into IPv6 129 packets and resolve the address space mechanics, between IPv4 and IPv6. 131 The specification will begin by defining the terminology (section 2), 132 then section 3 provides a technical overview of the DSTM methodology as 133 a transition mechanism. Then in section 4 we discuss three scenarios 134 depicting the use of DSTM mechanisms in different configuration 135 settings. Section 5 describes the relation between DHCPv6 and DNS 136 Servers, which constitutes the AIIH Server. Section 6 discusses the DTI 137 architecture and mechanisms. Section 7 discusses the DHCPv6 extension 138 requirements. 140 2. Terminology 142 2.1 IPv6 AIIH Terminology 144 DSTM Domain The network areas on an Intranet where an 145 AIIH Server has access to IPv6 nodes 146 participating 147 in DSTM for that network. 149 DSTM Border Router A borderd router within a DSTM domain and 150 an IPv4-ONLY domain (Internet or Intranet). 152 IPv6 Protocol Terms: See [3] 154 IPv6 Transition Terms: See [15] 156 DHCPv6 Terms: See [4,5] 158 DTI: Dynamic Tunneling Interface. An interface 159 encapsulating IPv4 packets into IPv6 packets. 161 AIIH Server: A Server that supports DNS [2] and DHCPv6 [4,5] 162 and communications between DNS and DHCPv6, which 163 is implementation defined. 165 IPv4 Global Address: An IPv4 address that is globally routable on 166 the Internet. 168 Tunnel End Point (TEP) Destination of the IPv6 packet containing an 169 IPv4 packet. 171 2.2 Specification Language 173 In this document, several words are used to signify the requirements 174 of the specification, in accordance with RFC 2119 [9]. These words 175 are often capitalized. 177 MUST This word, or the adjective "required", means that 178 the definition is an absolute requirement of the 179 specification. 181 MUST NOT This phrase means that the definition is an absolute 182 prohibition of the specification. 184 SHOULD This word, or the adjective "recommended", means 185 that there may exist valid reasons in particular 186 circumstances to ignore this item, but the full 187 implications must be understood and carefully 188 weighed before choosing a different course. 189 Unexpected results may result otherwise. 191 MAY This word, or the adjective "optional", means that 192 this item is one of an allowed set of alternatives. 194 An implementation which does not include this option 195 MUST be prepared to interoperate with another 196 implementation which does include the option. 198 silently discard 199 The implementation discards the packet without 200 further processing, and without indicating an error 201 to the sender. The implementation SHOULD provide 202 the capability of logging the error, including the 203 contents of the discarded packet, and SHOULD record 204 the event in a statistics counter. 206 3. DSTM Overview 208 DSTM as discussed in the introduction are a set of mechanisms which use 209 existing protocols to support the operations within DSTM. DSTM does not 210 specify a protocol, except for defining some new DHCPv6 Extensions for 211 transition. 213 The reason for DSTM is to provide IPv6 nodes a means to acquire an IPv4 214 address, for communications with IPv4-only nodes or IPv4 applications. 216 The core assumption within this mechanism is that the user does not want 217 to use translation as a mechanism when an IPv6 node, which has also an 218 IPv4 stack, to communicate with an IPv4-only node or an IPv4 219 application. It is the authors viewpoint that the user in this case, 220 has deployed IPv6 to support end-2-end computing, without translation. 222 The DSTM model is as follows: 224 - The DSTM domain is within an Intranet not on the Internet. 226 - IPv6 nodes do not maintain IPv4 addresses except on a temporary basis, 227 to communicate with IPv4-only and IPv4 Applications. 229 - Standard DNS is used to cause access to a DNS server that will 230 know the request is an IPv4 address for an IPv6 node above. 232 - Standard DHCPv6 is used to support the extensions to provide 233 and accept from DHCPv6 clients Global IPv4 Addresses. 235 - The network for the IPv6 nodes would like to keep IPv4 routing 236 tables to a minimum and use IPv6 routing whenever possible, 237 as an initial transition mechanism for IPv6. 239 - Once IPv6 nodes have IPv4 addresses Dynamic Tunneling is used 240 to move the IPv4 packet within IPv6 to an IPv6 TEP, where the 241 packet will be forwarded using IPv4. DHCPv6 is used to provide 242 TEPs to IPv6 nodes supporting DTI. 244 - Implementation defined software must exist within DSTM to support 245 the following processes: 247 o Software on a DNS implementation to inform a DHCPv6 server 248 that a request is being made for an IPv4 address for an 249 IPv6 node. This specifications initial assumption is that 250 the DNS and DHCPv6 are co-located on the same node. This 251 eliminates the need for a network protocol for DHCPv6 252 and DNS to communicate over a wireless or wired medium. 254 o Software on a DHCPv6 implementation to support speaking 255 with a DNS implementation for the above purposes. In addition 256 software within DHCPv6 to maintain configuration information 257 about tunnel endpoints for encapsulating IPv4 packets between 258 IPv6 nodes that can forward IPv4 packets to an IPv4 routing 259 realm. 261 o The DHCPv6 and DNS processes and implementation defined parts 262 above are collectively named the AIIH Server in this model 263 and the specification. 265 o Software within an IPv6 node to support the dynamic tunneling 266 mechanisms in this specification to encapsulate IPv4 packets 267 within IPv6 to send IPv4 packets on an IPv6 node. In addition 268 a daemon must exist to access an AIIH server for addresses 269 and TEPs. 271 o Software in DSTM domain routers to recall or be able to cache 272 the association of IPv6 and IPv4 addresses of nodes during 273 decapsulation and encapsulation. 275 A simplistic overview of DSTM is as follows: 277 ----------------------------------------------- 278 | IPv4 Internet/Intranet 279 DSTM Domain Intranet | IPv4 Applications 280 | Domain 281 _____________________ | 282 | | | 283 | AIIH Server | | 284 |_____________________| | 285 ^ ^ | 286 | | | 287 __________________ | | _|_______ 288 | | | | | | 289 | IPv6/IPv4 Node | | --------->| DSTM | 290 |------------------| | | Router | 291 | AIIH Daemon |<------- | IPv6 | 292 |------------------| | & | 293 | DTI/Route |<-------------------->| IPv4 | 294 ------------------- --------- 295 | 296 ---------------------------------------------- 298 Both the IPv6/IPv4 node and the DSTM Router have occasion to access the 299 AIIH Server. For more depth please read the following sections of this 300 specification. 302 For an IPv6 host to participate in the AIIH mechanism it MUST have a 303 dual IP layer, supporting both an IPv4 and an IPv6 stack. This 304 specification makes the assumption that for IPv6 initial deployment host 305 nodes will not be shipped with an IPv6-only stack implementation. For 306 embedded system type nodes that support only an IPv6 stack, AIIH cannot 307 be a solution. 309 4. Scenarios 311 These different scenarios illustrate interoperability problems occurring 312 during the interoperation between IPv4 and IPv6. IPv6 end nodes have a 313 dual stack, but only the IPv6 stack is configured through an IPv6 auto- 314 configuration mechanisms. Intermediary routers have only an IPv6 routing 315 table configured. 317 In the example below, the following notation will be used: 319 X will designate an IPv6 host with a dual stack, X6 will be the IPv6 320 address of this host and X4 the IPv4 address 321 Y will designate a DSTM border router at the boundary between an 322 IPv6 DSTM domain and an IPv4-only domain. 323 Z will designate an IPv4-only host and Z4 its address. 324 ==> means an IPv6 packet 325 --> means an IPv4 packet 326 ++> means a tunneled IPv4 packet is encapsulated in an IPv6 packet 327 ..> means a DNS query or response. The path taken by this 328 packet does not matter in the examples 329 "a" means the DNS name of a host 331 4.1 IPv6 node to an IPv4 node 333 This scenario describes the case where an application (either compiled 334 for the IPv6 or IPv4 API) running on an IPv6 host (X6) wants to 335 establish a session with an IPv4 application on an IPv4-only host (Z4). 337 The IPv6 host is configured with the IPv6 address of a tunnel end-point, 338 where an IPv4 encapsulated packet will be sent. 340 The IPv4 routing table of node X is configured to send IPv4 packets to 341 the DTI interface. 343 AIIH TB Z4 344 X6 Y6/Y4 345 | | | 346 |. . . . . . . .> Z | - X6 asks the DNS for an AAAA for "Z" 347 |<. . . . . . . . error | - the DNS answers with an error 348 |. . . . . . . .> Z | - X6 asks for the A RR for "Z" 349 |<. . . . . . . . Z4 | - the answer is Z4 350 | | | 351 | | | - The application sends its first IPv4 352 | | | packet which arrives to the DTI 353 interface 354 | | | (If the application is compiled for 355 IPv6 356 | | | this can be done through an IPv4-mapped 357 | | | address). 358 | | | 359 | | | - X6 needs an IPv4 address (first use) 360 |====> | | - X6 queries the AIIH server for an 361 | | | IPv4 address using DHCPv6 362 |<==== | | - The DHCPv6 server locates the client 363 | | | and provides temporarily an IPv4 364 | | | address. 365 | | | - the DHCPv6 Server sends a Dynamic 366 Update 367 | | | to the DNS to register the association 368 | | | x4<->x6. 369 | | | 370 |+++++++++++>| | - The DTI sends the IPv6 packet to the 371 | | | tunnel end-point 372 | |----------->| - Y sends the packet to the destination 373 Z4 374 | | | - Y MAY cache the association between 375 | | | the IPv4 and IPv6 address of X. 377 When Z answers two cases are possible either the packet comes back 378 through Y and Y has cached the association between the IPv4 and the IPv6 379 address of X, or the packet arrives through another router within the 380 IPv6 network. 382 For the first case, Y simply encapsulates the IPv4 packet inside an IPv6 383 packet to X6. If the IPv4 packet size is greater than the MTU inside the 384 IPv6 DSTM domain, the packet is fragmented, if the IPv4 DF bit is set to 385 0. Otherwise an ICMP message is sent to Z4. 387 The second case corresponds to the scenario described in the next 388 scenario, when an IPv4 packet arrives at the DSTM border router within 389 a DSTM domain. 391 4.2 IPv4 node to an IPv6 node 393 This example covers any scenario where an IPv4-only host wants to 394 establish a session with an IPv6 host, which does not have an IPv4 395 address. 397 No modification can be made to the IPv4 host or to the application, 398 especially the IPv4-application cannot be recompiled. 400 DNSv4 AIIH Y4 Z4 401 DNSv6 Y6 402 | <. . . . . . . . . | - ask for the IPv4 address of X 403 | | | - this request arrives to the AIIH Server 404 | | | 405 | | | - if node X does not have already a 406 | | | temporary IPv4 address assigned then the 407 | | | AIIH allocates an IPv4 address and 408 |<===== | | registers it in the DNS. 409 | . . . . . . . . . >| - AIIH returns the IPv4 address to node Z4 410 | | | 411 | |<-----------| - Z4 sends an IPv4 packet which arrives at 412 Y4 413 | <=====| | - Y4 asks the AIIH server for the IPv6 414 address 415 | | | corresponding to X4. 416 | =====>| | - AIIH server responds 417 |<++++++++++ | | - The packet is tunneled to node X6 418 | | | 420 4.3 IPv4 compiled application between to IPv6 nodes 422 To maintain compatibility between two IPv4 applications, an IPv4 423 application running on an IPv6 host may wish to send IPv4 packets to 424 another application running also on an IPv6 host, called Z6. To allow 425 end-to-end communication without the use of a static Tunnel End Point, 426 nodes can use the same mechanism as the DSTM border router in the 427 previous example. This means that a DTI interface can ask the AIIH 428 server to perform address resolution. If the resolution fails, the DTI 429 interface can still use the static TEP. 431 AIIH 432 X6 Z6 433 | | 434 |............> | - X asks for the IPv4 address of Z. 435 | ============>| - AIIH Server assigns an IPv4 address to Z 436 | | - AIIH registers this address to 437 | | its DNS server 438 |<........... | - Z4 is returned to X 439 | | - The IPv4 address of Z is used by the 440 | | application, which sends an IPv4 packet 441 | | to the IPv6 IP implementation 442 | | - the routing table has been previously 443 | | configured in X to route 444 | | IPv4 through DTI 445 |===========> | - DTI receives its first packets, asks 446 |<========== | the AIIH server to assign 447 | | the IPv4 address to the DTI interface 448 | | - AIIH registers this address 449 | | to the DNS 450 | | - DTI has to find the IPv6 address 451 | | of the tunnel end-point for Z4 452 |===========> | - DTI daemon asks the AIIH Server for the 453 |<=========== | temporary address of Z4 454 |++++++++++++++++++++++++>| - DTI tunnels the packet to Z6 456 5. AIIH Server Design Model 458 The design model provides two mechanisms to assign an IPv6 host an IPv4 459 address. The first mechanism is for the host to request an IPv4 address 460 that is globally routable, and the second is for an AIIH Server to 461 assign an IPv6 host a globally routable IPv4 address using the DHCPv6 462 Reconfigure Message. The assumption in this specification is that a site 463 has a certain number of IPv4 Global Addresses, which can be assigned 464 within the network on a temporary basis for use by hosts in the site. 466 5.1 AIIH DHCPv6/DNS Server 468 The AIIH Server supports a co-located DHCPv6 and DNS Server and other 469 implementation defined software functions. The AIIH server configuration 470 files and database is not defined in this specification. There can be 471 one or many AIIH Servers on an Intranet and how they maintain 472 consistency and Tunnel End Point configurations for IPv6 links is 473 implementation defined. 475 The AIIH Server is an implementation where DNS, DHCPv6, and 476 communications between those two applications exists. These applications 477 MAY be co-located on the same host, but that is not a requirement of 478 this specification. How DNS and DHCPv6 communicate is implementation 479 defined . The AIIH Server SHOULD support the following operations: 481 1. Act as the Authoritative DNS Name Server for a set of IPv6 482 hosts that can be queried for IPv4 Global Addresses. 484 2. Communications between the AIIH DNS server and the AIIH DHCPv6 485 Server. 487 3. An AIIH DHCPv6 Server that can maintain a pool of IPv4 Global 488 Addresses in an implementation defined manner. 490 4. An AIIH DHCPv6 Server that can maintain Tunnel End Points for 491 IPv6 Links in an implementation defined manner. 493 5. An AIIH DHCPv6 Server to process DNS AIIH IPv6 host DNS queries, 494 and Reconfiguring IPv6 hosts to assign IPv4 Global Addresses to 495 their interfaces. 497 6. Support DHCPv6 Client's requesting IPv4 Global Addresses. 499 7. Dynamically Updating DNS with an IPv4 Global Address for 500 an IPv6 host that supports IPv4/IPv6. 502 An AIIH Server MUST support a dual IPv4/IPv6 network layer and 503 implementation of IPv4/IPv6. 505 The IPv4 address allocation can be triggered by two events. The first 506 one is when an IPv6 host requests through DHCPv6 an IPv4 address to 507 configure its IPv4 stack. The second event happens when a DNS A query is 508 made for a node that only has an IPv6 address (see section 5.2). fails 509 to respond to a DNS A RR query. 511 5.1.1. Requesting an IPv4 Global Address 513 An IPv4/IPv6 host can request an IPv4 Global Address by using the IPv4 514 Global Address Extension defined in section 7. The IPv4/IPv6 host MUST 515 support DHCPv6 [4] and the DHCPv6 Extensions [5]. The Requests/Response 516 Model of DHCPv6 will process this new extension as any other extension. 517 There is no need to define a new message type for DHCPv6 for this 518 processing or add to the DHCPv6 protocol. 520 Once the host has obtained an IPv4 Global Address it MUST NOT update DNS 521 to reflect an A type or PTR type record for this address. The reason is 522 that the intent is to provide a host with this temporary address to use 523 for communications with an IPv4 node. Once the reason for obtaining an 524 IPv4 Global Address has been satisfied the host MUST Release this IPv4 525 Global Address from the AIIH DHCPv6 Server implementation. 527 On the other hand, if the address lifetime is about to expire, the AIIH 528 client may send another request to the AIIH Server to keep this address 529 assigned. 531 5.1.2 AIIH DHCPv6 Client IPv4 Global Address Requests 533 An AIIH DHCPv6 Server will receive DHCPv6 Requests for IPv4 Global 534 Addresses from IPv6 hosts. The AIIH DHCPv6 Server will determine if an 535 address is available and assign the address to the DHCPv6 Client as 536 specified in section 7 of this specification. 538 5.1.3 AIIH DNS Query and DHCPv6 Processing 540 Once the AIIH DNS finds the IPv6 host being queried the AIIH DNS 541 requests from its corresponding AIIH DHCPv6 Server to assign an IPv4 542 Global Address to the IPv6 host being queried. 544 The AIIH DHCPv6 Server will look within its pool of IPv4 Global 545 Addresses for an address and if a Tunnel End Point address is required 546 for the IPv6 host to reach the router to route packets onto the 547 Internet. If an address is available the DHCPv6 Server will send a 548 DHCPv6 Reconfigure Message to the IPv6 node to temporarily assign the 549 node an IPv4 Global Address (see section 7). 551 Once the AIIH DHCPv6 server is certain that the IPv6 host has assigned 552 the address to an interface, the AIIH DHCPv6 Server responds back to the 553 corresponding AIIH DNS Server with the IPv4 Global Address assigned to 554 the IPv6 host being queried, or that an address could not be assigned to 555 this IPv6 host. 557 It is important to wait for an acknowledgment from the client to be sure 558 that the host is up before validating an IPv4 address has been assigned. 559 Nevertheless this could introduce a delay incompatible with the timer 560 used during a DNS query. The dialog could be modified. Just after the 561 DNSv6 temporary IPv4 address assignment, the AIIH DNS returns this 562 address but with a small TTL. The real TTL will be used if the 563 acknowledgment is received, otherwise the IPv4 address is deprecated for 564 a some period of time. 566 The AIIH DNS Server will now respond to the IPv4 DNS Query as the 567 Authoritative DNS Name Server with an address or host not found. 569 The AIIH DHCPv6 Server MAY send a dynamic update to DNS [6] to add an A 570 type record to the Primary DNS Server, where the query came from to the 571 AIIH DNS Server. The Time-To-Live (TTL) field in the update MUST NOT be 572 set to be greater than the valid lifetime for the IPv4-Compatible 573 address in the DHCPv6 Extension provided to the DHCPv6 Client. It is 574 highly recommended to not update the DNS with an A record for the IPv6 575 host, unless that IPv6 host provides a permanent IPv4 Application 576 service needed by IPv4 hosts. 578 5.1.4. Cleaning up the AIIH IPv4 Assigned Address 580 Once the IPv4 address expires, the DHCPv6 Server will permit the IPv4 581 address to be reused. But before the address can be reused the DHCPv6 582 Server MUST delete the IPv4 address from the Primary DNS Server, through 583 the Dynamic Updates to DNS mechanism, if an A record was added to the 584 relative Primary DNS Server. 586 If an AIIH client wants to keep the temporary IPv4 address after its 587 expiration time, it MUST send a DHCPv6 request before the address 588 expires. 590 5.2 Links with other DNS 592 When the Primary DNS Server for the IPv6 node receives the IPv4 hosts 593 query, it will do a DNS search for that IPv6 host and find that there is 594 an Authoritative DNS Server for that specific DNS A record, which 595 represents an IPv6 host. That DNS Server will be one part of the AIIH 596 Server software. After the AIIH DHCPv6 Server assigns the IPv6 node a 597 temporary IPv4 Global Address, the AIIH DNS Server will respond to the 598 original IPv4 DNS query authoritatively with an IPv4 Global Address for 599 the IPv6 host or return host Not Found. 601 For Example: 603 IPv4 node "v4host.abc.com" queries for "v6host1.xyz.com" 605 Query reaches Primary DNS Server for "v6host1.xyz.com". 607 xyz.com. IN SOA primary.xyz.com. etc etc. 608 . 609 . 610 xyz.com IN NS primary.xyz.com 611 aiih.xyz.com IN NS v6trans.aiih.xyz.com 612 . 613 . 614 primary.xyz.com IN A 202.13.12.6 615 v6trans.aiih.xyz.com IN A 202.13.12.8 616 . 617 . 618 . 619 v6host1.xyz.com IN CNAME v6host1.aiih.xyz.com 620 v6host2.xyz.com IN CNAME v6host2.aiih.xyz.com 621 v6host3.xyz.com IN CNAME v6host3.aiih.xyz.com 623 DNS query will end up going to the authoritative server 624 v6trans.aiih.xyz.com looking for v6host1.aiih.xyz.com. This permits 625 the AIIH Server to now process a request for an IPv4 Global Address 626 for an IPv6 host that had no IPv6 DNS AAAA Record [18]. 628 If DTI is present, the reverse DNS must be linked to the pool of 629 addresses managed by the AIIH Server. 631 6. DTI 633 6.1. DTI Architecture 635 The DTI interface will be used to send IPv4 packets during the 636 interoperation of IPv4 and IPv6. The routing table of the host forwards 637 the information to that interface. It is possible to send all the IPv4 638 packets through this interface by using only the default prefix. 640 The DTI interface is placed between the IPv4 API and the IPv6 layer, as 641 shown in the following figure, the architectural model assumes a BSD 642 UNIX type platform. 644 (-------------) 645 ( AIIH daemon ) 646 (-------------) 648 +------------||------------+------------||------------+--||--+ 649 | IPv6 API | IPv4 API | PF_ | 650 | | | ROUTE| 651 | +--------------------------+ | 653 | | | 654 +-----------------------------------------------------+------+ 656 On every IPv6 node an AIIH daemon is running to manage the allocation of 657 the IPv4 addresses need and perform the address resolution when needed. 659 The following example gives the configuration of an IPv4 routing table 660 with DTI. All IPv4 packets except those to the 192.44.77/24 prefix are 661 sent through the dti0 interface. They will be encapsulated into IPv6 662 packets. Packet to the 192.44.77/24 prefix will be sent natively on the 663 link. 665 Routing tables 667 Internet: 668 Destination Gateway Flags Refs Use Mtu Netif Expire 669 default link#1 UGSc 3 0 1460 dti0 670 192.44.77.0/24 192.44.77.3 UC 0 0 1500 le0 - 671 192.44.77.3 8:0:2b:1c:af:15 UHLW 4 0 1500 le0 649 672 127.0.0.1 127.0.0.1 UHl 1 102 16384 lo0 674 6.1 Assignment of the IPv4 address to the DTI 676 When the DTI interface is activated, no IPv4 address is given to that 677 interface. If the interface is active, but has no IPv4 address, when it 678 has to send the first IPv4 packet, the interface sends a request to the 679 daemon. The daemon will send a DHCPv6 request to the AIIH server to get 680 the temporary IPv4 address. 682 An IPv6 node can know it needs an IPv4 address if the DNS resolver on 683 the node knows that the destination address will be an IPv4 address. 684 Once the resolver knows this then a query to the interface index of the 685 node will inform the IPv6 if it has an IPv4 interface configured. This 686 is just one example of how an implementation can determine if the AIIH 687 daemon must be called. 689 6.2 Encapsulation of IPv4 packets 691 The protocol value for IPv4 encapsulation is 4 (as for IPv4 tunneling 692 over IPv4). When a tunneled packet arrives to the IPv6 destination, the 693 IPv6 header is removed and the packet is processed by the IPv4 layer. 694 The receiver SHOULD cache the association between the IPv4 and IPv6 695 source address. 697 6.2.1 IPv6 source address 699 The IPv6 source address of an encapsulated packet will be the IPv6 700 address of the interface on which the IPv6 packet will be sent. 702 6.2.2 IPv6 destination address 704 When a DTI has to encapsulate an IPv4 packet into an IPv6 packet. The 705 DTI as to find the IPv6 address for the destination, called in this 706 document a Tunnel End Point (TEP). The tunnel end point can be directly 707 the host destination or, if the destination host is IPv4-only, the IPv6 708 address of an IPv4/IPv6 router. 710 This document propose two ways for resolving the tunnel end point. The 711 first one is dynamic and uses the AIIH Server, the second one is static 712 and is returned in the DHCPv6 packet when a temporary IPv4 address is 713 allocated to the interface or by static configuration of the node. 715 The IPv6 hosts MAY have a static TEP. DSTM border routers SHOULD use 716 dynamic TEB, but it is possible in the case of a single homed network, 717 and for exiting traffic only, to avoid dynamic address resolution and 718 cache only the association of the IPv4 and IPv6 source address of 719 incoming packets. 721 For a host in the case of the failure of the dynamic TEP, static TEP 722 SHOULD be used. 724 For DSTM border routers, failure of the dynamic TEP SHOULD generate an 725 ICMPv4 host unreachable message. 727 6.2.2.1 Dynamic TEP 729 Dynamic TEP determination is similar to MAC address resolution when 730 sending a IP packet over an Ethernet link. The only difference is that 731 no broadcast facilities can be used to find a TEP. 733 In the Unix operating systems, this resolution should not be done in the 734 kernel. Some operating systems offer the possibility to do external 735 resolution. A query is sent to a daemon in the user space. This daemon 736 does a DHCPv6 query to find the TEP. In the rest of this document we 737 will consider this architectural model, but this is not a limitation for 738 implementing DTI. 740 When the resolver daemon receives a query from the kernel, it sends a 741 DHCPv6 query to the AIIH Server to get the IPv4 address for this host. 743 Static TEP cache contains the IPv6 address of a node inside the network. 744 The IPv6 address is stored in a cache for a duration indicated in the 745 DHCPv6 message. 747 6.2.2.2 Static TEP 749 Static TEP may be returned by the AIIH Server with the temporary IPv4 750 address. This TEP is used when the dynamic TEP resolution fails or has 751 not been activated. This will be the case when the DTI daemon asks for 752 an address not registered in the AIIH Server (for example an IPv4 753 address outside of the DSTM cloud). 755 Static TEP contains the IPv6 address of a DSTM border router. Static TEP 756 records are stored as long as the temporary IPv4 address is assigned to 757 the interface in case of DHCP configuration, and as long as the DTI 758 interface is active in case of manual configuration. 760 7. AIIH DHCPv6 Requirements 762 The AIIH DHCPv6 processes will use the DHCPv6 protocol and extensions to 763 communicate between the AIIH DHCPv6 Server and the DHCPv6 Client. A new 764 extension is required for DHCPv6 (section 4.1) to support AIIH. But 765 there are some additional requirements placed on the AIIH processes that 766 are not specific to the DHCPv6 protocol, but as transition and 767 interoperation mechanisms for the IPv6 hosts. 769 7.1 DHCPv6 IPv4 Global Address Extension 771 The DHCPv6 IPv4 Global Address Extension informs a DHCPv6 Server or 772 Client that the IPv6 Address Extension [5] following this extension will 773 contain an IPv4- Compatible Address [20], or is a Request for an IPv4 774 Global Address from a Client, or a Reply assigning a Global IPv4 Address 775 to a Client from a Server. The extension can also provide an IPv4- 776 Compatible or IPv6 address to be used as the Tunnel End Point to 777 encapsulate an IPv6 packet within IPv4, or an IPv4 packet within IPv6. 779 0 1 2 3 780 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 781 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 782 | Type | Length | 783 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 784 | Tunnel End Point | 785 | (If Present) | 786 | (16 octets) | 787 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 789 Type: TBD 790 Length: 0 or 16 791 Tunnel End Point: IPv6 Address if Present 793 An IPv4 Global Address Extension MUST only apply to the extension 794 following and not to any additional extensions in the DHCPv6 795 protocol. 797 7.2 AIIH Server Processing of an IPv4 Global Address Extension 799 When a DHCPv6 Server receives an IPv4 Global Address Extension it MUST 800 assume that the next extension in a DHCPv6 Request or Release Message; 801 the Client is either Requesting an IPv4 Global Address or Releasing an 802 IPv4 Global Address. If an address is present in either of these 803 messages it will be in the form of an IPv4-Compatible Address. 805 When a DHCPv6 Server sends a Client a Reconfigure Message to assign an 806 IPv4 Global Address to an interface the Server MUST NOT set the "N" bit 807 in the Reconfigure Message, so the Client performs the necessary 808 Request/Reply DHCPv6 processing to obtain the address from the Server. 809 The Server MUST NOT assume that the Client has assigned the address to 810 an interface until it has sent the corresponding Reply to the Client. 812 The Server will no a priori the IPv6 routable address, when sending a 813 Reconfiguration Message, of a Client within the Intranet, and should use 814 that address with its own IPv6 address as the transaction binding cache 815 until the DHCPv6 Client/Server protocol processing has completed. 817 The Server will look in its implementation defined IPv4 Global Address 818 configuration to determine if a Tunnel End Point is required for a 819 specific IPv6 Address Prefix. If that is the case the Server will put 820 the address for the Tunnel End Point in the IPv4 Global Address 821 Extension. If the Tunnel End Point address is an IPv4 address the Server 822 will put that address in the extension as an IPv4-Compatible address. 824 7.3 AIIH Client Processing of an IPv4 Global Address Extension 826 When a DHCPv6 Client receives an IPv4 Global Address Extension it MUST 827 assume that the next extension in a DHCPv6 Reconfigure or Reply Message; 828 the Server is either assigning an IPv4 Global Address or supplying an 829 IPv4 Global Address. The address present in either of these messages 830 will be in the form of an IPv4-Compatible Address. 832 When the Client supplies an IPv4 Global Address as a Request or Release 833 it MUST represent that address as an IPv4-Compatible Address. 835 The Client MUST not assume it can use the IPv4 Global Address until it 836 has received a corresponding Reply to the Client Request, which is 837 required for a Reconfigure Message too as specified in section 7.2. 839 Once the Client is assured it can use the IPv4 Global Address it can 840 perform the following operations: 842 1. In an implementation defined manner the Client MUST assign the 843 address to an interface, supporting the Client's IPv4 stack 844 implementation. 846 2. In an implementation defined manner the Client MUST create an entry 847 as an IPv4-Compatible Address supporting the processing required 848 for an IPv6 address regarding the valid and preferred lifetimes 849 as specified in IPv6 Addrconf [19]. Once the IPv4-Compatible 850 address valid lifetime expires the IPv4 address MUST be deleted 851 from the respective interface and a DHCPv6 Release Message 852 MUST be sent to the AIIH DHCPv6 Server to delete the IPv4 Global 853 Address from the Servers bindings. 855 3. If a Tunnel End Point address is provided in the IPv4 Global 856 Address Extension, the Client MUST create a configured tunnel 857 to the Tunnel End Point address, in an implementation defined 858 manner. If the Tunnel End Point address is an IPv4-Compatible 859 address then the encapsulation is IPv4 within IPv4, if the 860 Tunnel End Point is an IPv6 address then the encapsulation 861 is IPv6 in IPv4. These encapsulation mechanisms are defined 862 in other IPv6 specifications [13, 15]. 864 8. Security Considerations 866 The AIIH mechanism can use all the defined security specifications for 867 each functional part of the operation. For DNS the DNS Security 868 Extensions/Update can be used [10, 11], for DHCPv6 the DHCPv6 869 Authentication Message can be used [5], and for communications between 870 the IPv6 node, once it has an IPv4 address, and the remote IPv4 node, 871 IPSEC [8] can be used as AIIH does not break secure end- to-end 872 communications at any point in the mechanism. 874 9. Year 2000 Considerations 876 There are no Year 2000 issues in this specification. 878 Appendix A: DSTM Discussion and Issues 880 1. DHCPv6 work needs to be proposed as DHCPv6 additional extension. 882 2. Need to review timers for DHCPv6 and DNS for performance and 883 scalability. 885 3. Can we make the DSTM router a Transition Box with DTI using 886 AIIH? 888 4. Some of the refernences in the spec are not needed. 890 5. Need to add acknowledgements to spec from AIIH and DTI previous 891 work and the input. 893 6. Should DSTM also support tunneling IPv6 within IPv4 at the DTI? 895 7. Should the DSTM Overview contain more information. 897 References 899 [1] Mockapetris, P., "Domain Names - Concepts and Facilities", STD 900 13, RFC 1034, USC/Information Sciences Institute, November 1987. 902 [2] Mockapetris, P., "Domain Names - Implementation and Specifica- 903 tion", STD 13, RFC 1035, USC/Information Sciences Institute, 904 November 1987. 906 [3] S. Deering and R. Hinden. Internet Protocol, Version 6 (IPv6) 907 Architecture", RFC 2460, December 1998. 909 [4] J. Bound and C. Perkins. Dynamic host Configuration Protocol 910 for IPv6. draft-ietf-dhc-dhcpv6-14.txt March 1999 (work 911 in progress). 913 [5] C. Perkins. Extensions for the Dynamic host Configuration 914 Protocol for IPv6. draft-ietf-dhc-dhcpv6ext-11.txt March 915 1999. (work in progress). 917 [6] P. Vixie, S. Thomson, Y. Rekhter, and J. Bound. Dynamic Updates 918 to the Domain Name System (DNS). RFC 2136, April 1997. 920 [7] William R. Cheswick and Steven Bellovin. Firewalls and Internet 921 Security. Addison-Wesley, Reading, MA 1994 (ISBN: 922 0-201-63357-4). 924 [8] IPSEC - This needs to include the Arch, Auth, and ESP specs. 926 [9] S. Bradner. Key words for use in RFCs to indicate Requirement 927 Levels. RFC 2119, March 1997. 929 [10] D. Eastlake and C. Kaufman. Domain Name System Security 930 Extensions. RFC 2065, January 1997. 932 [11] D. Eastlake. Secure Domain Name System Dynamic Update. 933 RFC 2137, April 1997. 935 [12] R. Callon and D. Haskins. Routing Aspects Of IPv6 Transition 936 RFC 2185, September 1997. 938 [13] A. Conta and S. Deering. Generic Packet Tunneling in IPv6. 939 RFC 2473, December 1998. 941 [14] E. Nordmark. Stateless IP/ICMP Translator (SIIT) 942 draft-ietf-ngtrans-siit-03.txts, November 1998 943 (work in progress) 945 [15] R. Gilligan and E. Nordmark. Transition Mechanisms for IPv6 946 hosts and Routers. draft-ietf-ngtrans-trans-mech-01.txt, 947 August 1998 (work in progress). 949 [16] R. Droms. Dynamic host Configuration Protocol. 950 RFC 2131, March 1997. 952 [17] Rekhter, Moskowitz, Karrenburg, Groot. Address Allocation 953 for Private Networks. RFC 1918. February 1996. 955 [18] This needs to reflect the new DNS work for IPv6. 957 [19] Thomson, Narten. IPv6 Stateless Address Configuration. 958 RFC 2462, December 1998. 960 [20] Hinden, Deering. IP Version 6 Addressing Architecture. 961 RFC 2373, July 1998. 963 Authors' Address 965 Jim Bound 966 Compaq Computer Corporation 967 110 Spitbrook Road, ZKO3-3/U14 968 Nashua, NH 03062 969 Phone: (603) 884-0400 970 Email: bound@zk3.dec.com 972 Laurent Toutain 973 ENST Bretagne 974 BP 78 975 35 512 Cesson S�vign� Cedex 976 Phone : +33 2 99 12 70 26 977 Email : Laurent.Toutain@enst-bretagne.fr 979 Hossam Afifi 980 ENST Bretagne 981 BP 78 982 35 512 Cesson S�vign� Cedex 983 Phone : +33 2 99 12 70 36 984 Email : Hossam.Afifi@enst-bretagne.fr