Internet Engineering Task Force Alex RN, Ed. Internet-Draft Bhargo Sunil, Ed. Intended status: Standards Track Dhawal Bhagwat Expires: December 29, 2009 Dipankar Roy Rishikesh Barooah NetApp June 27, 2009 NFS operation over IPv4 and IPv6 draft-alexrn-nfsv4-ipv6-00.txt Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. 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. This Internet-Draft will expire on December 29, 2009. Copyright Notice Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Alex RN, et al. Expires December 29, 2009 [Page 1] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 Abstract This Internet-Draft provides the description of problem set faced by NFS and its various side band protocols when implemented over IPv6 in various deployment scenarios. Solution to the various problems are also given in the draft and are sought for approval in the respective NFS and side band protocol versions. Foreword This "forward" section is an unnumbered section that is not included in the table of contents. It is primarily used for the IESG to make comments about the document. It can also be used for comments about the status of the document and sometimes is used for the RFC2119 requirements language statement. Requirements Language 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 [RFC2119]. Alex RN, et al. Expires December 29, 2009 [Page 2] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 Table of Contents 1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1. Various Deployment Scenarios . . . . . . . . . . . . . . . 4 3. Multi homing support . . . . . . . . . . . . . . . . . . . . . 5 4. RPCBIND . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5. NLM and NSM . . . . . . . . . . . . . . . . . . . . . . . . . 7 6. Client Identification . . . . . . . . . . . . . . . . . . . . 9 7. Dual to single stack mode transition . . . . . . . . . . . . . 10 8. NFSv4 Callback Information . . . . . . . . . . . . . . . . . . 11 9. Reply cache tuples for NFSv4 . . . . . . . . . . . . . . . . . 12 10. External Interfaces . . . . . . . . . . . . . . . . . . . . . 12 11. Other optimizations . . . . . . . . . . . . . . . . . . . . . 13 11.1. Address Persistence . . . . . . . . . . . . . . . . . . . 13 11.2. IP addresses as keys . . . . . . . . . . . . . . . . . . . 13 11.3. NFSv4 Id Mapping . . . . . . . . . . . . . . . . . . . . . 13 12. Consideration for running NFS along with NAT/ALG . . . . . . . 13 12.1. Asymmetric Reachability . . . . . . . . . . . . . . . . . 14 13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 14. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 15. Security Considerations . . . . . . . . . . . . . . . . . . . 14 16. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 16.1. Normative References . . . . . . . . . . . . . . . . . . . 14 16.2. Informative References . . . . . . . . . . . . . . . . . . 15 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 16 Alex RN, et al. Expires December 29, 2009 [Page 3] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 1. Terminology ALG: Application Level Gateway. NFS-ALG: NFS Application Level Gateway. Host: Used to refer to the client or the server where the specific(s) of client or the server does not matter. IPv4: Internet Protocol Version 4. IPv6: Internet Protocol Version 6. NAT: Network Address Translator. NFS: Used to refer to Network File System irrespective of the version. NFSv2: Network File System Protocol Version 2. NFSv3: Network File System Protocol version 3. NFSv4: Network File System Protocol version 4. NFSv4.1: Network File System Protocol version 4.1. NLM: Network Lock Manager Protocol. NSM: Network Status Monitor Protocol. Operation: Refers to the NFS operation when its mode of request or response is inconsequential. 2. Introduction NFS being a application layer protocol can operate over several network layer protocols. This draft addresses problems associated with NFS operation over IPv4 and IPv6. NFS follows the client server approach and does not restrict the network layer capability of the hosts. 2.1. Various Deployment Scenarios The various deployment scenarios are as follows: Alex RN, et al. Expires December 29, 2009 [Page 4] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 (a) Client in IPv4 only network and Server being in IPv4 only network. (b) Client in IPv6 only network and Server being in IPv6 only network. (c) Client in IPv4 only network and Server being in IPv6 only network. (d) Client in IPv6 only network and Server being in IPv4 only network. (e) Client in IPv4 and IPv6 capable network and Server being in IPv4 and IPv6 capable network In the above mentioned scenarios, types a) b) are called symmetric stack mode of operation. Type c) and d) can be called as asymmetric stack mode . Type a)-d) can be interchangeably be called as single stack mode. Type e) can be interchangeably be called as dual stack mode. In the case of asymmetric stack operation mode the client and server MUST use protocol translation at the network level and the application level. This is achieved using a combination of network level and application level protocol address translations done using NAT-PT and NFS-ALG. The problems which are discussed below are primarily related to state sharing across different protocol address families. The states are maintained through NFSv4(or later versions) and NLM/NSM. 3. Multi homing support IPv6 supports various types of scoped addresses which can be ambiguous at the scope boundary as referenced in [RFC4007] . A link local address is one whose validity is only within a link and hence is link scoped. Global addresses on the other hand are valid across links. In IPv6 case we can have link local address in a link scope boundary like say Host H1 having 2 interfaces connected to Clients C1,C2 on two links L1 and L2 as below. Typical multi homed host C1------- H1-----------C2 Figure 1 Alex RN, et al. Expires December 29, 2009 [Page 5] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 The link local address is ambiguous because of the private nature Link L1 and L2 could have the same address (similar to private addresses of 10.x , 192.x in IPv4. In IPv4 this is an exception but for IPv6 this is default, due to auto configuration). In the case of outbound packet transmission the link scope could be ambiguous and MUST be explicitly specified or the implementation MAY support a default scoped addresses. NFS as a service operating in the link scope boundary MAY need to explicitly specify its scope of communication using a scope identifier [RFC4007], depending on different client scenarios supported. NFS over IPv6 using link local address MAY be supported. In particular, the NFS server or client may or may not decide to support the scope field in an IPv6 link local address. NFS servers on scope boundaries doing an outbound communication, the scope SHOULD be derived from the inbound context when the server receives an NFSv4.0 SETCLIENTID operation or an RPCBIND GETVERSADDR procedure which contain universal addresses section 2.2 [RFC3530] . Any outbound communication initiated like NFSv4 callbacks or NSM notifies SHOULD use this information. For scenarios like NFS servers running over IPv6 with only auto- configured (link local only)addresses, some clients could boot off the NFS servers. In such situations link local support SHOULD be supported.The NFS server MAY provide for a default scope to operate unambiguously. 4. RPCBIND NFS servers supporting IPv6 MUST support RPCBINDv3 as defined in [RFC1833], over IPv6. Additionally, RPCBINDv4 SHOULD be supported, as noted later in this section. RPCBINDv3/4 protocols 'use a transport-independent format for the transport address'. Using RPCBINDv3/4, a client can clearly communicate to the server which transport (IPv4/v6, TCP/UDP) it is interested in for contacting a service.The server can communicate clearly to the client, the various transports on which a service is available. RPCBINDv2 (aka PORTMAP) provides limited support in this area. RPCBINDv4 SHOULD be supported because it introduces useful procedures like, RPCBPROC_GETVERSADDR - to query the server for the address of a specific version of an RPC service and RPCBPROC_GETADDRLIST - to query the server for a list of all addresses / transports on which an RPC service is available. Alex RN, et al. Expires December 29, 2009 [Page 6] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 Supporting RPCBINDv3/4 over IPv4 is OPTIONAL, if supported it may ease basic troubleshooting of IPv6 servers from IPv4 hosts. It may also make it easier for applications to identify a transport of interest, that the server supports, by making RPCBPROC_GETADDRLIST calls over IPv4. The netid and address formats in the RPCBINDv3/4 procedures, MUST be as per those defined for netid and universal addresses, in netid_ID draft [netid_ID]. The implementation SHOULD NOT use IPv4 embedded IPv6 addresses defined in Section 2.5.5 [RFC4291], for the RPCBINDv3/4 procedures. Where specific information regarding a service is needed from a server, a client SHOULD prefer the RPCBINDv4 procedure RPCBPROC_GETVERSADDR over RPCBPROC_GETADDR. On the other hand, in scenarios where a list of details is required, a client SHOULD use the procedures RPCBPROC_DUMP and RPCBPROC_GETADDRLIST, as applicable. An NFS implementation SHOULD NOT propagate the link local addresses encoded as universal addresses from one link scope domain to another. This could result in the following problem a) Server has 2 different link local addresses, A1 and A2 on links L1 and L2 . b) Client is in link L1. c) Server publishes RPCBIND universal address of link local address A1 and A2. d) Client decided to connect using A2. Step d) violates the usage of a link local private address as A2 could be assigned to a valid host in the link scope of L1. 5. NLM and NSM A dual stack NSM server implementation with persistent recording of source IP address SHOULD record at least one IPv4 and one IPv6 address, for sending out NOTIFY messages. This will be required in the following scenario : a) Client connects to the server using IPv6 address. b) Client connects to the server using IPv4 address. Alex RN, et al. Expires December 29, 2009 [Page 7] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 c) The server switches from dual stack to single stack mode of operation. d) Server restarts. Step c) can happen due to a network or interface disruption. Step c) can also happen after step d) which results in loss of ability of a host to contact the other host on a particular address family after restarting. The server in this case SHOULD associate two client addresses with the client identifier "caller_name" field as referenced in section 6.1.4 [RFC1833] . After d) if the server does not record at least one address of each address family, the server after restarting will not be able to send NOTIFY to the client on the address family that faced disruption. This will result in the client incorrectly assuming that the server is holding locks when it is not, if the client expects the NOTIFY to come on the same interface and same version of the IP protocol on which the locks were requested. The client when it receives the NOTIFY from the server holding locks, through one of the address families SHOULD try to reclaim the locks it had established on the other address family as well, if it can find out that both the addresses or address families refer to the same server. Another example is, the client after establishing the locks on the server on both the address families, restarts. When the client comes back up and if the server can not be contacted on one of the address families, it SHOULD use the "caller_name" in the name field of the NOTIFY so that server when it receives the NOTIFY should be able to remove the locks the client had held on other address family as well. The server SHOULD identify the client based on the "caller_name" field in the NLM request and it SHOULD remain constant irrespective of the address family that the client uses to contact the server. This would help the server in identifying which client's lock to release in the event the client sends the notify from a different address family than the one on which it had sent the NLM operations. This would also help in the case, when the mode of operation is asymmetric stack and the intermediate NAT-PT changes source address while connecting to the server. Callback port information verification from server to client for IPv6 cases MUST be done through RPCBIND. The scenarios are asynchronous lock requests and call back port verification during granting of waiting locks. Alex RN, et al. Expires December 29, 2009 [Page 8] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 6. Client Identification In the case of NFS4.1 the short hand clientid is very similar to NFSv4.0 clientid. Since states are tied to clientid, state sharing across and within sessions are immune to individual connection failures. The failures from individual connections of an address family can be failed over to another address family if available. As per current NFSv4.0 standards RFC3530 [RFC3530] server identifies the client using the short identifier called as Client Identifier. Client MUST send a different client string in SETCLIENTID to a different destination addresses(s)/family of address(s). Even if the same server is servicing on a different network address/address family the server MUST return a different clientid to the client. This is to prevent confusion on the client side as there is no way of determining whether the server to which the client is connecting again is the same or not. The usage of different client strings for different network addresses families might result in a case that the request(s) from the same client be deemed to conflict and will result in revocation of delegation. This can happen in the given client scenario: a) Client establishes a connection to server on address X with address family IPv4 and then opens the file Z in write mode. b) Server grants the client will get a write delegation. c)Client breaks the connection with server address X and/or tries to establish another connection with server address Y with address family B and then tries to open the file Z. In step c) as client is trying to connect to a different server address/address famiily it would send the SETCLIENTID with different client string than in step a). As the clientid given in step c) will be different than the clientid granted in step a) the server will end up revoking the delegation granted in step b). This is because the clientid is calculated based on client string which would be different in step a) and step c). Step c) can happen even if the client side faced a disruption on one of its address families and then connected on a different address family to the server. Example would be client connected using IPv4 in step a) and then client IPv4 stack or interfaces faced disruption after step b). Client then uses the IPv6 to connect to server in step c). In either case after step c) the client would not be holding the delegation. To handle this case the server SHOULD NOT use the client string alone in the generation of the short hand clientid but should combine the Alex RN, et al. Expires December 29, 2009 [Page 9] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 client string with its own server identifier to calculate the clientid. The server identifier should be generated in a unique way on similar lines as that of the client identifier. Specifically the server identifier should be such that no two servers should use the same server identifier. An example of well generated server identifier can be the one that includes the following : a) MAC address b) Machine serial number The client SHOULD always send the SETCLIENTID as the first request on the connection. Even if the client is retransmitting the request on a new connection it SHOULD send the SETCLIENTID as the first request. The client SHOULD use the same client string across different IP address families as no two different servers would end up giving the same clientid as both the components, client string and server identifier, used in the calculation are unique. If the clientid returned by server is the same as one of the existing clientid, the client SHOULD conclude that both the connections are to the same server. To prevent the server from expunging the client due to non renewal, the client should send a RENEW even if it does not have a lease after a SETCLIENTID to the server. In the above example the client string in step c) would have been the same as step a) and therefore the server would not revoke the delegation granted in step b). 7. Dual to single stack mode transition Dual stack implementations of NFS over IPv4 and IPv6 should ensure that the shutdown of one stack implementation leaves the host in a usable state. This is important for shared state like locks accessible through both IPv4 and IPv6 paths. A shutdown of one path would result in a permanent, partial, or temporary un-reachability to the client. Anticipating reconnects, after the partial reachability condition are resolved, the states should be left intact. Administrative support for forceful lock management (removal /cleanup etc) is recommended. Shutting down of one stack IPv4/IPv6 or loss of all interfaces of one particular address family IPv4/IPv6 should not result in the NFSv4.0 client states to be removed after the lease period expires. This is required so that server does not grant the locks to any other client reachable from another address family. If the locks are removed the subsequent clients over IPv4, which are granted locks might find the the file to be in unusable state. Alex RN, et al. Expires December 29, 2009 [Page 10] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 a) If the IPv6 client A is connected to the server and has locks and open share state. b) The partial reachability condition happens for IPv6. c) The IPv4 client B tries to access the files on which the client A had states. If after step b) the server had removed the state then the client B might find the file to be in unusable state and so the state for client A should be maintained unless the disruption due to step b) is permanent, in which case the administrator needs to take some steps to prevent the unusable file state. For NFSv4 one of the ways to implement the above recommendation is that the server should mark the client and the states associated with it as temporarily unusable but should not remove the state associated with the clients in such case. After the complete reachability is restored the server should go into partial restart case for only the clients that had their state marked as temporarily unusable and thus should allow such clients to regain their state. The server should identify the clientid/states that are marked as temporarily unusable and should send the NFSERR_STALE_CLIENTID/NFSERR_STALE_STATEID which will start the state recovery procedure on the client side. The server can remove the client state if the clients have not recovered the state in the grace period after the complete reachability condition has been restored. Supposedly the partial reachability condition affected only the clients accessing the server over IPv6, after the reachability is restored then the grace period should be started for only the clients coming over IPv6. If the clients are coming over IPv4 contending for the same lock for which is being held by IPv6 client the IPv4 client should be denied. For the case of NLM in such cases the NOTIFY should be sent to clients that were affected due to partial reachability condition and that had held the locks prior to that condition coming into effect. 8. NFSv4 Callback Information In the case of asymmetric stack mode, if the client is in IPv6 network and tries to contact the server in IPv4 domain it should be using an IPv6 address transparently translated by an ALG. The intermediate network element (NFS-ALG) in the asymmetric stack mode should convert the embedded addresses in the NFS operations so that the other host can understand the network address. Alex RN, et al. Expires December 29, 2009 [Page 11] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 The NFSv4 server implementation should verify the netid information in the callbacks corresponds to respective address families. The netid used for IPv6 address is tcp6 and for IPv4 addresses is tcp. 9. Reply cache tuples for NFSv4 Currently, most of the reply cache implementations use some form of combination of the elements client address, client port, server address, protocol, RPC XID as the values on which to decide on the hit in the cache. But if the environment is such that the client is working only in one address family and the server in another family (no dual stack) and the translation is handled by an intermediate element, then it might be possible that when the client retransmits the request the source pair (address/port) that the server sees might change from the previous connection values and the replay cache might be rendered ineffective. It might also be that the client has lost all of its interfaces of a particular address family and might switch to another address family. It might also be the case that the client uses a new source pair for the retransmission which will have the similar effect. As listed in Client Identification (Section 6) the client can obviate the need to send different client strings to different server addresses. The NFSv4.0 client should always send the SETCLIENTID procedure as the first request to the server. If a request is to be retransmitted on a different connection, the first procedure sent out should be a SETCLIENTID with no change in the callback address or client string or verifier. This will help the server to associate the new connection with the clientid. The replay cache implementations thus can switch to just using the client string and RPC XID as the basis for determining a replay cache hit, if the server is using the address/address family to determine the cache hit. 10. External Interfaces NFS servers considering usage of information like MTU control or other lower level information from the IPv6 stack MAY consider, the updated standard sockets APIs in the form of advanced sockets implementation as specified in RFC 3542 [RFC3542] and RFC 3493 [RFC3493]. In the case of client and server operating in different address families with no dual stack support DNS-ALG and NAT-PT MUST be used. Alex RN, et al. Expires December 29, 2009 [Page 12] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 11. Other optimizations 11.1. Address Persistence In all cases where the IP addresses are stored in stable storage it is always preferable to store addresses with the address family information. The scenarios could be that of recording addresses for NSM notifies and client addresses persistently stored for reply cache. One way of implicit typing is with the IPv4 mapped IPv6 addresses for storage efficiency. It is RECOMMENDED that IPv6 support capability information is preserved. This information can be used during upgrades and downgrades of NFS server instances which have may or may not have turned on support for NFS over IPv6. 11.2. IP addresses as keys There are a number of situations where decisions are based on the IP addresses like access control, which determines which IP address gets access and which does not. Other situations like distributing resources based on the client IP addresses within an implementation system, the resources could be the amount of cached replies. When considering using IP addresses as keys into these scenarios, the variability of the bits in the IP addresses SHOULD be considered. In IPv6 for the same interface the different address differ mostly in the non subnet part, in IPv4 that is not the case. The lower order bits are generated from the MAC addresses and are mostly static. 11.3. NFSv4 Id Mapping The "dns_domain" in "user@dns_domain" as referred in section 5.8 [RFC3530], used to map owners, groups, users and user groups in the string principals to internal representations at the client and server SHOULD be the same for the same client accessing an NFSv4 server simultaneously over IPv4 and IPv6. 12. Consideration for running NFS along with NAT/ALG For NFS ALGs, the only information at the protocol level is the embedded universal addresses, which SHOULD be translated for RPCBIND and SETCLIENTID calls to work transparently. If names are used as identifiers then DNS-ALG should be used for translating names. The ALG SHOULD NOT multiplex multiple client side connections to single server side connection. Alex RN, et al. Expires December 29, 2009 [Page 13] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 12.1. Asymmetric Reachability If the server is in IPv6/IPv4 address space and the client is in IPv4/IPv6 address space connected through intermediate translation network element, then a separate callback port can be fixed. 13. Acknowledgments The authors would like to acknowledge Mike Eisler for reviews of the various early versions of the draft. 14. IANA Considerations This memo includes no request to IANA. 15. Security Considerations All considerations from RFC 3530 Section 16 [RFC3530] 16. References 16.1. Normative References [RFC1813] Callaghan, B., Pawlowski, B., and P. Staubach, "NFS Version 3 Protocol Specification", RFC 1813, June 1995. [RFC1833] Srinivasan, R., "Binding Protocols for ONC RPC Version 2", RFC 1833, August 1995. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997, . [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998. [RFC3530] Shepler, S., Callaghan, B., Robinson, D., Thurlow, R., Beame, C., Eisler, M., and D. Noveck, "Network File System (NFS) version 4 Protocol", RFC 3530, April 2003. [RFC4007] Deering, S., Haberman, B., Jinmei, T., Nordmark, E., and B. Zill, "IPv6 Scoped Address Architecture", RFC 4007, March 2005. Alex RN, et al. Expires December 29, 2009 [Page 14] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, February 2006. [RFC4506] Eisler, M., "XDR: External Data Representation Standard", STD 67, RFC 4506, May 2006. [RFC5378] Bradner, S. and J. Contreras, "Rights Contributors Provide to the IETF Trust", BCP 78, RFC 5378, November 2008. [RFC5531] Thurlow, R., "RPC: Remote Procedure Call Protocol Specification Version 2", RFC 5531, May 2009. [netid_ID] Eisler, M., "IANA Considerations for RPC Net Identifiers and Universal Address Formats", draft-ietf-nfsv4-rpc-netid-04 (work in progress), December 2008. 16.2. Informative References [RFC1094] Nowicki, B., "NFS: Network File System Protocol specification", RFC 1094, March 1989. [RFC2624] Shepler, S., "NFS Version 4 Design Considerations", RFC 2624, June 1999. [RFC2663] Srisuresh, P. and M. Holdrege, "IP Network Address Translator (NAT) Terminology and Considerations", RFC 2663, August 1999. [RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W. Stevens, "Basic Socket Interface Extensions for IPv6", RFC 3493, February 2003. [RFC3542] Stevens, W., Thomas, M., Nordmark, E., and T. Jinmei, "Advanced Sockets Application Program Interface (API) for IPv6", RFC 3542, May 2003. [RFC3593] Tesink, K., "Textual Conventions for MIB Modules Using Performance History Based on 15 Minute Intervals", RFC 3593, September 2003. [RFC4620] Crawford, M. and B. Haberman, "IPv6 Node Information Queries", RFC 4620, August 2006. [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008. Alex RN, et al. Expires December 29, 2009 [Page 15] Internet-Draft draft-alexrn-nfsv4-ipv6 June 2009 Authors' Addresses Alex RN (editor) NetApp 3rd Floor, Fair Winds Block, EGL Software Park, Bangalore, Karnataka 560071 IN Phone: +91-80-41843352 Email: rnalex@netapp.com Bhargo Sunil (editor) NetApp 3rd Floor, Fair Winds Block, EGL Software Park, Bangalore, Karnataka 560071 IN Phone: +91-80-41843963 Email: bhargo@netapp.com Dhawal Bhagwat NetApp 3rd Floor, Fair Winds Block, EGL Software Park, Bangalore, Karnataka 560071 IN Phone: +91-80-41843134 Email: dhawal@netapp.com Dipankar Roy NetApp Phone: +91-80-41843303 Email: dipankar@netapp.com Rishikesh Barooah NetApp Email: rbarooah@netapp.com Alex RN, et al. Expires December 29, 2009 [Page 16]