INTERNET DRAFT Zhen Hua Shen draft-shen-mobileip-ipv6-ha-discov-00.txt Winston Seah Anthony Lo National University of Singapore Date: Feburary 1999 Enhancements to Dynamic Home Agent Discovery Status of This Memo This document is an Internet-Draft and is in full conformance with all the provisions of Section 10 of RFC2026. 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 view the entire list of current Internet-Drafts, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast). Abstract The purpose of this document is to contribute to the development of Dynamic Home Agent Discovery in draft-ietf-mobileip-ip6-07.txt[1]. Dynamic Home Agent Discovery refers to a mobile node's ability to choose their own home agents while in a foreign net for Mobile IPv6. We have identified some shortcomings and ambiguities in the current draft specification during the implementation of Dynamic Home Agent Discovery. We are proposing enhancements and extensions that would benefit the protocol. Shen, Seah & Lo [Page 1] INTERNET DRAFT draft-shen-mobileip-ipv6-ha-discov-00.txt Feb 1999 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . .2 1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . .2 2. Issues for Consideration . . . . . . . . . . . . . . . . . .4 2.1 Proposed Home Agent Information Option . . . . . . . . . . .4 2.2 Setting of the Home Agent Preference . . . . . . . . . . . .6 2.3 Home Link Loading in Mobile IPv6 Destination Option Sub-Options . . . . . . . . . . . . . . . . . . . . . . . .8 3. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 10 4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 10 5. References . . . . . . . . . . . . . . . . . . . . . . . . 10 6. Author's Address . . . . . . . . . . . . . . . . . . . . . 10 1. Introduction In the Mobile IP working group, much discussion have been carried out with many extensions and enhancements proposed for the base specification of Mobile IPv6. However, in the course of implementing the home agent discovery process, we discovered certain shortcomings and ambiguities in the current draft[1]. Some of these shortcomings are the unclear advertisement of global IP addresses between the Home Agents, undefined setting of the home agent preference field to be used by mobile nodes for direct Binding Updates and overlooking home link loading when sending the home agent list to mobile nodes. The following proposal seeks to discuss these shortcomings and offer solutions to overcome them. 1.1 Terminology General Terms IP Internet Protocol Version 6 (IPv6). node A device that implements IP. router A node that forwards IP packets not explicitly addressed to itself. Shen, Seah & Lo [Page 2] INTERNET DRAFT draft-shen-mobileip-ipv6-ha-discov-00.txt Feb 1999 link A communication facility or medium over which nodes can communicate at the link layer, such as an Ethernet (simple or bridged). A link is the layer immediately below IP. home address An IP address assigned to a mobile node within its home link. home link The link on which a mobile node's home subnet prefix is defined. Standard IP routing mechanisms will deliver packets destined for a mobile node's home address to its home link. mobile node (MN) A node that can change its point of attachment from one link to another, while still being reachable via its home address. foreign link Any link other than the mobile node's home link. home agent (HA) A router on a mobile node's home link with which the mobile node has registered its current care-of address. While the mobile node is away from home, the home agent intercepts packets on the home link destined to the mobile node's home address, encapsulates them, and tunnels them to the mobile node's registered care-of address. care-of address An IP address associated with a mobile node while visiting a foreign link; the subnet prefix of this IP address is a foreign subnet prefix. Among the multiple care-of addresses that a mobile node may have at a time (e.g., with different subnet prefixes), the one registered with the mobile node's home agent is called its "primary" care-of address. binding The association of the home address of a mobile node with a care-of address for that mobile node, along with the remaining lifetime of that association. binding cache (BC) A list that all nodes that support mobile ipv6 maintain. The binding cache maintains information such as the IP addresses of linked nodes and the lifetimes of these nodes and links. Shen, Seah & Lo [Page 3] INTERNET DRAFT draft-shen-mobileip-ipv6-ha-discov-00.txt Feb 1999 home agent list A list that all home agents in the home link maintain. The home agent list SHOULD contain information regarding the home agent's preference value, lifetime, link local address and global IP addresses. 2. Issues for Consideration 2.1 Proposed Home Agent Information Option As specified in [1, section 6.2] of the Modified Prefix Information Option Format, the prefix contains a global IP address if the "R" bit is set. 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\ M | Type | Length | Prefix Length |L|A|R|Reserved1|| o P H +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| d r e | Valid Lifetime || i e a +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ >f f d | Preferred Lifetime || i i e +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| e x r | Reserved2 || d +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/ | | + Prefix + | (stated to contain a list | + of global IP addresses) + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ One of the reasons relating to dynamic home agent address discovery that requires the use of global IP addresses is to allow a home agent (a router) to learn the address of all other home agents on the link for which it is providing home agent service, for use in building its Home Agents List as part of the dynamic home agent address discovery mechanism [1, sections 9.2 and 10.6]. Current situation: A home agent can have multiple global IP addresses because of its dual functionality as a router. As specified in [1], the current home agent information option format does not include a global IP address. However, Dynamic Home Address Discovery does require the inclusion of a global IP address for a mobile node to perform a direct binding update with one of its home agents after receiving the home agent list. Shen, Seah & Lo [Page 4] INTERNET DRAFT draft-shen-mobileip-ipv6-ha-discov-00.txt Feb 1999 Issue for Consideration: To advertise a home agent's presence to all other home agents in the multicast group, we propose putting the global IP address in the current home agent information option. This will advertise every global IP address (if there is more than one) more neatly and with less ambiguity as shown in the following figures: Current Home Agent Information Option Format 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Home Agent Preference | Home Agent Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Proposed Home Agent Information Option Format 0 1 2 3 +---------------+---------------+---------------+----------------+ | Type | Length | Reserved | +---------------+---------------+---------------+----------------+ | Home Agent Preference | Home Agent Lifetime | +===============+===============+===============+================+ | | \ + + | | Global IP | | + Address + |new | | | + + | | | | +===============+===============+===============+================+ / The Length field should be N*20 octets, where N is the number of Home agent entries. Shen, Seah & Lo [Page 5] INTERNET DRAFT draft-shen-mobileip-ipv6-ha-discov-00.txt Feb 1999 The following diagram shows the current and proposed formats for comparison: Frame Format for Information option Proposed Frame Format if there if there was more than 1 global IP was more than 1 global IP address (Since the global IP address address is shown below. position is not clearly defined in [1], the interpreted frame format is shown below). +----------------------+\ +----------------------+ |Modified Prefix Header| | |Modified Prefix Header| +----------------------+ | Modified +----------------------+\ | Global IP 1 | >Prefix | Home Agent Info 1 | | Proposed +----------------------+ | Info +----------------------+ >Home | Global IP 2 | | | Global IP 1 | | Agent +----------------------+< +----------------------+/ Info | Home Agent Info 1 | | Current | Home Agent Info 2 | +----------------------+ >Home Agent+----------------------+ | Home Agent Info 2 | | Info | Global IP 2 | +----------------------+/ +----------------------+ 2.2 Setting of the Home Agent Preference Current Situation: [1] does not specify how the home agent preference is set. This can amount to an issue in dynamic home agent discovery since the home agent preference level dictates which is the first home agent that the mobile node should send a direct binding update to. Issue for Consideration: The setting of the home agent's preference value must be based on a property of the home agent that does not change too rapidly. This is because the preference field is updated in the form of router advertisements among home agents, so rapidly changing properties will not provide a good real-time measurement on the state of the home agent. We propose a method of setting a home agent's preference based on the level of loading at a home agent. This is most logical since if the level of loading is low, the mobile node will most likely have no trouble binding to its home link in its first direct binding update. The loading measurement schemes are inspired by load balancing algorithms which has been adopted in [3]. Shen, Seah & Lo [Page 6] INTERNET DRAFT draft-shen-mobileip-ipv6-ha-discov-00.txt Feb 1999 - Timer Based Every home agent maintains its own timer list with a timer entry for each mobile node, each of these timers dictates the duration which the mobile node has been attached to the home agent. The sum of all the timer entries in this list can dictate the level of loading in the home agent. - Attachment Based Every home agent maintains a binding cache that counts the number of mobile nodes currently attached to itself. The sum of all the currently attached mobile nodes can dictate the level of loading in the home agent. - Queue Based Every home agent maintains a queue table dictating the number queue packets currently destined for each node. The sum of all queue packets can dictate the level of loading in the home agent. Based on the current draft standards and some implementations, each Home Agent has a binding cache and it contains: - Duration of each mobile node connected. - Number of mobile nodes currently connected. - Number of outgoing packets to each mobile node. Processing of queue packets will be the most accurate measure of loading. But it will fail to deliver real-time results because the size of queue packets for all mobile nodes in the home agent changes rather rapidly. Processing the duration length of all mobile nodes connected to a home agent is a simple alternative but seems the least accurate among the three ways to consider loading. A simpler algorithm will be to take into account the number of mobile nodes, (which is unlikely to change) by summing of the number of different IDs in the binding cache of the home agent. typedef struct binding_cache{ . struct mobile_node_entry mne1; /* lst entry*/ struct mobile_node_entry mne2; /* 2nd entry*/ . } bc; int ha_load (struct binding_cache *bc) { if((ha_lifetime>0)&&(sum_of(mne)>0)) int load = 32768-sum_of(mn); return load; else return 0; } Shen, Seah & Lo [Page 7] INTERNET DRAFT draft-shen-mobileip-ipv6-ha-discov-00.txt Feb 1999 home_agent_preference = ha_load (bc) where home_agent_preference is a 16-bit signed, two's-complement integer. 2.3 Home Link Loading in Mobile IPv6 Destination Option Sub-Options As specified in [1, Section 5.5], when a mobile node sends an anycast Binding Update, the first Home Agent that intercepts this request will respond with an entire Home Agent List in its Binding Acknowledgement. The global IP addresses in this list are arranged in the order of decreasing preference. This acknowledgement reply includes +----------------+------------------+--------------------+-------------+ | Sub-Option Type| Sub-Option Len | Sub-Option Data .... | +----------------+------------------+--------------------+-------------+ Sub-Option Type: The home agent list sub-option sets a value of 2 in its sub-option type. Sub-Option Len: The home agent list sub-option sets a value of 16*N octets where N denotes the number of global IP addresses in its sub-option len. Sub-Option Data: The home agent list sub-option stores the global IP addresses of all advertised home agents in its sub-option data. It should be noted that [1] states that each home agent is suppose to have only one global IP address advertised. Current situation: From [1 ,section 6.4], a home agent's preference can be set to zero if the home agent bit (H) is set but is not followed by a Home Agent Information Option. Likewise, it can also be set very low if there is a high level of loading in the home agent, where the loading of a home agent is defined in the earlier section. If the mobile node does not know that all home agents in the given list are busy, it could be trying to bind to its home link with the given home agent list, only to get rejected by each home agent again and again. The possiblity of such an occurrence is slim but possible. Therefore, it will be good to inform the mobile node of the level of loading in the home link. Shen, Seah & Lo [Page 8] INTERNET DRAFT draft-shen-mobileip-ipv6-ha-discov-00.txt Feb 1999 Issue for Consideration: We describe two possible ways to avoid this scenario. - Home Agent that receives the anycast Binding Update computes the level of loading of all home agents in its list. If the level of loading at the home link is high, it delays replying the binding acknowledgement and only sends the list if the loading is low. The problem with this approach is that the mobile node will continue to send more anycast binding updates and this will continue to add traffic to the WAN. - The second approach is to inform the mobile node the level of loading in the home link. The mobile node will then have sufficient knowledge to know its chances of binding with the home link and whether or not to send another anycast binding update at a latter time. The proposed modified Home Agent List Sub-Option is shown below: +---------------+---------------+===============+===============+ |Sub-Option Type|Sub-Option Len | Home Link Loading | +---------------+---------------+===============+===============+ | | + + | Sub-Option Data | + (List of Global IP addresses) + | | + + | | +---------------+---------------+----------------+--------------+ We have included a new 2-octet field called Home Link Loading. This value is determined from all the home agent entries in this home agent sub-option list and is given by Total Home Agent preference value Home Link Loading = --------------------------------------- Number of Home Agents in list where the Home Agent Preference value is obtained from the earlier section. We use 2 octets because the home agent preference value is also 2 octets long. This will give a fairly accurate measurement of the level of loading in the home link without increasing the header overhead by too much. Mobile nodes should act appropriately by sending updates sequentially only if the loading level is of a reasonable level. Shen, Seah & Lo [Page 9] INTERNET DRAFT draft-shen-mobileip-ipv6-ha-discov-00.txt Feb 1999 3. Conclusions This proposal has identified and presented solutions to rectify some of the uncertainties in the current draft[1] that we discovered during the implementation of the home agent discovery process. The addition of global IP addresses in the home agent information option is good for the processing of information such as the home agent's global IP address. Moreover, setting a home agent's preference based on home agents' loading and the addition of home link loading field improve the dynamic home agent discovery mechanism. These recommendations will hopefully help contribute to the deployment of dynamic home agent discovery in Mobile IPv6 in the near future. 4. Acknowledgements I would like to take the opportunity to thank a few people who have made this draft possible. They are Joe Finney, Amlan Saha and Khali Mohammad. 5. References [1] David B. Johnson and Charles Perkins, "Mobility Support in IPv6", draft-ietf-mobileip-ipv6-07.txt, 18 November 1998. [2] T. Narten, E. Nordmark and W. Simpson, "Neighbor Discovery for IP Version 6(IPv6)", RFC2461. [3] Jason P. Jue and Dipak Ghosal, "Design and Analysis of a replicated server architecture for supporting IP-host mobility", Cluster Computing, Vol 1, No 2, 1998, pp 249--260. 6. Authors' Address Zhen Hua Shen, Winston Seah and Anthony Lo Centre for Wireless Communications National University of Singapore 20 Science Park Rd #02-34/37 TeleTech Park Singapore Science Park II Singapore 117674. Shen, Seah & Lo [Page 10]