Date: Sun, 6 Nov 2016 20:51:25 +0000 From: Rick Macklem <rmacklem@uoguelph.ca> To: "freebsd-fs@freebsd.org" <freebsd-fs@freebsd.org> Subject: Mount protocol/showmount vs NFSv4 Message-ID: <YTXPR01MB01893AD86D5F1280DC63CA4BDDA40@YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM>
next in thread | raw e-mail | index | archive | help
Hi,
NFSv2 and NFSv3 use a protocol called Mount (implemented by mountd) to try =
and
track mounts/unmounts and report exports to clients. Except for the one RPC=
that
maps a directory path to a File Handle, none of this is needed by NFS. The =
rest is
reported (and never guaranteed to be correct) by showmount(8).
There are a couple of issues related to the Mount protocol.
1 - It uses a dynamically assigned port# via rpcbind (which means hassles f=
or firewalls, etc).
2 - umount(8) currently assumes that it is supported over UDP and fails if =
it is
configured to work over TCP only.
3 - A recent issue was reported where there is a delay for systems configur=
ed for IP6
only related to the handling of localhost. (I'll admit I didn't unders=
tand quite why
there was this 2sec delay, but others familiar with networking confirm=
ed it was
correct behaviour.)
NFSv4 doesn't use the Mount protocol at all and does everything via the NFS=
v4 protocol
serviced at port #2049.
I have never done anything about this, since most were still using NFSv3, b=
ut it seems
that maybe something should be done now?
- What do people think of having a new option on mountd(8) that would be us=
ed for
NFSv4 only servers that disables servicing of Mount RPCs.
--> This would imply that "showmount" would no longer work for it.
--> Note that "showmount" returns nothing useful for NFSv4 mounts,=
since mountd
doesn't know about NFSv4 mounts (and the NFSv4 server doesn'=
t know either,
because there is no concept of a "mount" in the NFSv4 protoc=
ol).
--> It does imply that "showmount -e" will stop working and that in=
fo might be
useful w.r.t. NFSv4 servers.
Umount(8) for NFSv3 is a slightly different problem. It has (for 30years) j=
ust talked to
UDP. If that doesn't work, there is a delay, but the umount still works (an=
d the info
from "showmount" is no longer correct, but it is never guaranteed to be cor=
rect anyhow).
- Should umount(8) use TCP if the NFSv3 mount is using TCP?
--> This could cause it to break for a case where only UDP is supported f=
or the Mount
protocol on the server, but that would be a rare/broken case, I'd g=
uess.
Anyhow, any/all comments on this would be appreciated, rick
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YTXPR01MB01893AD86D5F1280DC63CA4BDDA40>
