On May 4, 2008, at 6:39 PM, vincent wrote:
Chuck Lever wrote:
Thanks for the offer. I tested against a server configuration that
dropped UDP packets, but I never tested through an ssh tunnel.
In the ssh tunnel case, what can be seen in network captures for
localhost on the client is that mounting requests are sent over UDP,
and
since the ports are those specified for the ssh tunnel, they lead to
nothing on localhost UDP, and an ICMP dest unreach (port) is sent
back.
This is made twice before mount.nfs exits with an internal error, 2
packets each time.
I have the same problem than Frank, using NFS through a ssh tunnel. It
was working with 2.6.20 and I've just upgraded to 2.6.25 and it does
not
works anymore.
After 2.6.23, mount options are passed to the kernel as a C string
instead of binary data structure. The mount command formerly
contacted the server via the mountd protocol, and passed mount
information to the kernel. Now the kernel has its own mountd client
and it uses that instead.
The new kernel mount option parser behaves a little differently than
the user-space mount command with regard to the "proto=" option. If
you specify "proto=tcp" the legacy mount command contacts the server's
mountd via TCP. However, the kernel continues to use the default
setting (UDP) for the mount client's transport protocol.
This is a bug, and I have a kernel patch that makes the kernel mount
option parser behave like the legacy mount command.
Until this bug is addressed, you can use "mountproto=" to specify the
transport protocol explicitly for the kernel's mount client. See
nfs(5) for details.
--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html