mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Lamparter <equinox@diac24.net>
To: Alexey Dobriyan <adobriyan@gmail.com>
Cc: David Lamparter <equinox@diac24.net>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	jamal <hadi@cyberus.ca>, Daniel Lezcano <daniel.lezcano@free.fr>,
	Linux Containers <containers@lists.osdl.org>,
	Renato Westphal <renatowestphal@gmail.com>
Subject: Re: Identifying network namespaces (was: Network namespace manipulation with file descriptors)
Date: Wed, 18 May 2011 15:33:52 +0200	[thread overview]
Message-ID: <20110518133352.GE3762520@jupiter.n2.diac24.net> (raw)
In-Reply-To: <BANLkTikmrC86hk=W84UBwhJLe_uGAN4w9w@mail.gmail.com>

On Wed, May 18, 2011 at 04:03:03PM +0300, Alexey Dobriyan wrote:
> On Wed, May 18, 2011 at 3:43 PM, David Lamparter <equinox@diac24.net> wrote:
> > -   processes cannot easily be cross referenced with each other
> >
> >  in the case of user space stuff running astray - like management
> >  software crashing, routing daemons screwing up, etc. - it becomes
> >  fairly difficult to shut down a network namespace (or even reaquire
> >  physical devices that have been reassigned)
> 
> It shutdowns itself when last process using netns disappeares,
> so if you kill your routing daemons you should be fine.
> Physical netdevices are moved to init_net.

Now assume I'm running pptpd, which forks a new pppd for each
connection. Even if I kill pptpd, the pppd keeps running... now how do I
find the pppds that belong to that one namespace that I'm trying to
get rid of?

> > -   namespaces cannot adequately be identified to the user
> >
> >  for debugging, some kernel messages become useless. most prominently,
> >  "unregister_netdevice: waiting for lo to become free. Usage count = 123"
> >  could certainly use some clarification, *which* lo is meant...
> 
> There is no "netns %p" or something, because right now the only unique
> netns identifier is kernel pointer (which better not be exposed to userspace).
> Printing such thing would be quite useless since it's not printed
> at netns creation.

I agree printing the kernel pointer is point-less.

> > So, considering this set of premises (feedback welcome) I looked for
> > some suitable means of identification. I discarded going for any process
> > identifiers since Eric's patches allow for network namespaces without
> > any process holding a reference, using bind mounts instead.
> 
> If anything it should be netns->id, /proc/*/netns outputting id
> where id is not derived from kernel pointer.
> 
> > Solution?
> > [ using lo interface index ]
> 
> What a hack! :-)

Well, you could create another counter and count it up on namespace
creation. But the interface index is readily available to userspace as
is, and it uniquely identifies the network namespace.

(Stupidest thing you can do to break this is renaming the loopback
device; but even if you do that userspace can still look at the LOOPBACK
flag.)


-David


  reply	other threads:[~2011-05-18 13:53 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-07  2:23 [PATCH 0/7] Network namespace manipulation with file descriptors Eric W. Biederman
2011-05-07  2:24 ` [PATCH 1/7] ns: proc files for namespace naming policy Eric W. Biederman
2011-05-07  2:24   ` [PATCH 2/7] ns: Introduce the setns syscall Eric W. Biederman
2011-05-07  8:01     ` Rémi Denis-Courmont
2011-05-07 13:57       ` Eric W. Biederman
2011-05-07 22:39     ` Daniel Lezcano
2011-05-08  3:51     ` Matt Helsley
2011-05-11 19:21     ` Nathan Lynch
2011-05-11 20:33       ` Eric W. Biederman
2011-05-07  2:24   ` [PATCH 3/7] ns proc: Add support for the network namespace Eric W. Biederman
2011-05-07 22:41     ` Daniel Lezcano
2011-05-11 19:21     ` Nathan Lynch
2011-05-11 21:34       ` Eric W. Biederman
2011-05-11 21:42         ` Nathan Lynch
2011-05-07  2:24   ` [PATCH 4/7] ns proc: Add support for the uts namespace Eric W. Biederman
2011-05-07 22:42     ` Daniel Lezcano
2011-05-07  2:24   ` [PATCH 5/7] ns proc: Add support for the ipc namespace Eric W. Biederman
2011-05-07 22:44     ` Daniel Lezcano
2011-05-07  2:25   ` [PATCH 6/7] net: Allow setting the network namespace by fd Eric W. Biederman
2011-05-07 22:46     ` Daniel Lezcano
2011-05-07  2:25   ` [PATCH 7/7] ns: Wire up the setns system call Eric W. Biederman
2011-05-07  8:27     ` Geert Uytterhoeven
2011-05-07 14:09       ` Eric W. Biederman
2011-05-07 18:22         ` Geert Uytterhoeven
2011-05-07 13:59     ` Mike Frysinger
2011-05-07 20:06     ` James Bottomley
2011-05-08  2:19       ` Eric W. Biederman
2011-05-08  4:02         ` James Bottomley
2011-05-07 22:37   ` [PATCH 1/7] ns: proc files for namespace naming policy Daniel Lezcano
2011-05-11 19:20   ` Nathan Lynch
2011-05-11 22:52     ` Eric W. Biederman
2011-05-07  6:58 ` [PATCH 0/7] Network namespace manipulation with file descriptors Alex Bligh
2011-05-07 14:18   ` Eric W. Biederman
2011-05-08 12:31     ` Alex Bligh
2011-05-17 11:11     ` David Lamparter
2011-05-17 14:33       ` Eric W. Biederman
2011-05-17 15:35         ` David Lamparter
2011-05-22  4:19           ` Renato Westphal
2011-05-09 19:04 ` David Miller
2011-05-09 19:59   ` Eric W. Biederman
2011-05-09 20:40     ` David Miller
2011-05-09 20:54       ` Eric W. Biederman
2011-05-09 20:55         ` David Miller
2011-05-10 21:56       ` Luck, Tony
2011-05-10 23:02 ` Eric W. Biederman
2011-05-18 12:43 ` Identifying network namespaces (was: Network namespace manipulation with file descriptors) David Lamparter
2011-05-18 13:03   ` Alexey Dobriyan
2011-05-18 13:33     ` David Lamparter [this message]
2011-05-18 14:13       ` Alexey Dobriyan

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=20110518133352.GE3762520@jupiter.n2.diac24.net \
    --to=equinox@diac24.net \
    --cc=adobriyan@gmail.com \
    --cc=containers@lists.osdl.org \
    --cc=daniel.lezcano@free.fr \
    --cc=ebiederm@xmission.com \
    --cc=hadi@cyberus.ca \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=renatowestphal@gmail.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

all inboxes | Powered by JetHome®