From: Vadim Kochan Date: Sun, 15 Mar 2015 15:49:16 +0000 (+0200) Subject: man ip-netns: Notice about loose device when do 'del' X-Git-Tag: v4.0.0~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ee9b34778c8bf7743b47c15206ae03af1b94d085;p=thirdparty%2Fiproute2.git man ip-netns: Notice about loose device when do 'del' Signed-off-by: Vadim Kochan --- diff --git a/man/man8/ip-netns.8 b/man/man8/ip-netns.8 index 28a954414..d49667585 100644 --- a/man/man8/ip-netns.8 +++ b/man/man8/ip-netns.8 @@ -46,6 +46,9 @@ ip-netns \- process network namespace management A network namespace is logically another copy of the network stack, with its own routes, firewall rules, and network devices. +By default process inherits network namespace from its parent. Initially all +the processes share the same default network namespace from the init process. + By convention a named network namespace is an object at .BR "/var/run/netns/" NAME that can be opened. The file descriptor resulting from opening @@ -88,14 +91,30 @@ network namespace and assigns NAME. .sp If NAME is present in /var/run/netns it is umounted and the mount point is removed. If this is the last user of the network namespace the -network namespace will be freed, otherwise the network namespace -persists until it has no more users. ip netns delete may fail if -the mount point is in use in another mount namespace. +network namespace will be freed and all physical devices will be moved to the +default one, otherwise the network namespace persists until it has no more +users. ip netns delete may fail if the mount point is in use in another mount +namespace. If .B -all option was specified then all the network namespace names will be removed. +It is possible to lose the physical device when it was moved to netns and +then this netns was deleted with a running process: + + $ ip netns add net0 + $ ip link set dev eth0 netns net0 + $ ip netns exec net0 SOME_PROCESS_IN_BACKGROUND + $ ip netns del net0 + +and eth0 will appear in the default netns only after SOME_PROCESS_IN_BACKGROUND +will exit or will be killed. To prevent this the processes running in net0 +should be killed before deleting the netns: + + $ ip netns pids net0 | xargs kill + $ ip netns del net0 + .TP .B ip netns set NAME NETNSID - assign an id to a peer network namespace .sp