Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Apr 2021 15:41:20 +0000
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        freebsd-stable <freebsd-stable@freebsd.org>
Cc:        Peter Eriksson <pen@lysator.liu.se>, Ryan Moeller <freqlabs@FreeBSD.org>,  Garrett Wollman <wollman@hergotha.csail.mit.edu>
Subject:   wanna solve the Linux NFSv4 client puzzle?
Message-ID:  <YQXPR0101MB09682E0EEF2995E3FBC20BB8DD409@YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM>

next in thread | raw e-mail | index | archive | help
Hi,=0A=
=0A=
I posted recently that enabling delegations should be avoided at this time,=
=0A=
especially if your FreeBSD NFS server has Linux client mounts...=0A=
=0A=
I thought some of you might be curious why, and I thought it would be=0A=
more fun if you look for yourselves.=0A=
To play the game, you need to download a packet capture:=0A=
fetch https://people.freebsd.org/~rmacklem/twoclientdeleg.pcap=0A=
and then load it into wireshark.=0A=
=0A=
192.168.1.5 - FreeBSD server with all recent patches=0A=
192.168.1.6 - FedoraCore 30 (Linux 5.2 kernel) client=0A=
192.168.1.13 - FreeBSD client=0A=
=0A=
A few hints buried in RFC5661:=0A=
- A fore channel is used for normal client->server RPCs and a back channel=
=0A=
  is used for server->client callback RPCs.=0A=
- After a new TCP is created, neither the fore nor back channels=0A=
  are bound to the connection.=0A=
- Bindings channel(s) to a connection is done by BindConnectionToSession.=
=0A=
  but an implicit binding for the fore channel is created when the first RP=
C=0A=
  request with a Sequence operation in it is sent on the new TCP connection=
.=0A=
- A server->client callback cannot be done until the back channel is bound=
=0A=
  via BindConnectionToServer.=0A=
=0A=
Ok, so we are ready...=0A=
- Look at packet #s 3518->3605.=0A=
  - What is going on here?=0A=
  - How long does this take?=0A=
--> One more hint. Starting with #3605, things are working again.=0A=
There are actually 3 other examples of this in the pack capture.=0A=
=0A=
Btw, one of the weirdnesses is said to be fixed in Linux 5.3 and the other=
=0A=
in Linux 5.7, although I have not yet upgraded my kernel and tested this.=
=0A=
=0A=
Have fun with it, rick=0A=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YQXPR0101MB09682E0EEF2995E3FBC20BB8DD409>