linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* NFS client: RPCSEC_GSS w/ Kerberos over TCP
@ 2012-09-05 14:53 Attila Bogár
  2012-09-05 17:27 ` J. Bruce Fields
  0 siblings, 1 reply; 2+ messages in thread
From: Attila Bogár @ 2012-09-05 14:53 UTC (permalink / raw)
  To: linux-nfs

Hi,

I'm new on this list, this is my first post.

I can see some interoperability problems between FreeBSD 8 and 9 stable 
NFS servers and some Linux NFS clients when using Kerberized NFS.

I noticed that around nfs-utils 1.2.3 something must have changed on the 
Linux side or the Linux became more agile to trigger a bug with the FreeBSD.

Maybe these issues have been reported or fixed, but on a current RHEL 
6.3 and Ubuntu 12.04 LTS they still do exist.

When the Linux clients mount a FreeBSD NFS share (v3 or v4) sec=krb5*, 
they sometimes get an access denied.
If they are able to mount anyway, then subsequent NFS I/O errors continue.

So far:
http://lists.freebsd.org/pipermail/freebsd-fs/2012-August/015047.html
http://lists.freebsd.org/pipermail/freebsd-fs/2012-September/015050.html

I have some questions.  As this is an interop problem, I'd like to 
clarify a few things.

This what I see on the wireshark trace during an NFSv4 mount -o 
proto=tcp,sec=krb5:
The client is EL6 with a patched nfs-utils package as per: 
https://bugzilla.redhat.com/show_bug.cgi?id=802469 and gssd started with 
-l (legacy) option

TCP0: -> Linux NFS AUTH_NULL
TCP0: <- FreeBSD responds

TCP1: -> Linux sends RPCSEC_GSS_INIT
TCP1: <- FreeBSD responds by establishing GSS Context (it's a 16 byte token)

TCP1: -> Linux sends RPCSEC_GSS_DESTROY using the received 16 byte token
TCP0: -> Linux sends NFS:PUTROOTFS|GETATTR using the same 16 byte received gss context token


Re-using the gss context on the other tcp connection and immediately 
destroying it looks like a bug in the Linux NFS layer?

Another worry I see, is that the RPCSEC_GSS_DESTROY when validated on 
the FreeBSD side gss_verify_mic returns maj_stat = GSS_S_DEFECTIVE_TOKEN 
- which is quite strange (this still can be a FreeBSD bug).

Kind regards,
   Attila

-- 
Attila Bogár
Systems Administrator
Linguamatics - Cambridge, UK
http://www.linguamatics.com/


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: NFS client: RPCSEC_GSS w/ Kerberos over TCP
  2012-09-05 14:53 NFS client: RPCSEC_GSS w/ Kerberos over TCP Attila Bogár
@ 2012-09-05 17:27 ` J. Bruce Fields
  0 siblings, 0 replies; 2+ messages in thread
From: J. Bruce Fields @ 2012-09-05 17:27 UTC (permalink / raw)
  To: Attila Bogár; +Cc: linux-nfs

On Wed, Sep 05, 2012 at 03:53:34PM +0100, Attila Bogár wrote:
> Hi,
> 
> I'm new on this list, this is my first post.
> 
> I can see some interoperability problems between FreeBSD 8 and 9
> stable NFS servers and some Linux NFS clients when using Kerberized
> NFS.
> 
> I noticed that around nfs-utils 1.2.3 something must have changed on
> the Linux side or the Linux became more agile to trigger a bug with
> the FreeBSD.
> 
> Maybe these issues have been reported or fixed, but on a current
> RHEL 6.3 and Ubuntu 12.04 LTS they still do exist.
> 
> When the Linux clients mount a FreeBSD NFS share (v3 or v4)
> sec=krb5*, they sometimes get an access denied.
> If they are able to mount anyway, then subsequent NFS I/O errors continue.
> 
> So far:
> http://lists.freebsd.org/pipermail/freebsd-fs/2012-August/015047.html
> http://lists.freebsd.org/pipermail/freebsd-fs/2012-September/015050.html
> 
> I have some questions.  As this is an interop problem, I'd like to
> clarify a few things.
> 
> This what I see on the wireshark trace during an NFSv4 mount -o
> proto=tcp,sec=krb5:
> The client is EL6 with a patched nfs-utils package as per:
> https://bugzilla.redhat.com/show_bug.cgi?id=802469 and gssd started
> with -l (legacy) option
> 
> TCP0: -> Linux NFS AUTH_NULL
> TCP0: <- FreeBSD responds
> 
> TCP1: -> Linux sends RPCSEC_GSS_INIT
> TCP1: <- FreeBSD responds by establishing GSS Context (it's a 16 byte token)
> 
> TCP1: -> Linux sends RPCSEC_GSS_DESTROY using the received 16 byte token
> TCP0: -> Linux sends NFS:PUTROOTFS|GETATTR using the same 16 byte received gss context token
> 
> 
> Re-using the gss context on the other tcp connection and immediately
> destroying it looks like a bug in the Linux NFS layer?

Yes.

Might be worth either reporting to redhat or retesting with the most
recent upstream kernel.

> Another worry I see, is that the RPCSEC_GSS_DESTROY when validated
> on the FreeBSD side gss_verify_mic returns maj_stat =
> GSS_S_DEFECTIVE_TOKEN - which is quite strange (this still can be a
> FreeBSD bug).

Right, we'd have to look closer to be sure.  Might be worth grepping the
freebsd code for returns of GSS_S_DEFECTIVE_TOKEN and seeing if that
helps pin down what its complaint is.

--b.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-09-05 17:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-05 14:53 NFS client: RPCSEC_GSS w/ Kerberos over TCP Attila Bogár
2012-09-05 17:27 ` J. Bruce Fields

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).