Internet Engineering Task Force Fumio Teraoka INTERNET DRAFT Sony CSL Masahiro Ishiyama Toshiba Keisuke Uehara Keio University Mitsunobu Kunishi Keio University Hiroshi Esaki University of Tokyo 8 December 2000 LIN6: Mobility Support in IPv6 based on End-to-End Communication Model Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC 2026. 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 describes the protocol specification of LIN6. LIN6 supports both macro and micro mobility in IPv6[RFC2460]. LIN6 has several advantages in comparison with Mobile IPv6[MIPv6] as follows: o LIN6 has no header overhead because it does not use any extension headers of IPv6 while Mobile IPv6 uses the Destination Options Header for the Home Address Option and the Routing Header. o LIN6 is more fault tolerant than Mobile IPv6. In Mobile IPv6, the Teraoka Expires 8 June 2001 [Page 1] draft-teraoka-mobility-lin6-00.txt 8 December 2000 Home Agent cannot be replicated to the subnet other than the home link of the mobile node. LIN6 introduces the Mapping Agent which can be replicated anywhere in the Internet. o LIN6 keeps end-to-end communication model, that is, LIN6 does not use any packet intercepter/forwarder such as the Home Agent of Mobile IPv6. There is no tunneling in LIN6. 1. Introduction The following two functions must be provided to achieve transparent mobility in the network layer such as IPv6. o location independent paging: the correspondent node must be able to send a packet by specifying the immutable address of the mobile node regardless of the location of the mobile node. o TCP connection continuity: TCP connections established between the correspondent node and the mobile node must be preserved even if the mobile node moves to another subnet. In IETF, Mobile IPv6[ID-MIPv6] is being standardized to support transparent mobility in IPv6. However, Mobile IPv6 has several problems. First, since Mobile IPv6 makes use of extension headers of IPv6, it has large header overhead. For example, the header overhead becomes 48 bytes in size when two mobile nodes communicate with each other. Second, the location of the Home Agent is restricted by the home address of the mobile node, that is, the Home Agent must be put on the home network of the mobile node. This restriction makes it difficult to replicate the home agent on other subnets for fault tolerance. In addition, the correspondent node cannot communicate with the mobile node if the home agent is connected beyond the firewall. Third, Mobile IPv6 requires Security Association of IPsec[RFC2401] between the correspondent node and the mobile node for optimal routing. It is very difficult to Establish Security association between two nodes of any combination. LIN6 does not require Security Association between the mobile node and the correspondent node for optimal routing. We propose LINA (Location Independent Network Architecture) to support transparent mobility in the network layer by redesigning network architecture such as address structure. LIN6 is an application of LINA to IPv6. LIN6 has no header overhead because it uses no extension headers. The Mapping Agent (see Section XX) can be put anywhere in the Internet regardless of the address of the mobile node. This improves fault tolerance. In a firewall environment, communication with the mobile node is available if the correspondent node and the mobile node are connected to the same region divided by the firewall. Teraoka Expires 8 June 2001 [Page 2] draft-teraoka-mobility-lin6-00.txt 8 December 2000 2. Terminology This document uses the following terms. node: The node is the general term to specify the equipment that understands IP in the Internet. The node includes hosts, mobile terminals, routers, and so on. LIN6 ID: The LIN6 ID is assigned to the node and uniquely identifies the node in the Internet. It is 64 bits in length. LIN6 prefix: The LIN6 prefix is a predefined constant value attached to the head of the LIN6 ID to construct the LIN6 generalized ID. LIN6 generalized ID: The LIN6 generalized ID is the identifier of the node used in the transport layer and the upper layers. It is 128 bits in length. The higher 64 bits of the LIN6 generalized ID is the LIN6 prefix and the lower 64 bits is the LIN6 ID. The LIN6 generalized ID is assigned to the node, not to the network interface. Application programs use the LIN6 generalized ID to indicate the target node. TCP establishes the TCP connection between two LIN6 generalized IDs. Note that the LIN6 generalized ID does not appear in the IPv6 header on the link. network prefix: The network prefix indicates the subnet to which the node is connected. It is attached to the head of the LIN6 ID to construct the LIN6 address. LIN6 address: The LIN6 address is assigned to the network interface of the node. The higher 64 bits of the LIN6 address is the network prefix and the lower 64 bits is the LIN6 ID so that the LIN6 address specifies the identifier of the node as well as the point of attachment to the Internet of the node. Note that the LIN6 address appears in the IPv6 header on the link and is not passed to the transport layer. mapping: The mapping is the relation between the LIN6 ID and the network prefix. Mapping Agent: The Mapping Agent (MA) is the function that maintains the mapping of the mobile node. Each mobile node is associated with one or more Mapping Agents. The relation between the LIN6 ID of the mobile node and the address of the Mapping Agent is registered Teraoka Expires 8 June 2001 [Page 3] draft-teraoka-mobility-lin6-00.txt 8 December 2000 with the DNS. Mapping Cache: The Mapping Cache is the cache for mapping in the node. normal IPv6 address: The aggregatable global unicast address. 3. Protocol Overview 3.1. Address LIN6 uses two types of network addresses: the LIN6 generalized ID and the LIN6 address. Figure 1 depicts their formats. The LIN6 generalized ID is 128 bits in length and is used in the transport layer and the upper layers. LIN6 generalized ID is the identifier of the node in the transport layer and the upper layers and does not change even if the node moves. The LIN6 address is also 128 bits in length and is used in the network layer. The LIN6 address specifies both the location and the identifier of the node. The network prefix part of the LIN6 address changes when the node moves to anther subnet. The formats of the LIN6 generalized ID and the LIN6 address are the same as the format of IPv6 aggregatable global unicast address[RFC2374]. <-------- 64 bits --------> <-------- 64 bits -------> LIN6 +---------------------------+--------------------------+ generalized | LIN6 prefix (constant) | LIN6-ID | ID +---------------------------+--------------------------+ +---------------------------+--------------------------+ LIN6 address | network prefix | LIN6-ID | +---------------------------+--------------------------+ aggregatable +--+------+---+------+------+--------------------------+ global unicast |FP|TLA ID|res|LNA ID|SLA ID| Interface ID | address +--+------+---+------+------+--------------------------+ Figure 1: The LIN6 generalized ID and the LIN6 address Both the LIN6 generalized ID and the LIN6 address consist of two fields: the network prefix and the LIN6 ID. Both fields are 64 bits in length. The LIN6 ID is the global unique identifier of the node. EUI-64[EUI64] will be used as LIN6-ID. The network prefix of the LIN6 address indicates the subnet to which the node is connected while that of the LIN6 generalized ID is the constant value and is called the LIN6 prefix. In other words, the LIN6 address indicates both the location and the identifier of the node while the LIN6 generalized only identifies the node. Thus, the LIN6 generalized ID is used in the transport layer and Teraoka Expires 8 June 2001 [Page 4] draft-teraoka-mobility-lin6-00.txt 8 December 2000 the upper layers to identify the node, and the LIN6 address is used in the network layer to indicate both the location and the identifier of the node. Note that the LIN6 ID and the LIN6 generalized ID are assigned per node while the LIN6 address is assigned per network interface. Also note that the normal IPv6 address, i.e., the aggregatable global unicast address, is assigned to the network interface of the node in addition to the LIN6 address. 3.2. Address Processing Figure 2 shows the procedures of address creation. As mentioned above, the LIN6 generalized ID consists of the LIN6 prefix and the LIN6 ID. In packet transmission, the transport layer specifies the LIN6 generalized ID of the destination node to the network layer. The network layer obtains the network prefix, i.e., the current location, of the destination node by some means (see Section 3.3). The network layer concatenates the obtained network prefix and the LIN6 ID contained in the LIN6 generalized ID to create the LIN6 address of the destination node. In packet reception, the source address field of the packet contains the LIN6 address of the source node. The network layer concatenates the LIN6 prefix and the LIN6 ID contained in the LIN6 address of the source node to create the LIN6 generalized ID, and then the network layer notifies the transport layer of the packet reception with the LIN6 generalized ID of the source node. Thus, from the transport layer's viewpoint, communication is done between the two LIN6 generalized IDs. Teraoka Expires 8 June 2001 [Page 5] draft-teraoka-mobility-lin6-00.txt 8 December 2000 +--------------+--------------+ +--------------+--------------+ | LIN6 prefix | LIN6 ID | | LIN6 prefix | LIN6 ID | +--------------+--------------+ +--------------+--------------+ transport | LIN6 generalized ID ^ layer | | ----------------|---------------------------------|---------------- network layer | | v | +--------------+--------------+ +--------------+--------------+ | LIN6 prefix | LIN6 ID | | LIN6 prefix | LIN6 ID | +--------------+--------------+ +--------------+--------------+ | ^ +------------+ | | | mapping | | +------>+<------+ v | v | | +--------------+ +--------------+ +--------------+ +--------------+ |network prefix| | LIN6 ID | | LIN6 prefix | | LIN6 ID | +--------------+ +--------------+ +--------------+ +--------------+ | | ^ +------>+<-------+ | | | v | +--------------+--------------+ +--------------+--------------+ |network prefix| LIN6 ID | |network prefix| LIN6 ID | +--------------+--------------+ +--------------+--------------+ | LIN6 address ^ | | ----------------|----------------------------------|---------------- data link v | layer Figure 2: Address processing 3.3. Mapping Agent The relation between the LIN6 ID and the network prefix is called mapping. LIN6 introduces the Mapping Agent (MA) to maintain the mapping of the mobile node. The Mapping Agent maintains the mapping of the mobile node and replies to queries about mapping. Each mobile node is associated with one or more Mapping Agents. When the network prefix of the mobile node changes, i.e., when the mobile node moves, the mobile node registers the new network prefix with one of the Mapping Agents that maintain the mapping of the mobile node. Consistency among the databases on the Mapping Agents must be kept by some procedures. These procedures are beyond of the scope of this document. It can be assumed that the relation between the mobile node and its Mapping Agent is almost static in contrast to the mapping of the mobile node. LIN6 makes use of the Domain Name System (DNS) to maintain the Teraoka Expires 8 June 2001 [Page 6] draft-teraoka-mobility-lin6-00.txt 8 December 2000 relation between the mobile node and its Mapping Agents. A new DNS record MA is introduced to register the address of the Mapping Agent of the mobile node with the DNS database. 3.4. Communication Procedure The LIN6 Communication procedure is shown in Figure 3. Assume that the correspondent node (CN) wants to send a packet to the mobile node (MN) and that the CN knows the domain name of the MN. For simplicity, the MN is associated with only a single Mapping Agent (MA). The communication procedure is as follows: 1. When the MN moves to a subnet and obtains a new network prefix, it registers the new mapping with the MA. 2. The CN sends a query packet to the name server (NS) to obtain the address of the MA of the MN by indicating the domain name of the MN. 3. The NS returns the address of the MA. 4. The CN sends a query packet to the MA to obtain the network prefix of the MN by indicating the LIN6 ID of the MN. 5. The MA returns the network prefix of the MN, and then the CN caches the obtained network prefix of the MN. 6. The CN sends a packet to the MN. 7. The MN sends a packet to the CN. NS: Name Server +----+ 1 MA: Mapping Agent | MA | <------------------+ CN: Correspondent node +----+ | MN: Mobile Node ^ | | 4| |5 | 2 | v 6 | +----+ <-------------- +----+ --------------> +----+ | NS | | CN | | MN | +----+ --------------> +----+ <-------------- +----+ 3 7 Figure 3: Communication procedures 4. Packet Formats Teraoka Expires 8 June 2001 [Page 7] draft-teraoka-mobility-lin6-00.txt 8 December 2000 4.1. Data Packet LIN6 uses the normal IPv6 header in which the LIN6 addresses are used in the source address field and the destination address field. Figure 4 shows the format of the normal IPv6 header. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |version| Traffic Class | Flow Label | +-------+---------------+-------+---------------+---------------+ | Payload Length | Next Header | Hop Limit | +-------------------------------+---------------+---------------+ | | + + | Source Address | + (LIN6 Address) + | | + + | | +---------------------------------------------------------------+ | | + + | Destination Address | + (LIN6 Address) + | | + + | | +---------------------------------------------------------------+ Figure 4: IPv6 (LIN6) header format 4.2. Mapping Update and Reply Messages When a mobile node moves to another subnet, i.e., when the network prefix of the mobile node changes, the mobile node sends the Mapping Update Message to the Mapping Agent and the correspondent nodes. Upon receiving the Mapping Update Message, the Mapping Agent or the correspondent node returns the Mapping Reply Message to the mobile node. The Mapping Update and Reply Messages are UDP packets. The Authentication Header of IPv6 must be included in the Mapping Update Message to avoid illegal mapping update. Figure 5 shows the formats of the Mapping Update and Reply Messages. Teraoka Expires 8 June 2001 [Page 8] draft-teraoka-mobility-lin6-00.txt 8 December 2000 0 0 1 3 0 8 6 1 +-->+--------+--------+-----------------+ | | Type | code | Flags | | +--------+--------+-----------------+ | | Sequence Number | | +-----------------------------------+ | | | | + Network Prefix + | | | +----------------------+ | +-----------------------------------+ | IPv6 Base Header | | | | +----------------------+ | + LIN6 ID + |Authentication Header | | | | +----------------------+ | +-----------------------------------+ | UDP Header | | | Timestamp | +----------------------+--+ +-----------------------------------+ |Mapping Update Request| | Lifetime | +----------------------+----->+-----------------------------------+ (a) Mapping Update Request Message +----------------------+ | IPv6 Base Header | +----------------------+ 0 0 1 3 |Authentication Header | 0 8 6 1 +----------------------+ +-->+--------+--------+-----------------+ | UDP Header | | | Type | Code | Flags | +----------------------+--+ +--------+--------+-----------------+ | Mapping Update Reply | | Sequence Number | +----------------------+----->+-----------------------------------+ (b) Mapping Update Reply Message Fig. 5 Mapping Update Request/Reply formats Source Address: the LIN6 address of the source node. Destination Address: the LIN6 address of the destination node. Source Port: TBD. Destination Port: TBD. Type: 0x01: update request 0x02: update reply Code: Teraoka Expires 8 June 2001 [Page 9] draft-teraoka-mobility-lin6-00.txt 8 December 2000 0x00: succeeded 0x01: authentication failed 0x02: ... Flags: TBD Sequence Number: the source node of the Mapping Update Request Message assigns this field a sequence number. This value is copied to this field of the Mapping Update Reply Message. LIN6 ID: the LIN6 ID of the source node. Network Prefix: the current network prefix of the source node. Timestamp: the current time. Lifetime: the period of time in which this mapping is valid. 4.3. MA Query and Reply Messages When a node wants to send a packet to a mobile node, the node sends the MA Query Message to the Mapping Agent to obtain the current network prefix of the mobile node. When the Mapping Agent receives the MA Query Message, it returns the MA Reply Message to the node to notify the network prefix of the mobile node. Figure 6 shows the format of the MA Query and Reply Messages. Teraoka Expires 8 June 2001 [Page 10] draft-teraoka-mobility-lin6-00.txt 8 December 2000 0 0 1 3 0 8 6 1 +-->+--------+--------+-----------------+ | | Type | Code | Flags | | +--------+--------+-----------------+ | | Sequence Number | | +-----------------------------------+ | | | | + Network Prefix + | | | | +-----------------------------------+ | | | +----------------+ | + LIN6 ID + |IPv6 Base Header| | | | +----------------+ | +-----------------------------------+ | UDP Header | | | Timestamp | +----------------+--+ +-----------------------------------+ | MA Query/Reply | | Lifetime | +----------------+----->+-----------------------------------+ Fig.6 MA Query/Reply Message format Source Address: the LIN6 address of the source node. Destination Address: the LIN6 address of the destination node. Source Port: TBD. Destination Port: TBD. Type: 0x01: query 0x02: reply Code: 0x00: succeeded 0x01: no mapping exists 0x02: ... Flags: TBD. Sequence Number: the source node of the MA Query Message assigns this field a sequence number. This value is copied to this field of the MA Reply Message. LIN6 ID: the LIN6 ID of the target node. Network Prefix: the current network prefix of the target node. Teraoka Expires 8 June 2001 [Page 11] draft-teraoka-mobility-lin6-00.txt 8 December 2000 Timestamp: the timestamp of this mapping. Lifetime: the period of time in which this mapping is valid. 5. Processing on the Mobile Node 5.1. Bootstrap When the mobile node is powered on, it obtains the network prefix of the subnet to which it is connected by sending the Router Solicitation Message[RFC2461] and receiving the Router Advertisement Message. Next, the mobile node sends a DNS query packet to obtain the address of the Mapping Agent that maintains the mapping of the mobile node. Next, the mobile node establishes a security association of IPsecNext, the mobile node sends the Mapping Update Request Message to the Mapping Agent to register the current network prefix and receives the Mapping Update Reply Message. 5.2. Processing on Movement The mobile node detects the change of the point of attachment to the Internet by some mechanisms, for example, 1) interrupt by hardware, 2) upcall from the link layer, and 3) router advertisement message. When the mobile node detects a location change, first, it sends the Router Solicitation Message and receives the Router Advertisement Message to obtain the network prefix of the subnet to which the mobile node is connected. Next, the mobile node sends the Mapping Update Request Message to the Mapping Agent and the correspondent nodes to notify the current network prefix. The Mapping Update Request Message must include the Authentication Header. 6. Processing on Mapping Agent Upon receiving the Mapping Update Request Message from the mobile node, first, the Mapping Agent makes it sure that the Authentication Header is correct. If authentication fails, the Mapping Agent returns the Mapping Update Reply Message with the error code Authentication Failed. If authentication succeeds, the Mapping Agent updates the mapping of the mobile node and returns the Mapping Update Reply Message to the mobile node. If the mobile node is associated with two or more Mapping Agents, consistency among the databases on the Mapping Agents must be kept by some procedures. These procedures are beyond of the scope of this document. Teraoka Expires 8 June 2001 [Page 12] draft-teraoka-mobility-lin6-00.txt 8 December 2000 7. Packet Transmission and Reception 7.1. Packet Transmission When the network layer receives a packet transmission request from the transport layer, the network layer makes sure that the destination address passed from the TCP/UDP is a LIN6 generalized ID or a normal IPv6 address by checking the upper 64 bits of the destination address. If the destination address is a normal IPv6 address, the network layer executes the normal IPv6 transmission procedure. If the destination address is a LIN6 generalized ID, the network layer executes the LIN6 procedure described below. The network layer extracts the LIN6 ID from the LIN6 generalized ID and searches the Mapping Cache for the network prefix by using the LIN6 ID as the key. If the network prefix is found, the network layer concatenates the network prefix and the LIN6 ID to create the LIN6 address of the destination node. After that, the network layer executes the normal IPv6 transmission procedure. If the network prefix of the destination node is not found in the Mapping Cache, the node keeps the packet waiting for transmission, and then sends the MA Query Message to the Mapping Agent to obtain the network prefix. Upon receiving the MA Reply Message, the node creates the LIN6 address of the destination node, and then executes the normal IPv6 transmission procedure. 7.2. Packet Reception When the network layer receives a packet from the link layer, first the network layer makes sure that the source address of the IPv6 header is a LIN address or a normal IPv6 address. Refer to the next subsection about how to distinguish between the LIN6 address and the normal IPv6 address. If the source address is the normal IPv6 address, the network layer executes the normal IPv6 reception procedure. If the source address is the LIN6 address, the network layer removes the network prefix part of the LIN6 address, and then attaches the LIN6 prefix to create the LIN6 generalized ID of the source node. After that, the network layer executes the normal IPv6 reception procedure. 7.3. Distinction between the LIN6 Address and the Normal IPv6 Address From the address format viewpoint, the LIN6 address is indistinguishable from the normal IPv6 address. To distinguish the LIN6 address, Sony CSL obtained the OUI value 0x00-01-4A of EUI-64[EUI64]. Thus, if the upper 24 bits of the lower 64 bits of the IPv6 address is 0x00-01-4A, the IPv6 address is the LIN6 address. Teraoka Expires 8 June 2001 [Page 13] draft-teraoka-mobility-lin6-00.txt 8 December 2000 8. Intellectual Property Right This proposal includes patented mechanisms. Author's Address o Fumio Teraoka Sony Computer Science Laboratories, Inc. 3-14-13 Higashigotanda, Shinagawa-ku, Tokyo 141-0022, Japan. Phone: +81-3-5448-4380 Email: tera@SonyCSL.co.jp o Masahiro Ishiyama R&D Center, Toshiba. 1 Komukai Toshiba-Cho, Saiwai-Ku, Kawasaki, Kanagawa 212-8582, Japan. Phone: +81-44-549-2238 Email: masahiro@isl.rdc.toshiba.co.jp o Keisuke Uehara Keio University. 5322 Endo, Fujisawa, Kanagawa 252-8520, Japan. Phone: +81-466-49-1394 Email: kei@wide.ad.jp o Mitsunobu Kunishi Keio University 3-14-1 Hiyoshi, Kohoku-ku, Yokohama, Kanagawa 223-0061, Japan. Phone: Email: kunishi@tokoro-lab.org o Hiroshi Esaki University of Tokyo 2-11-16 Yayoi, Bunkyo-ku, Tokyo 113-8658, Japan. Phone: +81-3-5684-7303 Email: hiroshi@wide.ad.jp References [RFC2460] S. Deering and R. Hinden. Internet Protocol, Version 6 (IPv6) Specification. RFC 2460, Dec. 1998. [MIPv6] C. Perkins. Mobility Support in IPv6. Internet Draft draft- ietf-mobileip-ipv6-13.txt, Nov. 2000. [RFC2401] S. Kent and R. Atkinson. Security Architecture for the Internet Protocol. RFC 2401, Nov. 1998. [RFC2374] R. Hinden, M. O'Dell, and S. Deering. An IPv6 Aggregatable Global Unicast Address Format. RFC 2374, Jul, 1998 Teraoka Expires 8 June 2001 [Page 14] draft-teraoka-mobility-lin6-00.txt 8 December 2000 [EUI64] IEEE. Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority, http://standards.ieee.org/regauth/oui/tutorials/EUI64.html, 1997. Teraoka Expires 8 June 2001 [Page 15]