Individual Submission Internet Draft Jae-Hoon Jeong Hyun-Wook Cha Jung-Soo Park Hyoung-Jun Kim ETRI Expires: November 2003 27 May 2003 Ad Hoc IP Address Autoconfiguration Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026 except that the right to produce derivative works is not granted [1]. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress". The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This document specifies the steps a node in ad hoc network takes in deciding how to autoconfigure its IPv4 or IPv6 address in network interface. Because the ad hoc IP address autoconfiguration in this document considers ad hoc network's partition and mergence, the address duplication that can be caused by ad hoc network's mergence can be resolved. Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [2]. Jeong, Cha, Park, Kim Expires - November 2003 [Page 1] Internet-Draft Ad Hoc IP Address Autoconfiguration May 2003 Table of Contents 1. Terminology...................................................2 2. Introduction..................................................3 3. Overview......................................................3 4. Message Format for Ad Hoc IP Address Autoconfiguration........4 4.1 Message Format for Ad Hoc IPv4 Address Autoconfiguration.4 4.2 Message Format for Ad Hoc IPv6 Address Autoconfiguration.5 5. Procedure of Ad Hoc IP Address Autoconfiguration..............6 5.1 Procedure of Ad Hoc IPv4 Address Autoconfiguration.......7 5.1.1 Procedure of Strong DAD............................7 5.1.2 Procedure of Weak DAD..............................7 5.2 Procedure of Ad Hoc IPv6 Address Autoconfiguration.......8 5.2.1 Procedure of Strong DAD............................9 5.2.2 Procedure of Weak DAD..............................9 6. Maintenance of Upper-layer Sessions under Address Duplication.9 7. Security Considerations......................................10 8. References...................................................10 9. Acknowledgements.............................................10 10.Authors' Addresses...........................................10 1. Terminology This document uses the terminology described in [3][4]. In addition, seven new terms are defined below: Mobile Ad Hoc Network (MANET) The network where mobile nodes can communicate with one another without preexisting communication infrastructure, such as base station or access point. Duplicate Address Detection (DAD) The process by which a node, which lacks an IP address, determines address, determines whether a candidate address it has selected is available. A node already equipped with an IP address takes part in DAD in order to protect its IP address from being accidentally used by another node. Strong DAD The timed-based DAD for the purpose of checking if there is address duplication in a connected MANET partition within a finite bounded time interval [5]. Weak DAD Jeong, Cha, Park, Kim Expires - November 2003 [Page 2] Internet-Draft Ad Hoc IP Address Autoconfiguration May 2003 The DAD for the purpose of detecting address duplication during ad hoc routing. Key is used for the purpose of detecting duplicate IP addresses, which is selected to be unique by mobile node. When mobile node receives a routing control packet, it compares the pairs of address and key contained in the packet with those in the routing table or cache [5]. Address Request (AREQ) The message used during strong DAD for the purpose of checking if there is another node having the requested address [6]. Address Reply (AREP) The message used during strong DAD for the purpose of indicating the requested address has already been utilized [6]. Address Error (AERR) The message used during weak DAD for the purpose of indicating that an address duplication happened or that the address of peer node has been changed. 2. Introduction IPv6 stateless address autoconfiguration [5] provides a way to autoconfigure either fixed or mobile nodes with one or more IPv6 addresses and default routes. But this is not suitable for multi-hop ad hoc networks that has dynamic network topology. Ad hoc networks become partitioned and merged as intermediate nodes move. In this environment, IPv6 stateless address autoconfiguration should be able to process the address duplication not only within a connected ad hoc partition, but also in the case that two partitions having duplicate addresses respectively become merged. This document provides ad hoc IP address autoconfiguration in IPv4 ad hoc network as well as in IPv6 ad hoc network. 3. Overview IPv4 or IPv6 unicast address of ad hoc node is autoconfigured by IP address autoconfiguration for ad hoc networks. The configuration of address is comprised of three steps; (a) selection of random address, (b) verification of the uniqueness of the address and (c) assignment of the address into network interface. The duplication address detection (DAD) proposed in this document not only check address duplication during the initialization of address configuration, but also check and resolve address duplication during Jeong, Cha, Park, Kim Expires - November 2003 [Page 3] Internet-Draft Ad Hoc IP Address Autoconfiguration May 2003 ad hoc routing by intermediate nodes. Also, during the resolution of address conflict, the sessions using the conflicted address can be maintained until the sessions are closed. The DAD for ad hoc network in this document is a hybrid scheme consisting of two phases; (a) Strong DAD phase and (b) Weak DAD phase. Within a connected ad hoc partition, strong DAD checks if there is any address duplication. During ad hoc routing, weak DAD checks if address duplication has occurred when two or more MANET partitions having duplicate addresses are merged. 4. Message Format for Ad Hoc IP Address Autoconfiguration 4.1 Message Format for Ad Hoc IPv4 Address Autoconfiguration The mechanism of this document needs new ICMPv4 types for ad hoc IPv4 address autoconfiguration. Figure 1 shows the format of the messages related to ad hoc address autoconfiguration. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originator's IPv4 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Requested or Duplicate IPv4 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1. Message Format for Ad Hoc IPv4 Address Autoconfiguration Fields: Type 8-bit identifier of the type of ICMPv4 message. Message Name Type AREQ (TBD) AREP (TBD) AERR (TBD) Code 8-bit unsigned integer. As the code for message type, the valid value is either 0 or 1. Code value 1 in AERR message indicates that the peer Jeong, Cha, Park, Kim Expires - November 2003 [Page 4] Internet-Draft Ad Hoc IP Address Autoconfiguration May 2003 node's address has been changed. In the other cases, code value is always 0. Checksum 16-bit unsigned integer. The checksum for the ICMPv4 message and parts of the IPv4 header Identifier 32-bit unsigned integer. The identifier for ad hoc address autoconfiguration message is used to prevent duplicate AREQ message from being flooded. Originator's IPv4 Address The IPv4 address of the sender of ad hoc address autoconfiguration message. Requested or Duplicate IPv4 Address The requested IPv4 address in AREQ and AREP messages, or the duplicate IPv4 address in AERR message. AREQ and AREP messages are used during strong DAD and AERR message during weak DAD. Because AREQ message is forwarded by higher layer than network layer through local broadcasting, "Identifier" field is necessary. 4.2 Message Format for Ad Hoc IPv6 Address Autoconfiguration The mechanism of this document needs new ICMPv6 types for ad hoc IPv6 address autoconfiguration. Figure 2 shows the format of the messages related to ad hoc address autoconfiguration. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Originator's IPv6 Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | Jeong, Cha, Park, Kim Expires - November 2003 [Page 5] Internet-Draft Ad Hoc IP Address Autoconfiguration May 2003 + Requested or Duplicate IPv6 Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2. Message Format for Ad Hoc IPv6 Address Autoconfiguration Fields: Type 8-bit identifier of the type of ICMPv6 message. Message Name Type AREQ (TBD) AREP (TBD) AERR (TBD) Code 8-bit unsigned integer. As the code for message type, the valid value is either 0 or 1. Code value 1 in AERR message indicates that the peer node's address has been changed. In the other cases, code value is always 0. Checksum 16-bit unsigned integer. The checksum for the ICMPv6 message and parts of the IPv6 header Identifier 32-bit unsigned integer. The identifier for ad hoc address autoconfiguration message is used to prevent duplicate AREQ message from being flooded. Originator's IPv6 Address The IPv6 address of the sender of ad hoc address autoconfiguration message. Requested or Duplicate IPv6 Address The requested IPv6 address in AREQ and AREP messages, or the duplicate IPv6 address in AERR message. 5. Procedure of Ad Hoc IP Address Autoconfiguration The procedure of ad hoc IP address autoconfiguration in an ad hoc node is comprised of two phases; (a) Strong DAD phase and (b) Weak DAD phase. Jeong, Cha, Park, Kim Expires - November 2003 [Page 6] Internet-Draft Ad Hoc IP Address Autoconfiguration May 2003 Because this document does not consider the global connectivity to the Internet, it assumes that MANET is a temporary network isolated from the Internet and the scope of addresses used in MANET is not global, but local. 5.1 Procedure of Ad Hoc IPv4 Address Autoconfiguration For IPv4 address, "169.254/16" is used as IPv4 MANET exclusive prefix, IPV4_MANET_PREFIX [6]. Among IPV4_MANET_PREFIX, IPv4 addresses in the range 1 ~ 2047 (TMP_ADDR) in the low-order 16 bits are used for temporary IPv4 unicast address during strong DAD. The rest of addresses in the range TMP_ADDR + 1 ~ 65534 in the low-order 16 bits are used as tentative IPv4 address for actual IPv4 unicast address. In the future, this prefix can be replaced with another one for ad hoc network. 5.1.1 Procedure of Strong DAD In the strong DAD phase, an ad hoc node autoconfigures a unique IPv4 address in its network interface as follows; Step (a) : Node selects a temporary address and configures it in network interface. Step (b) : Node selects a tentative address and makes an AREQ message for the address. Node initializes a variable for retransmission of AREQ message, retrans_count, into 0. Step (c) : Node broadcasts the AREQ message in IPv4 MANET broadcast address, 255.255.255.255, and increases the count for transmission of AREQ message, retrans_count by 1. It waits for AREP message until the timer for strong DAD expires. If an AREP message for the sent AREQ message arrives until the timer expires, node executes Step (e). Otherwise, node executes Step (d). Step (d) : If retrans_count is equal to 3, DAD_RETRIES, Node returns to Step (f). Otherwise, it goes to Step (c). Step (e) : If the received AREP message is associated with the sent AREQ message, Node returns to Step (b). Step (f) : Because the requested address that is tentative is unique in the connected partition, node replaces the temporary address with it as IPv4 unicast address of network interface. 5.1.2 Procedure of Weak DAD Jeong, Cha, Park, Kim Expires - November 2003 [Page 7] Internet-Draft Ad Hoc IP Address Autoconfiguration May 2003 For weak DAD, virtual IP address is used, which is the combination of IP address and key. In the weak DAD phase, ad hoc routing, an address duplication is detected and resolved as follows; Step (a) : Node is ready to receive address autoconfiguration message or ad hoc routing control packet. Ad hoc routing protocol is either proactive or reactive. If the received packet is address autoconfiguration message, node executes Step (b). If the received packet is ad hoc routing control packet, node executes Step (f). Step (b) : If the address autoconfiguration message is AREQ, node executes Step (c). If the message is AREP, node executes Step (d). If the message is AERR, node executes Step (e). Step (c) : If the message is what was received previously, node discards the message. Otherwise, node compares its address with the requested address in the message. If two addresses are the same, node sends the originator node an AREP message indicating address duplication. Otherwise, node floods the message to neighbors. Step (d) : If the duplicate address in the AREP message is corresponding to the address under tentative state during strong DAD, node starts strong DAD procedure again. Otherwise, it discards the message. Step (e) : If the duplicate address in the AERR message is the same as node's, node starts strong DAD procedure in order to autoconfigure a new address again. Otherwise, it discards the message. Step (f) : If the control packet is what was received previously, node discards the packet. Otherwise, node investigates each virtual IP address, consisting of IP address and key, contained in control packet to see that there is the same pair in routing table or cache. If there is the same pair, node sends an AERR message to the node using duplicate address that is associated with a different key. Otherwise, it executes the rest of the procedure related to processing ad hoc routing control packets. 5.2 Procedure of Ad Hoc IPv6 Address Autoconfiguration For IPv6 address, "fec0:0:0:ffff::/64" is used as IPv6 MANET exclusive prefix, IPV6_MANET_PREFIX [6]. Among the IPV6_MANET_PREFIX, "fec0:0:0:ffff::/96" is used as IPV6_MANET_INIT_PREFIX for temporary unicast address during strong DAD. The low-order 32 bits of the temporary address are configured with 32-bit pseudo random number. IPV6_MANET_PREFIX except IPV6_MANET_INIT_PREFIX is used for actual unicast address. The address is tentative address until the uniqueness of it is verified by strong DAD. Jeong, Cha, Park, Kim Expires - November 2003 [Page 8] Internet-Draft Ad Hoc IP Address Autoconfiguration May 2003 Recently, IPv6 site-local address has been deprecated by IPv6 working group. Since IETF-56 meeting, IPv6 working group has been discussing local prefix for local networks separated from the Internet, such as ad hoc network [7]. If ad hoc prefix is determined by IPv6 working group, IPV6_MANET_PREFIX will have the new one for ad hoc network. 5.2.1 Procedure of Strong DAD In the strong DAD phase, an ad hoc node autoconfigures a unique IPv6 address in its network interface the same way as IPv4 Strong DAD except that in Step (c), node sends the AREQ message by local broadcast in IPv6 link-local scoped all-node multicast address, ff02::1/64. 5.2.2 Procedure of Weak DAD The IPv6 weak DAD phase is the same as the IPv4 weak DAD phase. 6. Maintenance of Upper-layer Sessions under Address Duplication When address duplication happens and the duplicate address is replaced with another, the sessions above network layer can be broken. So, the survivability of upper-layer sessions using the duplicate address SHOULD be guaranteed. In order to allow data packets related to the sessions using the duplicate address to be forwarded to destination nodes for a while, after sending error message (i.e., AERR message) to the node related to the duplicate address, the intermediate nodes that perceive address duplication continue to forward data packets associated with the sessions using the duplicate address until the route entry for the duplicate address expires. The node that receives an AERR message autoconfigures a new IPv6 address through strong DAD and makes the new address used by the old upper-layer sessions that used the duplicate address as well as new upper-layer sessions from this time forward. The node informs the peer nodes of the change of address by sending AERR messages with code 1. The "Originator's IP Address" field contains the duplicate address and the "Requested IP Address" field contains a new address to be used for the communication. After receiving the AERR message, the peer node sends its packets to the node through IP tunneling. The destination address in outer IP header is the new IP address of the node that announced duplicate address and that in inner IP header is the duplicate IP address of the node. When the node receives tunneled packet from the peer node, it decapsulates the packet and delivers the data in the packet to upper layer. Both the node and peer nodes maintain the information of duplicate address and use it for processing IP tunneling. Jeong, Cha, Park, Kim Expires - November 2003 [Page 9] Internet-Draft Ad Hoc IP Address Autoconfiguration May 2003 7. Security Considerations In order to provide secure ad hoc IP address autoconfiguration in ad hoc network, we can use IPsec ESP with a null-transform to authenticate ad hoc IP autoconfiguration messages or control packets, which can be easily accomplished through the configuration of a group pre-shared secret key for the trusted nodes. 8. References [1] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [3] T. Narten, E. Nordmark and W. Simpson, "Neighbour Discovery for IP version 6", RFC 2461. [4] S. Thomson and T. Narten, "IPv6 Stateless Address Autoconfiguration", RFC 2462. [5] Nitin H. Vaidya, "Weak Duplicate Address Detection in Mobile Ad Hoc Networks", MobiHoc2002, June 2002. [6] Charles E. Perkins, Jari T. Malinen, Ryuji Wakikawa, Elizabeth M. Belding-Royer and Yuan Sun, "IP Address Autoconfiguration for Ad Hoc Networks", draft-ietf-manet-autoconf-01.txt, November 2001. [7] R. Hinden, "Globally Unique IPv6 Local Unicast Addresses", draft- hinden-ipv6-global-local-addr-00.txt, May 2003. 9. Acknowledgements The authors would like to acknowledge the previous contributions of the following people; Charles E. Perkins, Jari T. Malinen, Ryuji Wakikawa, Elizabeth M. Belding-Royer and Yuan Sun. In addition, the important definitions (e.g., Strong DAD and Weak DAD) and mechanisms for finding and resolving duplicate address have been derived from Prof. Nitin H. Vaidya's work. Especially, we thank for his contribution. 10. Authors' Addresses Jae-Hoon Jeong ETRI / PEC 161 Gajong-Dong, Yusong-Gu Jeong, Cha, Park, Kim Expires - November 2003 [Page 10] Internet-Draft Ad Hoc IP Address Autoconfiguration May 2003 Daejon 305-350 Korea Phone: +82 42 860 1664 EMail: paul@etri.re.kr Hyun-Wook Cha ETRI / PEC 161 Gajong-Dong, Yusong-Gu Daejon 305-350 Korea Phone: +82 42 860 1076 EMail: jafy@etri.re.kr Jung-Soo Park ETRI / PEC 161 Gajong-Dong, Yusong-Gu Daejon 305-350 Korea Phone: +82 42 860 6514 EMail: pjs@etri.re.kr Hyoung-Jun Kim ETRI / PEC 161 Gajong-Dong, Yusong-Gu Daejon 305-350 Korea Phone: +82 42 860 6576 EMail: khj@etri.re.kr Jeong, Cha, Park, Kim Expires - November 2003 [Page 11]