From ec2bdfc8fe0e10992ae9946d7e430b037ca9d1d4 Mon Sep 17 00:00:00 2001 From: uvok cheetah Date: Fri, 31 Jan 2025 16:20:43 +0100 Subject: Add systemd template --- files/my-netns@.service | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 files/my-netns@.service diff --git a/files/my-netns@.service b/files/my-netns@.service new file mode 100644 index 0000000..74805e3 --- /dev/null +++ b/files/my-netns@.service @@ -0,0 +1,29 @@ +[Unit] +Description=Named network namespace %I +Documentation=https://github.com/Jamesits/systemd-named-netns + +After=network-pre.target +Before=network.target network-online.target + +[Install] +WantedBy=network-online.target +WantedBy=multi-user.target + +[Service] +Type=oneshot +RemainAfterExit=yes + +# precaution +ExecStartPre=-/usr/bin/env ip netns delete %I + +# set up netns and bind it to this service +ExecStart=/usr/bin/flock --no-fork -- /var/run/netns.lock /usr/bin/env ip netns add %I +ExecStart=/usr/bin/env ip link add veth%I type veth peer vethpeer%I netns %I +ExecStart=/usr/bin/env ip link set veth%I up +ExecStart=/usr/bin/env ip netns exec %I ip link set vethpeer%I name eth0 +ExecStart=/usr/bin/env ip netns exec %I ip link set lo up +ExecStart=/usr/bin/env ip netns exec %I ip link set eth0 up + +# remove the netns +ExecStop=/usr/bin/env ip link del veth%I +ExecStop=/usr/bin/env ip netns delete %I -- cgit v1.2.3