From: Le Rouzic <aime.le-rouzic@bull.net>
To: "J. Bruce Fields" <bfields@fieldses.org>,
Chuck Lever <chuck.lever@oracle.com>
Cc: trond.myklebust@netapp.com, trond.myklebust@fys.uio.no,
linux-nfs@vger.kernel.org, Frank S Filz <ffilz@us.ibm.com>
Subject: Re: [PATCH 3/8] SUNRPC: Set V6ONLY socket option for RPC listener sockets
Date: Thu, 21 Aug 2008 14:11:49 +0200 [thread overview]
Message-ID: <48AD5B85.4020807@bull.net> (raw)
In-Reply-To: <20080820193126.GB21226@fieldses.org>
J. Bruce Fields a =E9crit :
>On Thu, Aug 14, 2008 at 04:45:31PM -0400, Chuck Lever wrote:
> =20
>
>>On Aug 14, 2008, at 4:38 PM, J. Bruce Fields wrote:
>> =20
>>
>>>On Thu, Aug 14, 2008 at 04:34:14PM -0400, Chuck Lever wrote:
>>> =20
>>>
>>>>On Aug 14, 2008, at 4:05 PM, J. Bruce Fields wrote:
>>>> =20
>>>>
>>>>>On Wed, Aug 13, 2008 at 06:39:54PM -0400, Chuck Lever wrote:
>>>>> =20
>>>>>
>>>>>>My plan is to use an AF_INET listener on systems that support onl=
y
>>>>>>IPv4,
>>>>>>and an AF_INET6 listener on systems that can support IPv6. Incomi=
ng
>>>>>>IPv4 packets will be posted to an AF_INET6 listener with a mapped
>>>>>>IPv4
>>>>>>address.
>>>>>> =20
>>>>>>
>>>>>How will the nfs server choose whether to use AF_INET or AF_INET6?
>>>>>Will
>>>>>we need some new user interface?
>>>>> =20
>>>>>
>>>>[PATCH 2/8] changes svc_create() to take an additional argument whi=
ch
>>>>specifies the listener's address family. This value is stored in
>>>>svc_serv.
>>>> =20
>>>>
>>>Right, but I'm asking about the nfsd server, not the rpc server, and=
=20
>>>the
>>>user interface, not the in-kernel interface:
>>> =20
>>>
>>Ah. That wasn't clear before.
>>
>> =20
>>
>>>so suppose I'm a server
>>>administrator, and want my nfs server to listen for ipv6 connections=
=2E
>>>Will there be some switch I'll need to flip?
>>> =20
>>>
>>I don't know how that UI will be designed. So far, I've focused only=
on=20
>>the pieces needed for client side IPv6 support. I figured the Bull t=
eam=20
>>had something figured out for the server, and didn't think any more a=
bout=20
>>it.
>> =20
>>
>
>I've forgotten who was working on that; Aurelien Charbon?
> =20
>
Hi,
Sorry for not answering before, I am back from vacation.
Aurelien is no longer directly working on that even he can answer any=20
questions.
It is me now who tess NFSV4 IPV6 with the patches Aurelien delivered=20
to Bruce a few months ago.
But since Chuck has delivered several new patches which affect
the NFS server side about the way nfsd can listen for ipv6 connections.
To have NFSV4 IPV6 working with those changes, what it would be nice=20
to have a complete list
on what are the changes.
Is there now a complete release for which we can test those latest=20
changes? If not which one will be?
Are there any other changes still planned?
Best Regards
>--b.
>
> =20
>
>>>>>>Max Matveev <makc@sgi.com> says:
>>>>>>Creating a single listener can be dangerous - if =20
>>>>>>net.ipv6.bindv6only
>>>>>>is enabled then it's possible to create another listener in v4
>>>>>>namespace on the same port and steal the traffic from the "unifed=
"
>>>>>>listener. You need to disable V6ONLY explicitly via a sockopt to
>>>>>>stop
>>>>>>that.
>>>>>>
>>>>>>Set appropriate socket option on RPC server listener sockets to
>>>>>>prevent
>>>>>>this.
>>>>>>
>>>>>>Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>>>>>>---
>>>>>>
>>>>>>net/sunrpc/svcsock.c | 13 +++++++++++++
>>>>>>1 files changed, 13 insertions(+), 0 deletions(-)
>>>>>>
>>>>>>diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
>>>>>>index 3e65719..f91377c 100644
>>>>>>--- a/net/sunrpc/svcsock.c
>>>>>>+++ b/net/sunrpc/svcsock.c
>>>>>>@@ -1114,6 +1114,7 @@ static struct svc_sock
>>>>>>*svc_setup_socket(struct svc_serv *serv,
>>>>>> struct svc_sock *svsk;
>>>>>> struct sock *inet;
>>>>>> int pmap_register =3D !(flags & SVC_SOCK_ANONYMOUS);
>>>>>>+ int val;
>>>>>>
>>>>>> dprintk("svc: svc_setup_socket %p\n", sock);
>>>>>> if (!(svsk =3D kzalloc(sizeof(*svsk), GFP_KERNEL))) {
>>>>>>@@ -1146,6 +1147,18 @@ static struct svc_sock
>>>>>>*svc_setup_socket(struct svc_serv *serv,
>>>>>> else
>>>>>> svc_tcp_init(svsk, serv);
>>>>>>
>>>>>>+ /*
>>>>>>+ * We start one listener per sv_serv. We want AF_INET
>>>>>>+ * requests to be automatically shunted to our AF_INET6
>>>>>>+ * listener using a mapped IPv4 address. Make sure
>>>>>>+ * no-one starts an equivalent IPv4 listener, which
>>>>>>+ * would steal our incoming connections.
>>>>>>+ */
>>>>>>+ val =3D 0;
>>>>>>+ if (serv->sv_family =3D=3D AF_INET6)
>>>>>>+ kernel_setsockopt(sock, SOL_IPV6, IPV6_V6ONLY,
>>>>>>+ (char *)&val, sizeof(val));
>>>>>>+
>>>>>> dprintk("svc: svc_setup_socket created %p (inet %p)\n",
>>>>>> svsk, svsk->sk_sk);
>>>>>>
>>>>>>
>>>>>> =20
>>>>>>
>>>>--
>>>>Chuck Lever
>>>>chuck[dot]lever[at]oracle[dot]com
>>>>
>>>>
>>>>
>>>> =20
>>>>
>>--
>>Chuck Lever
>>chuck[dot]lever[at]oracle[dot]com
>>
>>
>>
>>--
>>To unsubscribe from this list: send the line "unsubscribe linux-nfs" =
in
>>the body of a message to majordomo@vger.kernel.org
>>More majordomo info at http://vger.kernel.org/majordomo-info.html
>> =20
>>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-nfs" i=
n
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
> =20
>
--=20
-----------------------------------------------------------------
Company : Bull, Architect of an Open World TM (www.bull.com)
Name : Aime Le Rouzic=20
Mail : Bull - BP 208 - 38432 Echirolles Cedex - France
E-Mail : aime.le-rouzic@bull.net
Phone : 33 (4) 76.29.75.51
=46ax : 33 (4) 76.29.75.18
-----------------------------------------------------------------=20
next prev parent reply other threads:[~2008-08-21 12:11 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-13 22:39 [PATCH 0/8] Support rpcbind v4 in kernel's RPC server Chuck Lever
[not found] ` <20080813223653.13068.9467.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-08-13 22:39 ` [PATCH 1/8] NFS: nfs_parsed_mount_options can use unsigned int Chuck Lever
[not found] ` <20080813223937.13068.47032.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-09-23 19:42 ` Trond Myklebust
2008-08-13 22:39 ` [PATCH 2/8] SUNRPC: Add address family field to svc_serv data structure Chuck Lever
2008-08-13 22:39 ` [PATCH 3/8] SUNRPC: Set V6ONLY socket option for RPC listener sockets Chuck Lever
[not found] ` <20080813223953.13068.97829.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-08-14 20:05 ` J. Bruce Fields
2008-08-14 20:34 ` Chuck Lever
2008-08-14 20:38 ` J. Bruce Fields
2008-08-14 20:45 ` Chuck Lever
2008-08-20 19:31 ` J. Bruce Fields
2008-08-21 12:11 ` Le Rouzic [this message]
2008-08-21 14:41 ` J. Bruce Fields
2008-08-21 15:32 ` Le Rouzic
2008-08-21 16:20 ` Chuck Lever
[not found] ` <76bd70e30808210920y3db1b07cyccbe40e1b4582c12-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-08-21 21:26 ` J. Bruce Fields
2008-08-13 22:40 ` [PATCH 4/8] SUNRPC: Use proper INADDR_ANY when setting up RPC services on IPv6 Chuck Lever
2008-08-13 22:40 ` [PATCH 5/8] SUNRPC: Split portmap unregister API into separate function Chuck Lever
2008-08-13 22:40 ` [PATCH 6/8] SUNRPC: Refactor svc_register() Chuck Lever
[not found] ` <20080813224016.13068.29786.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-08-14 20:36 ` J. Bruce Fields
2008-08-14 21:11 ` Chuck Lever
2008-08-13 22:40 ` [PATCH 7/8] SUNRPC: Use new rpcb_v4_register() interface in svc_register() Chuck Lever
2008-08-13 22:40 ` [PATCH 8/8] SUNRPC: Add kernel build option to disable server-side use of rpcbind v3/v4 Chuck Lever
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=48AD5B85.4020807@bull.net \
--to=aime.le-rouzic@bull.net \
--cc=bfields@fieldses.org \
--cc=chuck.lever@oracle.com \
--cc=ffilz@us.ibm.com \
--cc=linux-nfs@vger.kernel.org \
--cc=trond.myklebust@fys.uio.no \
--cc=trond.myklebust@netapp.com \
/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