summaryrefslogtreecommitdiffstats
path: root/network
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2024-05-15 07:21:53 +0200
committerLuca Boccassi <luca.boccassi@gmail.com>2024-05-16 14:37:28 +0200
commit6533c14997700f74e9ea42121303fc1f5c63e62b (patch)
treed6c7c81c4c9daee239461f0d92bd98eb3a08e9ab /network
parenttest: add coverate for Compress=yes config option (diff)
downloadsystemd-6533c14997700f74e9ea42121303fc1f5c63e62b.tar.xz
systemd-6533c14997700f74e9ea42121303fc1f5c63e62b.zip
network: configure a tun host0 interface in a container
While containers often have their host0 network provided by veth when the container runtime is privileged, unprivileged containers tend to have their network provided via slirp4netns or pasta. These tools use a tun interface rather than a veth interface and systemd should still set configure such networks. We should have different .network files for the veth and tun use cases as there may arise a need to configure them differently. We should not rename 80-container-host0.network as that would cause existing drop-ins to no longer apply. Closes: #32095 Fixes: f139393dd20a ("network: use Kind= instead of Driver=") Signed-off-by: Helmut Grohne <helmut@subdivi.de>
Diffstat (limited to 'network')
-rw-r--r--network/80-container-host0-tun.network22
-rw-r--r--network/meson.build1
2 files changed, 23 insertions, 0 deletions
diff --git a/network/80-container-host0-tun.network b/network/80-container-host0-tun.network
new file mode 100644
index 0000000000..1a50512d83
--- /dev/null
+++ b/network/80-container-host0-tun.network
@@ -0,0 +1,22 @@
+# SPDX-License-Identifier: MIT-0
+#
+# This config file is installed as part of systemd.
+# It may be freely copied and edited (following the MIT No Attribution license).
+#
+# To make local modifications, use "networkctl edit". See networkctl(1) for details.
+# This file should not be edited in place, because it'll be overwritten on upgrades.
+
+# This network file is inside unprivileged containers that rely on network being
+# provided as a tun link via slirp4netns(1) or pasta(1).
+
+[Match]
+Kind=tun
+Name=host0
+Virtualization=container
+
+[Network]
+DHCP=yes
+LinkLocalAddressing=yes
+
+[DHCP]
+UseTimezone=yes
diff --git a/network/meson.build b/network/meson.build
index 1141b17844..6231d55351 100644
--- a/network/meson.build
+++ b/network/meson.build
@@ -5,6 +5,7 @@ if conf.get('ENABLE_NETWORKD') == 1
'80-6rd-tunnel.network',
'80-6rd-tunnel.link',
'80-container-host0.network',
+ '80-container-host0-tun.network',
'80-container-vb.network',
'80-container-vb.link',
'80-container-ve.network',