From: NeilBrown <neilb@suse.de>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: NFS <linux-nfs@vger.kernel.org>
Subject: Re: Should "mount -o proto=udp" be usable against an IPv6 only server?
Date: Tue, 18 Sep 2012 16:29:48 +1000 [thread overview]
Message-ID: <20120918162948.47840d42@notabene.brown> (raw)
In-Reply-To: <F8762BC2-F211-482E-8B5A-A2E991E3F937@oracle.com>
[-- Attachment #1: Type: text/plain, Size: 3460 bytes --]
On Tue, 18 Sep 2012 01:28:09 -0400 Chuck Lever <chuck.lever@oracle.com> wrote:
> Hi Neil-
>
> On Sep 17, 2012, at 9:54 PM, NeilBrown wrote:
>
> > It seems that with current nfs-utils, "proto=udp" (either
> > in /etc/nfsmount.conf or on the command line) restricts the mount to using
> > IPv4, not IPv6.
> > For IPv6 you need "udp6".
> >
> > This isn't made crystal clear by the documentation. I could fix the
> > documentation, but first I wanted to check if this really is appropriate.
> > Is there a good reason for this, or should we make "udp" mean "udp4 or udp6"
> > and require either "udp4" or "udp6" if we want a particular IP version.
> >
> > i.e. instead of treating the "proto=" value as a "netid", should we treat it
> > as a "protoname" and match any "netid" in /etc/netconfig with that
> > "protoname"??
>
> This is working as designed.
>
> The meaning of each netid is defined in RFC 5665. "udp" means UDP over IPv4. This matches precisely what "proto=udp" meant before TI-RPC. These netids force a particular protocol family when the server is specified by hostname and not IP address.
>
> What's more, we mean this to match the behavior of the Solaris mount command, where "proto=udp" also has this meaning.
>
> Which part of the documentation do you think is unclear?
>
Hi Chuck,
Thanks for the reply.
It is unfortunate that the tag "proto" is used to choose the "netid".
In common parlance, "udp" and "tcp" are protocols independent of the
underlying transport (IPv4 or IPv6) much as "nfsv3" or "nfsv4" are
independent of the underlying transport (tcp, udp6, rdma etc).
Give this obvious opportunity for confusion it would be good if the
documentation took significant steps to minimise it.
I note that nfs(5) does mention /etc/netconfig and the "netid"s that it
contains. However "udp6" and "tcp6" are never given as examples - doing so
would help the reader see the import of the distinction.
proto=netid The transport protocol name and protocol family the NFS
client uses to transmit requests to the NFS server for
this mount point. If an NFS server has both an IPv4 and
an IPv6 address, using a specific netid will force the
use of IPv4 or IPv6 networking to communicate with that
server.
I don't think the second sentence would be very helpful to someone who didn't
already understand the subtleties.
Something like:
A particular netid completely specifies the protocol, so for example
"tcp" is TCP over IPv4, and "udp6" is UDP over IPv6. It is not possible
to request "UDP" without also specifying which version of IP should be
used.
man nfsmount.conf gives the example:
[ NFSMount_Global_Options ]
Proto=Tcp
The TCP protocol will be used on every NFS mount.
which is incomplete. Not just TCP, but TCP/IPv4 will be used on every NFS
mount. And again, not IPv6 examples.
(and nfsmount.conf doesn't mention the "default$OPTION=value" syntax...)
For a usability perspective, I think that treating "udp" as meaning
"udp/ipv4" is a serious mistake and I'm not at all convinced that "Solaris
compatibility" is sufficient justification, but as I have no interest in
offering patches, I won't pursue that line of argument further :-)
Thanks,
NeilBrown
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
next prev parent reply other threads:[~2012-09-18 6:30 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-18 1:54 Should "mount -o proto=udp" be usable against an IPv6 only server? NeilBrown
2012-09-18 5:28 ` Chuck Lever
2012-09-18 6:29 ` NeilBrown [this message]
2012-09-18 15:31 ` Chuck Lever
2012-09-18 23:19 ` NeilBrown
2012-09-19 1:00 ` Chuck Lever
2012-10-02 5:24 ` NeilBrown
2012-10-02 14:24 ` Chuck Lever
2012-10-03 3:11 ` NeilBrown
-- strict thread matches above, loose matches on Subject: below --
2012-10-04 4:15 Chuck Lever
2012-10-08 3:35 ` NeilBrown
2012-10-08 15:51 ` Chuck Lever
2012-10-08 23:48 ` NeilBrown
2012-10-09 15:01 ` Chuck Lever
2012-10-11 0:01 ` NeilBrown
2012-10-15 17:13 ` Steve Dickson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120918162948.47840d42@notabene.brown \
--to=neilb@suse.de \
--cc=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).