Internet Engineering Task Force Fumio Teraoka INTERNET DRAFT Sony CSL 3 June 1997 Mobility Support in IPv6 Status of this Memo This document is an Internet-Draft. 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.'' To learn the current status of any Internet-Draft, please check the ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Abstract This memo describes a protocol to support mobility in IPv6. The mobile node has an identifier (home address) and a temporary address (care-of address). The IPv6 base header includes the temporary addresses so that the source and destination addresses are always topologically significant, while the identifiers are included in the Destination Options Header. End nodes may have authentic cache information between identifiers and addresses for routing optimization. This protocol introduces two new destination options: `Source Identifier' and `Destination Identifier', and also introduces two control packets using UDP. 1. Introduction The mobility support protocol (Mobile-IP) in IPv4[1] has several problems. The packet sent to the mobile node is always routed on redundant route. Since the source address of the packet sent by the mobile node is not topologically significant, a firewall might discard such a packet and multicast routing based on reverse path forwarding is not applicable. Thus, it is obvious that the architecture of Mobile-IP is not suitable for mobility support in IPv6. Teraoka Expires: 3 December 1997 [Page 1] draft-teraoka-ipv6-mobility-sup-04.txt 3 June 1997 This memo describes a protocol to support mobility in IPv6. This protocol is based on the same concept of VIP[2], a protocol for mobility support in IPv4. The mobile node has an identifier (home address) and a temporary address (care-of address). TCP/UDP uses the identifier to specify a node. The IPv6 base header includes the temporary address of the mobile node so that the source and destination addresses are always topologically significant, while the identifier of the mobile node is included in the Destination Options Header. End nodes may have authentic cache information between identifiers and addresses for routing optimization. This protocol introduces two new destination options: `source Identifier' and `destination Identifier', and also introduces two control packets using UDP. 2. Terminology This memo uses the following terms: node: The general term for both a host and a router. mobile node (MN): A node that changes the point of attachment to the Internet. stationary node (SN): A node that does not changes the point of attachment to the Internet. A stationary node also understands the mobility support protocol. correspondent node (CN): A peer with which a mobile node is communicating. A correspondent node may be either mobile or stationary. identifier: A number that uniquely identifies a node. Each node has one identifier regardless of the number of network interfaces it has. The identifier is immutable no matter where the node is connected to the Internet. The identifier has the same format of the address and can be used as the default address of the node. home address: The identifier of a node can be thought of as the `home address', in the document[1]. address: Teraoka Expires: 3 December 1997 [Page 2] draft-teraoka-ipv6-mobility-sup-04.txt 3 June 1997 A number that specifies the point of attachment to the Internet. An address is assigned to each network interface of a node. In IPv6, a 128-bit number is used as the address[3]. The address of an interface changes when the node moves to another subnet. The node must obtain an address by some means when it is connected to a subnet. temporary address: Since the address of a node changes when the node moves to another subnet, an address can be called a `temporary address' of a node. care-of address: A temporary address is similar to a care-of address in the document[1]. home subnet: The subnet indicated by the identifier (home address) of a mobile node. address mapping table (AMT): A table that consists of entries, each of which holds the mapping information between an identifier (home address) and an temporary address (care-of address) of a mobile node. Each node may have an AMT for address resolution. address resolution: A function that maps an identifier (home address) to a temporary address (care-of address). primary address resolver (PAR): An address resolver is a node that performs address resolution. A primary address resolver of a mobile node is an address resolver connected to the home subnet of the mobile node. A primary address resolver advertises routing information for the mobile nodes it is managing. A mobile node notifies its primary address resolver(s) of its identifier (home address) and the temporary address (care-of address) when its address changes. A primary address resolver may be either a router connected to the home subnet or a host that has a `pseudo' network interface connected to the `pseudo' home subnet. home agent (HA): The primary address resolver is similar to the Home Agent (HA) in the document[1]. Teraoka Expires: 3 December 1997 [Page 3] draft-teraoka-ipv6-mobility-sup-04.txt 3 June 1997 3. Protocol Overview The protocol defined in this document has two types of packet formats: the data packet and the control packet (AMT Update Request/Reply packet). The data packet is a IPv6 packet to carry an upper layer PDU, while the AMT Update Request/Reply packet is a UDP packet to update an AMT on Primary Address resolver (home agent) and the correspondent node (CN) when a mobile node (MN) moves to another subnet. When a MN moves to a subnet, it obtains a temporary address (care-of address) by some method such as DHCPv6[4], while its identifier (home address) remains unchanged. The MN transmits an AMT Update Request packet to its Primary Address Resolver (home agent). It may also send the AMT Update Request packet to each CN with which it is communicating. Since the AMT Update Request packet has the Authentication Header, the Primary Address Resolver (home agent) or a CN can have an authentic AMT entry for the MN. When a CN not having an AMT entry for a MN transmits a packet, the packet reaches the Primary Address Resolver (home agent) of the MN, and then the packet is forwarded to the temporary address of the MN by tunneling. The MN learns that the CN does not have the AMT entry for the MN. The MN sends an AMT Update Request packet with the Authentication Header to the CN. Once the CN has the AMT entry for the MN, it sets the temporary address (care-of address) of the MN in the IPv6 base header and adds the Destination ID option in the Destination Options header to specify the identifier (home address) of the MN. This packet is forwarded to the MN along the optimal route. When a MN sends a packet, the temporary address of the MN is set in the Source Address field of the IPv6 base header while the identifier (home address) of the MN is included in the Source Identifier option in the Destination Options Header. So the source address is topollogically significant. 4. Option Formats This protocol introduces the `Source Identifier' option and the `Destination Identifier' option in the Destination Options Header. 4.1. Destination Identifier Option Format The destination Identifier option specifies the identifier (home address) of the final destination node of a packet. The format of the destination ID option is depicted in Figure 1. Teraoka Expires: 3 December 1997 [Page 4] draft-teraoka-ipv6-mobility-sup-04.txt 3 June 1997 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type |Opt Data Len=16| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Destination Identifier + | (Destination Home Address) | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1: Destination Identifier option (destination option) Option Type: 0x0? which indicates that this option is included in integrity assurance computation of the Authentication Header[5]. Option Data Length: The length is 16 octets. Destination Identifier. A 128-bit number that uniquely identifies the final destination node regardless of the location, i.e., regardless of the Destination Address in the IPv6 base header. 4.2. Source Identifier Option Format The source Identifier option specifies the identifier (home address) of the source node of a packet. The format of the source Identifier option is depicted in Figure 2. Teraoka Expires: 3 December 1997 [Page 5] draft-teraoka-ipv6-mobility-sup-04.txt 3 June 1997 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type |Opt Data Len=16| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Source Identifier + | (Source Home Address) | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: source Identifier option (destination option) Option Type. 0x0? which indicates that this option is included in integrity assurance computation of the Authentication Header[5]. Option Data Length: The length is 16 octets. Source Identifier. A 128-bit number that uniquely identifies the source node regardless of the location, i.e., regardless of the Source Address in the IPv6 Header. 5. AMT Update Packet Formats The AMT Update packet is a UDP packet. There are two types of AMT Update packets: Request and Reply. The mobile node (MN) sends the AMT Update Request packet to its Primary Address Resolver (Home Agent) when it moves to another subnet. The MN may also send the AMT Update Request packet to each correspondent node (CN) with which it is communicating. When the `Acknowledge' bit is set in the AMT Update Request packet, the receiver returns the AMT Update Reply packet to the source node. 5.1. AMT Update Request Packet Format Figure 3 depicts the format of the AMT Update Request packet, which follows the IPv6 header and the UDP header. Teraoka Expires: 3 December 1997 [Page 6] draft-teraoka-ipv6-mobility-sup-04.txt 3 June 1997 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 |S|A| rsv | Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number (32) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification (64) | +---------------------------------------------------------------+ | Identifier (Home Address) (128) | +---------------------------------------------------------------+ | Temporary Address (Care-of Address) (128) | +---------------------------------------------------------------+ Figure 3: AMT Update Request Packet (UDP packet) Type: 1 (Update Request) S (simultaneous): This bit requests that the receiver creates another AMT entry for the MN even if an AMT entry already exists. A (acknowledge): This bit requests that the receiver returns the AMT Update Reply packet to the sender. Lifetime: The number of seconds for which the receiver should hold this entry before expiration. Identification: This number is created by the MN and used for matching AMT Update Requests and AMT Update Replies. Identifier (home address): The identifier of the MN. Temporary Address (care-of address): The address that specifies the current location of the MN. Teraoka Expires: 3 December 1997 [Page 7] draft-teraoka-ipv6-mobility-sup-04.txt 3 June 1997 5.2. AMT Update Reply Packet Format Figure 4 depicts the format of the AMT Update Reply packet, which follows the IPv6 header and the UDP header. 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 | rsv | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification (64) | +---------------------------------------------------------------+ | Identifier (Home Address) (128) | +---------------------------------------------------------------+ Figure 4: AMT Update Reply Packet (UDP packet) Type: 2 (AMT Update Reply). Code: A value indicating the result of the AMT Update Request. Identification: The value in the Identification field of the AMT Update Request packet. This value is used for matching AMT Update Requests with AMT Update Replies. Identifier (home address): The identifier of the MN from which the AMT Update Request packet was received. 5.3. AMT Update Packets Figure 5 depicts the whole packet format of the AMT Update Request/Reply packet. The AMT Update Request packet must include the Authentication Header[5] to allow the receiver to authenticate the sending MN and the integrity of the contents. Teraoka Expires: 3 December 1997 [Page 8] draft-teraoka-ipv6-mobility-sup-04.txt 3 June 1997 +--------------------------+ | IPv6 Base Header | |- - - - - - - - - - - - - | | Authentication Header | +--------------------------+ | UDP Header | +--------------------------+ | AMT Update Request/Reply | +--------------------------+ Figure 5: AMT Update Request/Reply Packet IPv6 Base Header: - Source Address: the temporary address (care-of address) of the sending node. - Destination Address: the address of the target node. UDP Header: - Source Port: TBD - Destination Port: TBD 6. Data Packet Formats Figure 6 shows data packet formats. The packet shown in Fig.6-(a) is a normal IPv6 packet and used when a correspondent node (CN) sends a packet to a mobile node (MN). IPv6 Header: - Source Address: the address of the sending CN. - Destination Address: the identifier (home address) of the target MN. The packet sent by the CN reaches the Primary Address Resolver (Home Agent) of the MN and is encapsulated as shown in Fig.6-(b). Outer IPv6 Header: - Source Address: the address of the Primary Address Resolver (Home Agent). - Destination Address: the temporary address (care-of address) of Teraoka Expires: 3 December 1997 [Page 9] draft-teraoka-ipv6-mobility-sup-04.txt 3 June 1997 the target MN. When a MN sends a packet to a stationary node (SN), the packet shown in Fig.6-(c) is used. IPv6 Header: - Source Address: the temporary address (care-of address) of the source MN. - Destination Address: the address of the target CN. - Source Identifier Option: the identifier (home address) of the source MN. The packet shown in Fig.6-(d) is used when a SN has the AMT entry for the target MN. IPv6 Header: - Source Address: the address of the source SN. - Destination Address: the temporary address (care-of address) of the target MN. - Destination Identifier Option: the identifier (home address) of the target MN. The packet shown in Fig.6-(e) is used when a MN has the AMT entry for the target MN. IPv6 Header: - Source Address: the temporary address (care-of address) of the source MN. - Destination Address: the temporary address (care-of address) of the target MN. - Source Identifier Option: the identifier (home address) of the source MN. - Destination Identifier Option: the identifier (home address) of the target MN. Teraoka Expires: 3 December 1997 [Page 10] draft-teraoka-ipv6-mobility-sup-04.txt 3 June 1997 +------------------+ | IPv6 base header | +------------------+ - - - +------------------+ | IPv6 base header | | | +------------------+ | | | upper layer | | | | header & data | | | +------------------+ - - - +------------------+ (a) CN to HA (b) HA to MN +------------------+ +------------------+ +------------------+ | IPv6 base header | | IPv6 base header | | IPv6 base header | |- - - - - - - - - | |- - - - - - - - - | |- - - - - - - - - | | Src ID Option | | Dst ID Options | | Src ID Option | +------------------+ +------------------+ |- - - - - - - - - | | upper layer | | upper layer | | Dst ID Option | | header & data | | header & data | +------------------+ +------------------+ +------------------+ | upper layer | (c) MN to SN (d) SN to MN | header & data | +------------------+ (e) MN to MN Figure 6: Packet formats 7. AMT Entry Format Each node may have an Address Mapping Table (AMT) for routing optimization and fault tolerance of network partitioning. When a node receives the AMT Update Request packet and the authentication of the packet is successful, it creates or updates the AMT entry for the node specified by the Identifier field of the AMT Update Request packet. A typical format of the AMT entry is depicted in Figure 7. Teraoka Expires: 3 December 1997 [Page 11] draft-teraoka-ipv6-mobility-sup-04.txt 3 June 1997 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | rsv | Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Identifier + | (Home Address) | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Temporary Address + | (Care-of Address) | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 7: Address mapping table entry format Sequence Number: The sequence number of the AMT Update Request Packet that created or updated this AMT entry. Lifetime: The value of this field is periodically decremented. This AMT entry is deleted when the value becomes zero. Identifier: The identifier (home address) of the mobile node. Address: The temporary address (care-of address) of the mobile node. 8. Procedures in Connecting to a Subnet Teraoka Expires: 3 December 1997 [Page 12] draft-teraoka-ipv6-mobility-sup-04.txt 3 June 1997 8.1. Procedures on a Mobile Node When a mobile node (MN) connects to a subnet, it obtains a temporary address by some method such as DHCPv6[4]. Again, the identifier (home address) of the MN remains unchanged. The MN transmits an AMT Update Request packet to its Primary Address Resolver (Home Agent). Next, the MN may transmit the AMT update packet to each correspondent node (CN) with which it is communicating. 8.2. Procedures on a Node Receiving an AMT Update Request Packet When a node receives an AMT Update Request packet, it authenticates the packet. If authentication failed, the packet is discarded. If the authentication is successful, the receiving node searches its AMT for the entry for the MN specified by the Identifier field. A new entry is created if an AMT entry for the MN does not exist. If the AMT entry exists, the Sequence Number field of the AMT Update Request packet is compared with the Sequence Number field of the AMT entry. The existing AMT entry is modified if the AMT Update Request packet has larger sequence number than the AMT entry. If the AMT entry exists and the Sequence Number is same as the AMT Update Request packet, only the Lifetime field of the AMT entry is updated. If the `A' bit of the AMT Update Request packet is set and authentication is successful, the receiving node returns an AMT Update Reply packet to the MN. 9. Procedures in Data Communication 9.1. From a Correspondent Node to a Mobile Node If the source correspondent node (CN) does not have an AMT entry for the destination mobile node (MN), the packet depicted in Fig.6-(a) is used. The identifier (home address) of the MN is set in the Destination Address field. This packet reaches the Primary Address Resolver (Home Agent) of the MN. The Home Agent encapsulates the packet and forwards it to the MN as shown in Fig.6-(b). The temporary address (care-of address) of the MN is set to the Destination Address field of the outer header. If a CN has the AMT entry for the destination MN, the packet depicted in Fig.6-(d) is used. The temporary address (care-of address) of the MN is set to the Destination Address field of the IPv6 base header. The identifier (home address) of the MN is included in the Destination Identifier option. This packet is forwarded on the optimal route to the MN. Teraoka Expires: 3 December 1997 [Page 13] draft-teraoka-ipv6-mobility-sup-04.txt 3 June 1997 9.2. From a MN to a CN If the source MN does not have an AMT entry for the destination CN, the packet depicted in Fig.6-(b) is used. The temporary address (care-of address) of the MN is set to the Source Address field of the IPv6 base header. The Source ID option includes the identifier (home address) of the MN. If the MN have the AMT entry for the CN, the packet depicted in Fig.6- (d) is used. the temporary address (care-of address) of the CN is set to the Destination Address field of the IPv6 base header and the identifier (home address) of the CN is included in the Destination Identifier option. Author's Address: o Fumio Teraoka Sony Computer Science Laboratory Inc. 3-14-13 Higashigotanda, Shinagawa-ku, Tokyo 141, Japan. Phone: +81-3-5448-4380 Email: tera@sonycsl.co.jp References [1] C. Perkins, "IP Mobility Support," RFC 2002, October 1996. [2] F. Teraoka, K. Uehara, H. Sunahara, and J. Murai. VIP: A Protocol Providing Host Mobility. CACM, Vol. 37, No. 8, Aug. 1994. [3] S. Deering and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification," RFC 1883, December 1995. [4] J. Bound and C. Perkins. Dynamic Host Configuration Protocol for IPv6 (DHCPv6). Internet-draft draft-ietf-dhc-dhcpv6-10.txt, May 1997. [5] R. Atkinson. IP Authentication Header. RFC 1826, August 1995. Teraoka Expires: 3 December 1997 [Page 14]