From: Trond Myklebust <Trond.Myklebust@netapp.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Suresh Jayaraman <sjayaraman@suse.de>, Neil Brown <neilb@suse.de>,
Linux NFS mailing list <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH 3/3] sunrpc: reduce timeout when unregistering rpcbind registrations.
Date: Mon, 06 Jul 2009 13:14:16 -0400 [thread overview]
Message-ID: <1246900456.11267.34.camel@heimdal.trondhjem.org> (raw)
In-Reply-To: <68129579-E484-4E7E-B38D-4E14ED5A5B1D@oracle.com>
On Mon, 2009-07-06 at 12:57 -0400, Chuck Lever wrote:
> On Jul 6, 2009, at 12:40 PM, Trond Myklebust wrote:
> > On Mon, 2009-07-06 at 12:31 -0400, Chuck Lever wrote:
> >> I have considered that. AF_LOCAL in fact could replace all of our
> >> upcall mechanisms. However, portmapper, which doesn't support
> >> AF_LOCAL, is still used in some distributions.
> >
> > As could AF_NETLINK, fork(), pipes, fifos, etc... Again: why would we
> > want to saddle ourselves with rpc over AF_LOCAL?
>
> TI-RPC supports AF_LOCAL RPC transports.
>
> [cel@matisse notify-one]$ rpcinfo
> program version netid address service owner
> 100000 4 tcp6 ::.0.111 portmapper
> superuser
> 100000 3 tcp6 ::.0.111 portmapper
> superuser
> 100000 4 udp6 ::.0.111 portmapper
> superuser
> 100000 3 udp6 ::.0.111 portmapper
> superuser
> 100000 4 tcp 0.0.0.0.0.111 portmapper
> superuser
> 100000 3 tcp 0.0.0.0.0.111 portmapper
> superuser
> 100000 2 tcp 0.0.0.0.0.111 portmapper
> superuser
> 100000 4 udp 0.0.0.0.0.111 portmapper
> superuser
> 100000 3 udp 0.0.0.0.0.111 portmapper
> superuser
> 100000 2 udp 0.0.0.0.0.111 portmapper
> superuser
> 100000 4 local /var/run/rpcbind.sock portmapper
> superuser
> 100000 3 local /var/run/rpcbind.sock portmapper
> superuser
> 100024 1 udp 0.0.0.0.206.127 status 29
> 100024 1 tcp 0.0.0.0.166.105 status 29
> 100024 1 udp6 ::.141.238 status 29
> 100024 1 tcp6 ::.192.160 status 29
> [cel@matisse notify-one]$
>
> The listing for '/var/run/rpcbind.sock' is rpcbind's AF_LOCAL
> listener. TI-RPC's rpcb_foo() calls use this method of accessing the
> rpcbind database rather than going over loopback.
>
> rpcbind scrapes the caller's effective UID off the transport socket
> and uses that for authentication. Note the "owner" column... that
> comes from the socket's UID, not from the r_owner field. When a
> service is registered over the network, the owner column says
> "unknown" and basically anyone can unset it.
>
> If the kernel used AF_LOCAL to register its services, it would mean we
> would never use a network port for local rpcbind calls between the
> kernel and rpcbind, and rpcbind could automatically prevent the
> kernel's RPC services from getting unset by malicious users. If /var/
> run/rpcbind.sock isn't there, the kernel would know immediately that
> rpcbind wasn't running.
So what? You can achieve the same with any number of communication
channels (including the network). Just add a timeout to the current
'connect()' function, and set it to a low value when doing rpcbind
upcalls.
What's so special about libtirpc or rpcbind that we have to keep
redesigning the kernel to work around their limitations instead of the
other way round?
--
Trond Myklebust
Linux NFS client maintainer
NetApp
Trond.Myklebust@netapp.com
www.netapp.com
next prev parent reply other threads:[~2009-07-06 17:14 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-28 6:33 [nfsd PATCH 0/3] address issues with shutdown while portmap is dead NeilBrown
[not found] ` <20090528062730.15937.70579.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2009-05-28 6:33 ` [PATCH 1/3] nfsd: don't take nfsd_mutex twice when setting number of threads NeilBrown
[not found] ` <20090528063303.15937.55202.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2009-06-11 17:52 ` Jeff Layton
[not found] ` <20090611135255.0fa2f728-xSBYVWDuneFaJnirhKH9O4GKTjYczspe@public.gmane.org>
2009-06-11 18:01 ` Jeff Layton
2009-05-28 6:33 ` [PATCH 3/3] sunrpc: reduce timeout when unregistering rpcbind registrations NeilBrown
[not found] ` <20090528063303.15937.62423.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2009-05-28 13:07 ` Tom Talpey
2009-06-11 4:49 ` Neil Brown
[not found] ` <18992.36038.267957.467326-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2009-06-11 15:02 ` Chuck Lever
2009-05-28 13:43 ` Chuck Lever
2009-06-11 4:48 ` Neil Brown
[not found] ` <18992.35996.986951.556723-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2009-06-11 15:44 ` Chuck Lever
2009-07-02 20:04 ` Chuck Lever
2009-07-06 12:42 ` Suresh Jayaraman
2009-07-06 14:30 ` Chuck Lever
2009-07-06 16:08 ` Suresh Jayaraman
2009-07-06 16:22 ` Trond Myklebust
2009-07-06 16:31 ` Chuck Lever
2009-07-06 16:40 ` Trond Myklebust
[not found] ` <1246898450.11267.12.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-07-06 16:57 ` Chuck Lever
2009-07-06 17:14 ` Trond Myklebust [this message]
[not found] ` <1246900456.11267.34.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-07-06 17:51 ` Chuck Lever
2009-07-06 17:58 ` Trond Myklebust
[not found] ` <1246903105.23966.4.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-07-06 18:32 ` Chuck Lever
2009-05-28 6:33 ` [PATCH 2/3] nfsd: optimise the starting of zero threads when none are running NeilBrown
[not found] ` <20090528063303.15937.57966.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2009-06-11 17:26 ` Jeff Layton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1246900456.11267.34.camel@heimdal.trondhjem.org \
--to=trond.myklebust@netapp.com \
--cc=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.org \
--cc=neilb@suse.de \
--cc=sjayaraman@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox