From: ebiederm@xmission•com (Eric W. Biederman)
To: dilip.daya@hp•com
Cc: netdev@vger•kernel.org
Subject: Re: named network namespace -- setns() with Invalid argument (errno 22)
Date: Tue, 29 Oct 2013 21:33:22 -0700 [thread overview]
Message-ID: <8738njfkdp.fsf@xmission.com> (raw)
In-Reply-To: <1383092184.12859.78.camel@dilip-laptop> (Dilip Daya's message of "Tue, 29 Oct 2013 20:16:24 -0400")
Dilip Daya <dilip.daya@hp•com> writes:
> Hi All,
>
> Is the following intended behavior for adding "nested" named network namespaces ?
Not exactly intended but this is not misbehavior either.
Mostly this is a don't do that then scenario.
Eric
> Steps to reproduce:
>
> # uname -r
> 3.10.1
>
>
> # /sbin/ip -V
> ip utility, iproute2-ss130903
>
>
> Existing network namespaces:
> # ip netns list
> NETNS0
> NETNS1
>
>
> List of named network namespace objects with inode/permissions:
> # ls -li /var/run/netns/
> total 0
> 4026532310 -r--r--r-- 1 root root 0 Oct 29 09:11 NETNS0
> 4026532366 -r--r--r-- 1 root root 0 Oct 29 09:13 NETNS1
>
> Enter existing named network namespace:
> # ip netns exec NETNS0 bash
>
> List network devices for named netns:
> # ls -l /sys/class/net/
> total 0
> lrwxrwxrwx 1 root root 0 Oct 29 12:25 lo -> ../../devices/virtual/net/lo/
>
> List of named network namespace objects with inode/permissions:
> # ls -li /var/run/netns/
> total 0
> 4026532310 -r--r--r-- 1 root root 0 Oct 29 09:11 NETNS0
> 4026532366 -r--r--r-- 1 root root 0 Oct 29 09:13 NETNS1
>
>
> # ip netns add NETNS0a <<< adding NETNS0a from within NETNS0
> # ls -li /var/run/netns/
> total 0
> 4026532310 -r--r--r-- 1 root root 0 Oct 29 09:11 NETNS0
> 4026532366 -r--r--r-- 1 root root 0 Oct 29 09:13 NETNS1
> 4026532423 -r--r--r-- 1 root root 0 Oct 29 12:28 NETNS0a
> ^^^^^^^^^^ ^^^^^^^^^^
> inode permissions
>
>
> # ip netns exec NETNS0a ls -l /sys/class/net/
> total 0
> lrwxrwxrwx 1 root root 0 Oct 29 12:28 lo -> ../../devices/virtual/net/lo
>
> # exit <<< exiting from NETNS0
>
> Listing from host/default namespace:
> # ls -li /var/run/netns/
> total 0
> 4026532310 -r--r--r-- 1 root root 0 Oct 29 09:11 NETNS0
> 4026532366 -r--r--r-- 1 root root 0 Oct 29 09:13 NETNS1
> 964863 ---------- 1 root root 0 Oct 29 12:28 NETNS0a <<< NULL permissions
> ^^^^^^ ^^^^^^^^^^
>
>
> Re-enter NETNS0:
> # ip netns exec NETNS0 bash
> # ls -li /var/run/netns/
> total 0
> 4026532310 -r--r--r-- 1 root root 0 Oct 29 09:11 NETNS0
> 4026532366 -r--r--r-- 1 root root 0 Oct 29 09:13 NETNS1
> 964863 ---------- 1 root root 0 Oct 29 12:28 NETNS0a <<< NULL permissions
> ^^^^^^^^^^
>
>
> # ip netns exec NETNS0a ls -l /sys/class/net/
> seting the network namespace "NETNS0a" failed: Invalid argument
>
> => It seems the bash shell that created the nested named netns is the only
> one that can view/enter the nested named netns. All other attempts from
> either another bash shell or host/default namespace will get a different
> inode with NULL permissions. Once the initial bash shell that created the
> nested named netns exists the nested netns is rendered unusable due to
> NULL permissions on its inode. setns() Invalid argument (errno 22) seems
> to be due to NULL permissions on /var/run/netns/<netnsName> object.
>
>
> Thanks.
next prev parent reply other threads:[~2013-10-30 4:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-30 0:16 named network namespace -- setns() with Invalid argument (errno 22) Dilip Daya
2013-10-30 4:33 ` Eric W. Biederman [this message]
2013-10-30 20:54 ` Eric W. Biederman
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=8738njfkdp.fsf@xmission.com \
--to=ebiederm@xmission$(echo .)com \
--cc=dilip.daya@hp$(echo .)com \
--cc=netdev@vger$(echo .)kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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