Ipv6PlanningDocument

From Linux NFS

Revision as of 20:32, 9 March 2009 by Chucklever (Talk | contribs)
Jump to: navigation, search

Contents

NFS on IPv6 Working Document

This article contains a rough implementation roadmap for IPv6 support in the Linux NFS client and server.

Project Goals

This effort will provide support in the Linux NFS client and server implementations for IPv6 networking. This includes all current versions of the NFS protocol (2, 3 and 4) and any supported auxiliary protocols (MNT, NLM, NSM, NFS_ACL, NFSv4 callback, rpcbind). User space support (idmapd, gssd, svcgssd, statd, sm-notify, mount/umount/showmount, mountd, exportfs) is also included.

In order to provide an interoperating implementation, kernel and user space RPC implementations will also be upgraded to support Transport-Independent RPC (TI-RPC). This includes the sunrpc.ko module, the IP socket-based transport capability, the in-kernel GSSD implementation, rpcbind/portmaper, libtirpc, and rpcsecgss/gssglue/krb5.

Work To Date

As of March, 2009, the following items have been completed:

  • implementation of a new transport capability switch in the kernel's RPC client and server implementation
  • support for additional address families in the kernel's RPC client and server implementation and server-side authentication cache
  • support for IPv6 networking in the IP socket transport in the kernel's RPC client and server implementation
  • support for IPv6 and rpcbind protocol version 4 in the kernel's rpcbind client implementation
  • NFS mount command split out of the stock Linux mount command into a subcommand
  • conversion of the NFS mount operation to send mount options via a C string instead of a binary blob
  • support for rpcbind v4 GETADDR requests in the mount.nfs command
  • support for AF_INET6 family addresses in the NFS client and server implementation
  • support for IPv6 server address parsing in the NFS client
  • support for IPv6 in the client's NFSv4 callback service
  • replacement of Linux's portmapper implementation with a port of rpcbind
  • introduction of a port of libtirpc to user space
  • support for IPv6 in the Linux kernel's lockd and NSM implementation
  • support for IPv6 and netids in the mount.nfs command

Now In Prototype

  • support for IPv6 and netids for NSM reboot notification (sm-notify command and rpc.statd daemon)
  • support for IPv6 in the kernel's NFS server

Remaining To Do

  • support for IPv6 and netids for server-side MNT protocol (rpc.mountd and exportfs)
  • full documentation for using IPv6 with the NFS client and server
  • support for IPv6 in Linux port of Kerberos
  • support for IPv6 in gssd and svcgssd
  • audit kernel RPCSEC GSSAPI implementation for IPv6 requirements
  • audit rpc.idmapd implementation for IPv6 requirements
Personal tools