This bothered me enough to keep looking. :-)

I kept looking at packet captures, and what stood out is the fact that
the broken interactions showed AUTH_NULL for the credential flavor,
which was the cause of the NFS3ERR_ACCES error. Quick fix: make sure
the mount command from the lx zone has "-o sec=sys" in it. Packet
captures now reflect AUTH_UNIX, with the appropriate uid/gid for
credentials.

Couple of things to note:

1. Debugging the NFS server in Linux absolutely sucks. Even cranking
up the debug level to everything (rpcdebug -m nfsd -s all) gets you no
useful information for this sort of issue. The NFS3ERR_ACCES error
seen in packet captures? Nope, not there.
2. You can't easily disable NFSv4 server side. Sure, there's this line
in /etc/default/nfs-kernel-server:

# To disable NFSv4 on the server, specify '--no-nfs-version 4' here

Except, it doesn't work:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=738063

Thanks Joshua for your comments which helped me look at some of the
details here a bit more closely.

On Fri, Jun 26, 2015 at 11:26 PM, Patrick O'Sullivan
<[email protected]> wrote:
> So I've looked at some packet captures and things are a bit
> interesting. The working mount from the global zone is all v4. The
> broken session from the lx zone starts in v4 but then switches to v3.
>
> At some point, the server returns NFS3ERR_ACCES in response to the
> ACCESS call from the lx zone client. Going to see if some additional
> debugging flags on the server shed some light.
>
> On Fri, Jun 26, 2015 at 5:58 PM, Joshua M. Clulow <[email protected]> wrote:
>> Hi,
>>
>> On 26 June 2015 at 12:08, Patrick O'Sullivan <[email protected]> wrote:
>>> I have an Ubuntu 14.04 server running on bare metal with the following
>>> line in /etc/exports:
>>> I can also mount it from a global zone on a box running SmartOS build
>>> 20150612T210440Z:
>>> However, trying to access it from an Ubuntu 14.04 lx zone
>>> (5a0145ee-15c4-11e5-9c49-ef53e8760a7e), I get permission errors when
>>> accessing the directory, though it appears to mount fine:
>>
>> Are you using NFSv3 or NFSv4 here?  NFSv3 with AUTH_SYS is all uid/gid
>> numbers on the wire.  In contrast, NFSv4 sends user/group name
>> _strings_ for some parts of the protocol, and AUTH_SYS-style numbers
>> for other parts.  The strings can involve an NFSv4 domain name, which
>> under some circumstances needs to be in sync, and on an illumos system
>> may require "nfsmapid" to be running within the mounting zone.
>>
>> Can you try forcing the mount (or the server) to use NFSv3 and see if it 
>> helps?
>>
>>
>> Cheers.
>>
>> --
>> Joshua M. Clulow
>> UNIX Admin/Developer
>> http://blog.sysmgr.org
>>
>>
>> -------------------------------------------
>> smartos-discuss
>> Archives: https://www.listbox.com/member/archive/184463/=now
>> RSS Feed: https://www.listbox.com/member/archive/rss/184463/22267710-cec26c41
>> Modify Your Subscription: https://www.listbox.com/member/?&;
>> Powered by Listbox: http://www.listbox.com


-------------------------------------------
smartos-discuss
Archives: https://www.listbox.com/member/archive/184463/=now
RSS Feed: https://www.listbox.com/member/archive/rss/184463/25769125-55cfbc00
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=25769125&id_secret=25769125-7688e9fb
Powered by Listbox: http://www.listbox.com

Reply via email to