On Mon, Apr 27, 2009 at 9:06 AM, Vallish Vaidyeshwara <
Vallish.Vaidyeshwara at sun.com> wrote:

> Andreas Nilsson wrote:
>
>> I have a share exported on GNU/Linux-box (Gentoo) and as described
>> mounting that share on my OSOL snv_111a fails.
>>
>> It fails even if I specify -o vers=3,sec=sys. If i however specify -o
>> vers=2 it works.
>>
>> If i edit the export to include sec=sys on the server it works perfectly.
>>
>>
>>
>
> Hi Andreas,
>
> What you are seeing is the correct behavior. Looks like your earlier share
> on Linux box was exporting filesystem with only ANON mode. Hence OSOL client
> was not able to mount even with explicit "-o vers=3,sec=sys" mount command.
> I am not really sure as to how this worked with "-o vers=2"? Can you please
> send across a snoop output and "nfsstat -m" output on the client for both v3
> and v2 mounts?
>
>
>  For my setup i can live with this, but if i bring the OSOL computer to
>> another network where i do not control the nfs server it will be very
>> annoying not being able to mount the shares.
>>
>>
>
> Please see work arounds posted on this thread by FrankB, you don't have to
> have control the server:
>
> <snip>
> 3) on the solaris client side, comment out the 'none' entry from the list
> of supported security flavours in /etc/nfssec.conf
> or
> 4) on the solaris client side, explicitely perform the mount with a
> security flavour
> specified other then sec=none
> <end snip>
>
> OSOL client was earlier broken and was quietly sending SYS authentication
> flavor even for ANON flavors. It is now fixed and what you are seeing is the
> correct behavior. However, there is a discussion to change OSOL client now
> and to make it more intelligent than just picking the first mode from the
> list of security modes returned by Server.
>
> Regards,
> -Vallish
>
> Hello,

I'm no expert with snoop ( never having used it ) but I'll give it a shot.
If something is missing please let me know. I reset the export on the linux
box to what i used to have:

/data 192.168.0.*(rw,sync,no_subtree_check,no_root_squash)


Snoop output is a bit length... As far as i can see it seems that the server
answers with AUTH= whatever i tell the client to use, unless specified in
/etc/exports on the server. When the v3 mount succeeds it seems that it
returns an AUTH=unix

Running pfexec  mount -F nfs -o vers=3 butler:/data /mnt/ gives

192.168.0.10 -> butler       DNS C butler. Internet Addr ?
      butler -> 192.168.0.10 DNS R butler. Internet Addr 192.168.0.1
192.168.0.10 -> butler       PORTMAP C GETPORT prog=100005 (MOUNT) vers=3
proto=UDP
      butler -> 192.168.0.10 PORTMAP R GETPORT port=44106
192.168.0.10 -> butler       MOUNT3 C Null
      butler -> 192.168.0.10 MOUNT3 R Null
192.168.0.10 -> butler       MOUNT3 C Mount /data
      butler -> 192.168.0.10 MOUNT3 R Mount OK FH=D734 Auth=
192.168.0.10 -> butler       DNS C 10.0.168.192.in-addr.arpa. Internet PTR ?
      butler -> 192.168.0.10 DNS R  Error: 3(Name Error)
192.168.0.10 -> butler       DNS C 10.0.168.192.in-addr.arpa. Internet PTR ?
      butler -> 192.168.0.10 DNS R  Error: 3(Name Error)

with no output from nfstat -m

Running pfexec  mount -F nfs -o vers=3,sec=sys butler:/data /mnt/ still
gives nfs mount: security mode does not match the server exporting
butler:/data and the following snoop

192.168.0.10 -> butler       DNS C butler. Internet Addr ?
      butler -> 192.168.0.10 DNS R butler. Internet Addr 192.168.0.1
192.168.0.10 -> butler       PORTMAP C GETPORT prog=100005 (MOUNT) vers=3
proto=UDP
      butler -> 192.168.0.10 PORTMAP R GETPORT port=44106
192.168.0.10 -> butler       MOUNT3 C Null
      butler -> 192.168.0.10 MOUNT3 R Null
192.168.0.10 -> butler       MOUNT3 C Mount /data
      butler -> 192.168.0.10 MOUNT3 R Mount OK FH=D734 Auth=

with no output from nfsstat -m

Running pfexec  mount -F nfs -o vers=2 butler:/data /mnt/ succeeds with
mounting and gives the following snoop

192.168.0.10 -> butler       DNS C butler. Internet Addr ?
      butler -> 192.168.0.10 DNS R butler. Internet Addr 192.168.0.1
192.168.0.10 -> butler       PORTMAP C GETPORT prog=100005 (MOUNT) vers=2
proto=UDP
      butler -> 192.168.0.10 PORTMAP R GETPORT port=44106
192.168.0.10 -> butler       MOUNT2 C Null
      butler -> 192.168.0.10 MOUNT2 R Null
192.168.0.10 -> butler       MOUNT2 C Mount /data
      butler -> 192.168.0.10 MOUNT2 R Mount OK FH=D434
192.168.0.10 -> butler       PORTMAP C GETPORT prog=100021 (NLM) vers=1
proto=UDP
      butler -> 192.168.0.10 PORTMAP R GETPORT port=46817
192.168.0.10 -> butler       NLM C GRANTED1 OH=0000 FH=D434 PID=0 Region=0:0
      butler -> 192.168.0.10 NLM R GRANTED1 OH=0000 denied
192.168.0.10 -> butler       PORTMAP C GETPORT prog=100003 (NFS) vers=2
proto=TCP
      butler -> 192.168.0.10 PORTMAP R GETPORT port=2049
192.168.0.10 -> butler       TCP D=2049 S=52417 Syn Seq=1041190478 Len=0
Win=49640 Options=<mss 1460,nop,wscale 0,nop,nop,sackOK>
      butler -> 192.168.0.10 TCP D=52417 S=2049 Syn Ack=1041190479
Seq=1009563338 Len=0 Win=5840 Options=<mss 1460,nop,nop,sackOK,nop,wscale 7>
192.168.0.10 -> butler       TCP D=2049 S=52417 Ack=1009563339
Seq=1041190479 Len=0 Win=49640
192.168.0.10 -> butler       NFS C NULL2
      butler -> 192.168.0.10 TCP D=52417 S=2049 Ack=1041190551
Seq=1009563339 Len=0 Win=46
      butler -> 192.168.0.10 NFS R NULL2
192.168.0.10 -> butler       TCP D=2049 S=52417 Ack=1009563367
Seq=1041190551 Len=0 Win=49640
192.168.0.10 -> butler       TCP D=2049 S=52417 Fin Ack=1009563367
Seq=1041190551 Len=0 Win=49640
      butler -> 192.168.0.10 TCP D=52417 S=2049 Fin Ack=1041190552
Seq=1009563367 Len=0 Win=46
192.168.0.10 -> butler       TCP D=2049 S=52417 Ack=1009563368
Seq=1041190552 Len=0 Win=49640
192.168.0.10 -> butler       TCP D=2049 S=1017 Syn Seq=1041392933 Len=0
Win=49640 Options=<mss 1460,nop,wscale 0,nop,nop,sackOK>
      butler -> 192.168.0.10 TCP D=1017 S=2049 Syn Ack=1041392934
Seq=1012262520 Len=0 Win=5840 Options=<mss 1460,nop,nop,sackOK,nop,wscale 7>
192.168.0.10 -> butler       TCP D=2049 S=1017 Ack=1012262521 Seq=1041392934
Len=0 Win=49640
192.168.0.10 -> butler       NFS_ACL C GETATTR2 FH=D434
      butler -> 192.168.0.10 TCP D=1017 S=2049 Ack=1041393038 Seq=1012262521
Len=0 Win=46
      butler -> 192.168.0.10 NFS_ACL R GETATTR2 OK
192.168.0.10 -> butler       TCP D=2049 S=1017 Ack=1012262621 Seq=1041393038
Len=0 Win=49640
192.168.0.10 -> butler       NFS C STATFS2 FH=D434
      butler -> 192.168.0.10 NFS R STATFS2 OK
192.168.0.10 -> butler       TCP D=2049 S=1017 Ack=1012262673 Seq=1041393142
Len=0 Win=49640
192.168.0.10 -> butler       NFS C STATFS2 FH=D434
      butler -> 192.168.0.10 NFS R STATFS2 OK
192.168.0.10 -> butler       TCP D=2049 S=1017 Ack=1012262725 Seq=1041393246
Len=0 Win=49640
192.168.0.10 -> 72.5.123.8   HTTP C port=43101
192.168.0.10 -> butler       DNS C 10.0.168.192.in-addr.arpa. Internet PTR ?
      butler -> 192.168.0.10 DNS R  Error: 3(Name Error)
192.168.0.10 -> butler       DNS C 10.0.168.192.in-addr.arpa. Internet PTR ?
      butler -> 192.168.0.10 DNS R  Error: 3(Name Error)
192.168.0.10 -> butler       DNS C 8.123.5.72.in-addr.arpa. Internet PTR ?
      butler -> 192.168.0.10 DNS R  Error: 3(Name Error)
192.168.0.10 -> butler       DNS C 8.123.5.72.in-addr.arpa. Internet PTR ?
      butler -> 192.168.0.10 DNS R  Error: 3(Name Error)

And this from nfstat -m

/mnt from butler:/data
 Flags:
vers=2,proto=tcp,sec=sys,hard,intr,dynamic,acl,rsize=8192,wsize=8192,retrans=5,timeo=600
 Attr cache:    acregmin=3,acregmax=60,acdirmin=30,acdirmax=60


A snoop from a succesfull v3 mount ( edited the exports on server ) gives
192.168.0.10 -> butler       DNS C butler. Internet Addr ?
      butler -> 192.168.0.10 DNS R butler. Internet Addr 192.168.0.1
192.168.0.10 -> butler       PORTMAP C GETPORT prog=100005 (MOUNT) vers=3
proto=UDP
      butler -> 192.168.0.10 PORTMAP R GETPORT port=44106
192.168.0.10 -> butler       MOUNT3 C Null
      butler -> 192.168.0.10 MOUNT3 R Null
192.168.0.10 -> butler       MOUNT3 C Mount /data
      butler -> 192.168.0.10 MOUNT3 R Mount OK FH=D734 Auth=unix
192.168.0.10 -> butler       PORTMAP C GETPORT prog=100003 (NFS) vers=3
proto=TCP
      butler -> 192.168.0.10 PORTMAP R GETPORT port=2049
192.168.0.10 -> butler       TCP D=2049 S=42760 Syn Seq=1261078344 Len=0
Win=49640 Options=<mss 1460,nop,wscale 0,nop,nop,sackOK>
      butler -> 192.168.0.10 TCP D=42760 S=2049 Syn Ack=1261078345
Seq=2026556873 Len=0 Win=5840 Options=<mss 1460,nop,nop,sackOK,nop,wscale 7>
192.168.0.10 -> butler       TCP D=2049 S=42760 Ack=2026556874
Seq=1261078345 Len=0 Win=49640
192.168.0.10 -> butler       NFS C NULL3
      butler -> 192.168.0.10 TCP D=42760 S=2049 Ack=1261078417
Seq=2026556874 Len=0 Win=46
      butler -> 192.168.0.10 NFS R NULL3
192.168.0.10 -> butler       TCP D=2049 S=42760 Ack=2026556902
Seq=1261078417 Len=0 Win=49640
192.168.0.10 -> butler       TCP D=2049 S=42760 Fin Ack=2026556902
Seq=1261078417 Len=0 Win=49640
      butler -> 192.168.0.10 TCP D=42760 S=2049 Fin Ack=1261078418
Seq=2026556902 Len=0 Win=46
192.168.0.10 -> butler       TCP D=2049 S=42760 Ack=2026556903
Seq=1261078418 Len=0 Win=49640
192.168.0.10 -> butler       TCP D=2049 S=1016 Syn Seq=1261204305 Len=0
Win=49640 Options=<mss 1460,nop,wscale 0,nop,nop,sackOK>
      butler -> 192.168.0.10 TCP D=1016 S=2049 Syn Ack=1261204306
Seq=2028277294 Len=0 Win=5840 Options=<mss 1460,nop,nop,sackOK,nop,wscale 7>
192.168.0.10 -> butler       TCP D=2049 S=1016 Ack=2028277295 Seq=1261204306
Len=0 Win=49640
192.168.0.10 -> butler       NFS C FSINFO3 FH=D734
      butler -> 192.168.0.10 TCP D=1016 S=2049 Ack=1261204410 Seq=2028277295
Len=0 Win=46
      butler -> 192.168.0.10 NFS R FSINFO3 OK
192.168.0.10 -> butler       TCP D=2049 S=1016 Ack=2028277379 Seq=1261204410
Len=0 Win=49640
192.168.0.10 -> butler       NFS C GETATTR3 FH=D734
      butler -> 192.168.0.10 NFS R GETATTR3 OK
192.168.0.10 -> butler       TCP D=2049 S=1016 Ack=2028277495 Seq=1261204514
Len=0 Win=49640
192.168.0.10 -> butler       NFS C FSSTAT3 FH=D734
      butler -> 192.168.0.10 NFS R FSSTAT3 OK
192.168.0.10 -> butler       TCP D=2049 S=1016 Ack=2028277583 Seq=1261204618
Len=0 Win=49640
192.168.0.10 -> butler       NFS C GETATTR3 FH=D734
      butler -> 192.168.0.10 NFS R GETATTR3 OK
192.168.0.10 -> butler       TCP D=2049 S=1016 Ack=2028277699 Seq=1261204722
Len=0 Win=49640

and nfstat -m gives

/mnt from butler:/data
 Flags:
vers=3,proto=tcp,sec=sys,hard,intr,link,symlink,acl,rsize=32768,wsize=32768,retrans=5,timeo=600
 Attr cache:    acregmin=3,acregmax=60,acdirmin=30,acdirmax=60

I tried FrankB's workarounds, but neither worked. Maybe Gentoo has modified
nfs in someway.

Best regards
Andreas Nilsson

Reply via email to