]> git.ipfire.org Git - thirdparty/systemd.git/commit
nspawn: introduce an option for specifying network namespace path
authorDongsu Park <dongsu@kinvolk.io>
Fri, 24 Nov 2017 17:22:17 +0000 (18:22 +0100)
committerIago López Galeiras <iago@kinvolk.io>
Wed, 13 Dec 2017 10:21:06 +0000 (10:21 +0000)
commitd7bea6b6299677fe0b5ddc73ff313f93c3d453c7
tree2756c012eaa6a89d5e13669b2f754f49d3a924c5
parentcb9eeb062c323391fcd98da0c30e844fa5162e90
nspawn: introduce an option for specifying network namespace path

Add a new option `--network-namespace-path` to systemd-nspawn to allow
users to specify an arbitrary network namespace, e.g. `/run/netns/foo`.
Then systemd-nspawn will open the netns file, pass the fd to
outer_child, and enter the namespace represented by the fd before
running inner_child.

```
$ sudo ip netns add foo
$ mount | grep /run/netns/foo
nsfs on /run/netns/foo type nsfs (rw)
...
$ sudo systemd-nspawn -D /srv/fc27 --network-namespace-path=/run/netns/foo \
  /bin/readlink -f /proc/self/ns/net
/proc/1/ns/net:[4026532009]
```

Note that the option `--network-namespace-path=` cannot be used together
with other network-related options such as `--private-network` so that
the options do not conflict with each other.

Fixes https://github.com/systemd/systemd/issues/7361
man/systemd-nspawn.xml
src/basic/missing.h
src/basic/stat-util.c
src/basic/stat-util.h
src/nspawn/nspawn.c