diff options
| author | Michael Biebl <biebl@debian.org> | 2024-05-05 00:07:30 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2024-05-05 00:07:30 +0200 |
| commit | 34bb501be08aa2b313d88e67d6e0a7e0a3f9cfa6 (patch) | |
| tree | 4e6220877828be4c6f261de09ec0cb2d80e32389 /tools/nm-guest-data | |
| parent | bba2e4b4de668db525cbfdfc35292e5a0b51671a (diff) | |
New upstream version 1.47.90 upstream/1.47.90
Diffstat (limited to 'tools/nm-guest-data')
| -rw-r--r-- | tools/nm-guest-data/.gitignore | 2 | ||||
| -rw-r--r-- | tools/nm-guest-data/README.md | 10 | ||||
| -rw-r--r-- | tools/nm-guest-data/bin-_nm-in-container-setup.sh.in | 13 | ||||
| -rw-r--r-- | tools/nm-guest-data/bin-nm-deploy.sh.in | 14 | ||||
| -rw-r--r-- | tools/nm-guest-data/bin-nm-env-prepare.sh.in | 163 | ||||
| -rw-r--r-- | tools/nm-guest-data/etc-bashrc-motd.my.in | 4 | ||||
| -rw-r--r-- | tools/nm-guest-data/etc-bashrc.my.in | 45 | ||||
| -rw-r--r-- | tools/nm-guest-data/etc-motd-container.in | 75 | ||||
| -rw-r--r-- | tools/nm-guest-data/etc-motd-vm.in | 63 | ||||
| -rw-r--r-- | tools/nm-guest-data/etc-rc.local.in | 8 | ||||
| -rw-r--r-- | tools/nm-guest-data/home-bash_history.in | 31 | ||||
| -rw-r--r-- | tools/nm-guest-data/home-behaverc.in | 2 | ||||
| -rw-r--r-- | tools/nm-guest-data/home-gdb_history.in | 2 | ||||
| -rw-r--r-- | tools/nm-guest-data/home-gdbinit.in | 2 | ||||
| -rw-r--r-- | tools/nm-guest-data/nm-90-my.conf.in | 19 | ||||
| -rw-r--r-- | tools/nm-guest-data/nm-95-user.conf.in | 0 | ||||
| -rw-r--r-- | tools/nm-guest-data/systemd-10-host-net.link.in | 6 | ||||
| -rw-r--r-- | tools/nm-guest-data/systemd-20-nm.override.in | 5 | ||||
| -rw-r--r-- | tools/nm-guest-data/systemd-dhcp-host.service.in | 14 |
19 files changed, 478 insertions, 0 deletions
diff --git a/tools/nm-guest-data/.gitignore b/tools/nm-guest-data/.gitignore new file mode 100644 index 00000000..f87048d7 --- /dev/null +++ b/tools/nm-guest-data/.gitignore @@ -0,0 +1,2 @@ +/data-* +/containerfile diff --git a/tools/nm-guest-data/README.md b/tools/nm-guest-data/README.md new file mode 100644 index 00000000..2b6aac3a --- /dev/null +++ b/tools/nm-guest-data/README.md @@ -0,0 +1,10 @@ +Run NetworkManager in Container for Development +=============================================== + +Run `nm-in-container` script for running NetworkManager in a non-root, +privileged podman container. Run `nm-in-vm` to do it in a vitual machine. +This is useful for testing NetworkManager for development. + +Try `./nm-in-container --help` or `./nm-in-vm --help` to see options. Inside +the container, see the bash history for useful commands and read the hints in +"/etc/motd". diff --git a/tools/nm-guest-data/bin-_nm-in-container-setup.sh.in b/tools/nm-guest-data/bin-_nm-in-container-setup.sh.in new file mode 100644 index 00000000..837daf77 --- /dev/null +++ b/tools/nm-guest-data/bin-_nm-in-container-setup.sh.in @@ -0,0 +1,13 @@ +#!/bin/bash -e + +if [ ! -d /tmp/sys2 ]; then + # `ip -netns t exec ...` will try to mount sysfs. But kernel rejects that in + # the container, unless a writable sysfs is already mounted. Due to --priviledged, + # we have /sys mounted rw, however, ip will first unmount /sys before trying to + # remount it. We thus need it mounted as rw one additional time. + # + # Let's do this setup step once, and never clean it up. + # https://github.com/containers/podman/issues/11887#issuecomment-938706628 + mkdir /tmp/sys2 + mount -t sysfs --make-private sysfs /tmp/sys2 +fi diff --git a/tools/nm-guest-data/bin-nm-deploy.sh.in b/tools/nm-guest-data/bin-nm-deploy.sh.in new file mode 100644 index 00000000..9b5385b1 --- /dev/null +++ b/tools/nm-guest-data/bin-nm-deploy.sh.in @@ -0,0 +1,14 @@ +#!/bin/bash + +set -ex + +cd /NetworkManager + +if [ -f ./config.log ] ; then + make -j 5 install +else + meson install -C build +fi + +systemctl daemon-reload +systemctl restart NetworkManager.service diff --git a/tools/nm-guest-data/bin-nm-env-prepare.sh.in b/tools/nm-guest-data/bin-nm-env-prepare.sh.in new file mode 100644 index 00000000..e26fb167 --- /dev/null +++ b/tools/nm-guest-data/bin-nm-env-prepare.sh.in @@ -0,0 +1,163 @@ +#!/bin/bash + +set -e + +die() { + printf '%s\n' "$*" + exit 1 +} + +do_cleanup() { + local IDX="$1" + local NAME_PREFIX="${2:-net}" + local PEER_PREFIX="${3:-d_}" + local NETNS_PREFIX="${4:-tt}" + + logger --id "nm-env-prepare-$IDX" "cleanup start # $@" + + pkill -F "/tmp/nm-dnsmasq-$PEER_PREFIX$IDX.pid" dnsmasq &>/dev/null || : + rm -rf "/tmp/nm-dnsmasq-$PEER_PREFIX$IDX.pid" + + pkill -F "/tmp/nm-radvd-$PEER_PREFIX$IDX.pid" radvd &>/dev/null || : + rm -rf "/tmp/nm-radvd-$PEER_PREFIX$IDX.pid" + + pkill -F "/tmp/nm-pppoe-$PEER_PREFIX$IDX.pid" pppoe-server &>/dev/null || : + rm -rf "/tmp/nm-pppoe-$PEER_PREFIX$IDX.pid" + rm -rf "/tmp/nm-pppoe-allip-$PEER_PREFIX$IDX" + + rm -rf "/tmp/nm-radvd-$PEER_PREFIX$IDX.conf" + + ip -netns "$NETNS_PREFIX$IDX" link del "$PEER_PREFIX$IDX" &>/dev/null || : + + ip netns del "$NETNS_PREFIX$IDX" &>/dev/null || : + + logger --id "nm-env-prepare-$IDX" "cleanup complete # $@" +} + +do_setup() { + local IDX="$1" + local NAME_PREFIX="${2:-net}" + local PEER_PREFIX="${3:-d_}" + local NETNS_PREFIX="${4:-tt}" + + logger --id "nm-env-prepare-$IDX" "setup start # $@" + + ip netns add "$NETNS_PREFIX$IDX" + ip -netns "$NETNS_PREFIX$IDX" link set name lo up + + ip -netns "$NETNS_PREFIX$IDX" link add "$NAME_PREFIX$IDX" type veth peer "$PEER_PREFIX$IDX" + ip -netns "$NETNS_PREFIX$IDX" link set name "$NAME_PREFIX$IDX" addr aa:0f:f1:ce:00:$(printf '%02x' $IDX) + ip -netns "$NETNS_PREFIX$IDX" link set name "$PEER_PREFIX$IDX" addr cc:0f:f1:ce:00:$(printf '%02x' $IDX) + ip -netns "$NETNS_PREFIX$IDX" link set name "$PEER_PREFIX$IDX" up + + ip -netns "$NETNS_PREFIX$IDX" addr add "192.168.$((120 + IDX)).1/23" dev "$PEER_PREFIX$IDX" + ip -netns "$NETNS_PREFIX$IDX" addr add "192:168:$((120 + IDX))::1/64" dev "$PEER_PREFIX$IDX" + + # PPPoE inside the rootless container is not actually working, because + # /dev/ppp is not accessible. Still start it, so that we at least can + # test how far it goes... + echo "192.168.$((120 + $IDX)).180-200" > "/tmp/nm-pppoe-allip-$PEER_PREFIX$IDX" + ip netns exec "$NETNS_PREFIX$IDX" \ + pppoe-server \ + -X "/tmp/nm-pppoe-$PEER_PREFIX$IDX.pid" \ + -S isp \ + -C isp \ + -L "192.168.$((120 + IDX)).1" \ + -p "/tmp/nm-pppoe-allip-$PEER_PREFIX$IDX" \ + -I "$PEER_PREFIX$IDX" \ + & + + ip netns exec "$NETNS_PREFIX$IDX" \ + dnsmasq \ + --conf-file=/dev/null \ + --pid-file="/tmp/nm-dnsmasq-$PEER_PREFIX$IDX.pid" \ + --no-hosts \ + --keep-in-foreground \ + --bind-interfaces \ + --log-debug \ + --log-queries \ + --log-dhcp \ + --except-interface=lo \ + --clear-on-reload \ + --listen-address="192.168.$((120 + $IDX)).1" \ + --listen-address="192:168:$((120 + IDX))::1" \ + --dhcp-range="192.168.$((120 + $IDX)).100,192.168.$((120 + $IDX)).150,2m" \ + --dhcp-range="192:168:$((120 + IDX))::1:1000,192:168:$((120 + IDX))::1:2000,64,2m" \ + --dhcp-option=option:dns-server,8.8.8.8,8.8.4.4 \ + --dhcp-option=option6:dns-server \ + --no-ping \ + & + + cat <<EOF > "/tmp/nm-radvd-$PEER_PREFIX$IDX.conf" +interface $PEER_PREFIX$IDX +{ + AdvSendAdvert on; + AdvManagedFlag on; + prefix 192:168:$((120 + IDX))::/64 + { + AdvOnLink on; + }; + +}; +EOF + ip netns exec "$NETNS_PREFIX$IDX" \ + radvd \ + --config "/tmp/nm-radvd-$PEER_PREFIX$IDX.conf" \ + --pidfile "/tmp/nm-radvd-$PEER_PREFIX$IDX.pid" \ + --logmethod syslog \ + -d 5 \ + & + + ip -netns ""$NETNS_PREFIX$IDX"" link set name "$NAME_PREFIX$IDX" netns $$ + + logger --id "nm-env-prepare-$IDX" "setup complete: netns=$NETNS_PREFIX$IDX, iface=$NAME_PREFIX$IDX, peer=$PEER_PREFIX$IDX # $@" +} + +do_redo() { + do_cleanup "$@" + do_setup "$@" +} + +############################################################################### + +IDX=1 +NAME_PREFIX=net +PEER_PREFIX= +CMD=redo +for (( i=1 ; i<="$#" ; )) ; do + c="${@:$i:1}" + i=$((i+1)) + case "$c" in + redo|setup|cleanup) + CMD="$c" + ;; + --prefix|-p) + NAME_PREFIX="${@:$i:1}" + test -n "$NAME_PREFIX" || die "missing argument to --prefix" + i=$((i+1)) + ;; + --peer-prefix) + PEER_PREFIX="${@:$i:1}" + test -n "$PEER_PREFIX" || die "missing argument to --peer-prefix" + i=$((i+1)) + ;; + --idx|-i) + test $i -le "$#" || die "missing argument to --idx" + IDX="${@:$i:1}" + i=$((i+1)) + ;; + *) + die "invalid argument" + ;; + esac +done + +if [ -z "$PEER_PREFIX" ]; then + if [ "$NAME_PREFIX" = net ]; then + PEER_PREFIX=d_ + else + PEER_PREFIX="d_${NAME_PREFIX}_" + fi +fi + +do_$CMD "$IDX" "$NAME_PREFIX" "$PEER_PREFIX" diff --git a/tools/nm-guest-data/etc-bashrc-motd.my.in b/tools/nm-guest-data/etc-bashrc-motd.my.in new file mode 100644 index 00000000..510d30f8 --- /dev/null +++ b/tools/nm-guest-data/etc-bashrc-motd.my.in @@ -0,0 +1,4 @@ +if test "$SHOW_MOTD" != 0; then + cat /etc/motd + export SHOW_MOTD=0 +fi diff --git a/tools/nm-guest-data/etc-bashrc.my.in b/tools/nm-guest-data/etc-bashrc.my.in new file mode 100644 index 00000000..88f2f9aa --- /dev/null +++ b/tools/nm-guest-data/etc-bashrc.my.in @@ -0,0 +1,45 @@ +alias m="make -j 8" +alias n="ninja -C build" + +alias l='ls -l --color=auto' + +ulimit -c unlimited + +export G_DEBUG=fatal-warnings + +unset DEBUGINFOD_URLS + +export NMCI_DEBUG=1 + +export TERM=xterm + +Clean() { + systemctl stop NetworkManager + rm -i -rf /run/NetworkManager + nm-env-prepare.sh +} + +Cat-Timestamp() { + while IFS=$'\n' read line; do + printf "[%s]: %s\n" "1689938340.403232924" "$line" + done +} + +Journald-clear() { + rm -rf /var/log/journal/????????????????????????????????/* + systemctl restart systemd-journald +} + +nm_run_gdb() { + systemctl stop NetworkManager.service + gdb --args "${1:-/opt/test/sbin/NetworkManager}" --debug +} + +nm_run_normal() { + systemctl stop NetworkManager.service + "${1:-/opt/test/sbin/NetworkManager}" --debug 2>&1 | tee /tmp/nm-log.txt +} + +. /usr/share/git-core/contrib/completion/git-prompt.sh +PS1="\[\033[01;36m\]\u@\h\[\033[00m\]:\t:\[\033[01;34m\]\w\$(__git_ps1 \" \[\033[01;36m\](%s)\[\033[00m\]\")\[\033[00m\]$ " +export GIT_PS1_SHOWDIRTYSTATE=1 diff --git a/tools/nm-guest-data/etc-motd-container.in b/tools/nm-guest-data/etc-motd-container.in new file mode 100644 index 00000000..131f815c --- /dev/null +++ b/tools/nm-guest-data/etc-motd-container.in @@ -0,0 +1,75 @@ +*** nm-in-container: + +find NetworkManager bind mounted at {{BASEDIR_NM}} +run `nm-env-prepare.sh setup --idx 1` to setup test interfaces + +Coredumps: coredumps are not namespaced, so by default they will +be sent to coredumpctl of the outer host, which has no idea where +to get the debugging symbols from. A possible workaround is setting + + $ echo '/tmp/core.%e.%p' | sudo tee /proc/sys/kernel/core_pattern + +so that core dumps get written to file. Afterwards, restore with + + $ echo '|/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h' | sudo tee /proc/sys/kernel/core_pattern + +from /usr/lib/sysctl.d/50-coredump.conf. + +For example, configure NetworkManager with + $ ./configure \ + --enable-address-sanitizer=no \ + --enable-compile-warnings=yes \ + --enable-concheck \ + --enable-config-plugin-ibft=yes \ + --enable-gtk-doc \ + --enable-ifcfg-rh=yes \ + --enable-ifcfg-suse \ + --enable-ifnet \ + --enable-ifupdown=yes \ + --enable-introspection \ + --enable-json-validation=yes \ + --enable-maintainer-mode \ + --enable-more-logging \ + --enable-more-warnings=error \ + --enable-ovs=yes \ + --enable-polkit=yes \ + --enable-teamdctl=yes \ + --enable-undefined-sanitizer=no \ + --enable-vala=yes \ + --enable-wimax \ + --localstatedir=/var \ + --prefix=/opt/test \ + --sysconfdir=/etc \ + --with-config-dhcp-default=internal \ + --with-config-dns-rc-manager-default=auto \ + --with-consolekit=yes \ + --with-consolekit=yes \ + --with-crypto=nss \ + --with-dhclient=yes \ + --with-dhcpcanon=yes \ + --with-dhcpcd=yes \ + --with-iwd=yes \ + --with-libnm-glib=yes \ + --with-modem-manager-1 \ + --with-netconfig=/bin/nowhere/netconfig \ + --with-nm-cloud-setup=yes \ + --with-nmcli=yes \ + --with-nmtui=yes \ + --with-ofono=yes \ + --with-resolvconf=/bin/nowhere/resolvconf \ + --with-session-tracking=systemd \ + --with-suspend-resume=systemd \ + --with-systemd-logind=yes \ + --with-valgrind=yes \ + --enable-tests="${NM_BUILD_TESTS:-yes}" \ + --with-more-asserts="${NM_BUILD_MORE_ASSERTS:-1000}" \ + "${NM_CONFIGURE_OTPS[@]}" +Test with: + $ systemctl stop NetworkManager; /opt/test/sbin/NetworkManager --debug 2>&1 | tee -a /tmp/nm-log.txt + +Or better, configure with `contrib/fedora/rpm/configure-for-system.sh`, +subsequent `make && make install` will overwrite your system's NetworkManager, +and you can test it with `systemctl daemon-reload ; systemctl restart NetworkManager`. + +Run NM-ci tests after creating eth1 with +`nm-env-prepare.sh --prefix eth -i 1 && sleep 1 && nmcli device connect eth1`. diff --git a/tools/nm-guest-data/etc-motd-vm.in b/tools/nm-guest-data/etc-motd-vm.in new file mode 100644 index 00000000..10ae1f9f --- /dev/null +++ b/tools/nm-guest-data/etc-motd-vm.in @@ -0,0 +1,63 @@ +*** nm-in-vm: + +find NetworkManager bind mounted at {{BASEDIR_NM}} +run `nm-env-prepare.sh setup --idx 1` to setup test interfaces + +For example, configure NetworkManager with + $ ./configure \ + --enable-address-sanitizer=no \ + --enable-compile-warnings=yes \ + --enable-concheck \ + --enable-config-plugin-ibft=yes \ + --enable-gtk-doc \ + --enable-ifcfg-rh=yes \ + --enable-ifcfg-suse \ + --enable-ifnet \ + --enable-ifupdown=yes \ + --enable-introspection \ + --enable-json-validation=yes \ + --enable-maintainer-mode \ + --enable-more-logging \ + --enable-more-warnings=error \ + --enable-ovs=yes \ + --enable-polkit=yes \ + --enable-teamdctl=yes \ + --enable-undefined-sanitizer=no \ + --enable-vala=yes \ + --enable-wimax \ + --localstatedir=/var \ + --prefix=/opt/test \ + --sysconfdir=/etc \ + --with-config-dhcp-default=internal \ + --with-config-dns-rc-manager-default=auto \ + --with-consolekit=yes \ + --with-consolekit=yes \ + --with-crypto=nss \ + --with-dhclient=yes \ + --with-dhcpcanon=yes \ + --with-dhcpcd=yes \ + --with-iwd=yes \ + --with-libnm-glib=yes \ + --with-modem-manager-1 \ + --with-netconfig=/bin/nowhere/netconfig \ + --with-nm-cloud-setup=yes \ + --with-nmcli=yes \ + --with-nmtui=yes \ + --with-ofono=yes \ + --with-resolvconf=/bin/nowhere/resolvconf \ + --with-session-tracking=systemd \ + --with-suspend-resume=systemd \ + --with-systemd-logind=yes \ + --with-valgrind=yes \ + --enable-tests="${NM_BUILD_TESTS:-yes}" \ + --with-more-asserts="${NM_BUILD_MORE_ASSERTS:-1000}" \ + "${NM_CONFIGURE_OTPS[@]}" +Test with: + $ systemctl stop NetworkManager; /opt/test/sbin/NetworkManager --debug 2>&1 | tee -a /tmp/nm-log.txt + +Or better, if using Fedora, configure with `contrib/fedora/rpm/configure-for-system.sh`, +subsequent `make && make install` will overwrite your system's NetworkManager, +and you can test it with `systemctl daemon-reload ; systemctl restart NetworkManager`. + +Run NM-ci tests after creating eth1 with +`nm-env-prepare.sh --prefix eth -i 1 && sleep 1 && nmcli device connect eth1`. diff --git a/tools/nm-guest-data/etc-rc.local.in b/tools/nm-guest-data/etc-rc.local.in new file mode 100644 index 00000000..d59a8d76 --- /dev/null +++ b/tools/nm-guest-data/etc-rc.local.in @@ -0,0 +1,8 @@ +#!/bin/bash -e + +/usr/bin/_nm-in-container-setup.sh + +cat <<EOF > /etc/resolv.conf +# Generated by /etc/rc.d/rc.local +nameserver 8.8.8.8 +EOF diff --git a/tools/nm-guest-data/home-bash_history.in b/tools/nm-guest-data/home-bash_history.in new file mode 100644 index 00000000..d97c561e --- /dev/null +++ b/tools/nm-guest-data/home-bash_history.in @@ -0,0 +1,31 @@ +NM-log +NM-log /tmp/nm-log.txt +behave -f html --stop -t ipv4_method_static_with_IP ./features/scenarios/ipv4.feature +behave -f html --stop ./features/scenarios/vrf.feature +cd {{BASEDIR_NM}} +cd /NetworkManager-ci +cd /NetworkManager +for i in {1..9}; do nm-env-prepare.sh --prefix eth -i $i; done +Journald-clear +journalctl | NM-log +journalctl --since '3 min ago' | NM-log +m +make +make install +n +nm-deploy.sh +nm-env-prepare.sh +nm-env-prepare.sh --prefix eth -i 1 +nm-env-prepare.sh --prefix eth -i 1 && sleep 1 && nmcli device connect eth1 +nm_run_gdb +nm_run_normal +gdb /usr/sbin/NetworkManager /tmp/core.NetworkManager. +nmcli connection add type pppoe con-name ppp-net1 ifname ppp-net1 pppoe.parent net1 service isp username test password networkmanager autoconnect no +nmcli device connect eth1 +systemctl stop NetworkManager; /opt/test/sbin/NetworkManager --debug 2>&1 | tee -a ./nm-log.txt +systemctl stop NetworkManager; gdb -ex run --args /opt/test/sbin/NetworkManager --debug +systemctl stop NetworkManager +systemctl daemon-reload ; systemctl restart NetworkManager +(cd /NetworkManager && n && n install && systemctl daemon-reload && systemctl restart NetworkManager.service) +(cd /NetworkManager && m && m install && systemctl daemon-reload && systemctl restart NetworkManager.service) +systemctl status NetworkManager diff --git a/tools/nm-guest-data/home-behaverc.in b/tools/nm-guest-data/home-behaverc.in new file mode 100644 index 00000000..ebb49fa7 --- /dev/null +++ b/tools/nm-guest-data/home-behaverc.in @@ -0,0 +1,2 @@ +[behave.formatters] +html = behave_html_formatter:HTMLFormatter diff --git a/tools/nm-guest-data/home-gdb_history.in b/tools/nm-guest-data/home-gdb_history.in new file mode 100644 index 00000000..39fb9abf --- /dev/null +++ b/tools/nm-guest-data/home-gdb_history.in @@ -0,0 +1,2 @@ +run +run --debug 2>&1 | tee /tmp/nm-log.txt diff --git a/tools/nm-guest-data/home-gdbinit.in b/tools/nm-guest-data/home-gdbinit.in new file mode 100644 index 00000000..f55a669a --- /dev/null +++ b/tools/nm-guest-data/home-gdbinit.in @@ -0,0 +1,2 @@ +set history save +set history filename ~/.gdb_history diff --git a/tools/nm-guest-data/nm-90-my.conf.in b/tools/nm-guest-data/nm-90-my.conf.in new file mode 100644 index 00000000..72aeb110 --- /dev/null +++ b/tools/nm-guest-data/nm-90-my.conf.in @@ -0,0 +1,19 @@ +[main] +no-auto-default=* +debug=RLIMIT_CORE,fatal-warnings + +[logging] +level=TRACE +domains=ALL,VPN_PLUGIN:TRACE + +[device-managed-0] +match-device=interface-name:d_*,interface-name:tap* +managed=0 + +[device-managed-1] +match-device=interface-name:net*,interface-name:eth* +managed=1 + +[device-host-net] +match-device=interface-name:host_net +managed=0 diff --git a/tools/nm-guest-data/nm-95-user.conf.in b/tools/nm-guest-data/nm-95-user.conf.in new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/tools/nm-guest-data/nm-95-user.conf.in diff --git a/tools/nm-guest-data/systemd-10-host-net.link.in b/tools/nm-guest-data/systemd-10-host-net.link.in new file mode 100644 index 00000000..6425d926 --- /dev/null +++ b/tools/nm-guest-data/systemd-10-host-net.link.in @@ -0,0 +1,6 @@ +[Match] +Driver=virtio_net + +[Link] +NamePolicy= +Name=host_net diff --git a/tools/nm-guest-data/systemd-20-nm.override.in b/tools/nm-guest-data/systemd-20-nm.override.in new file mode 100644 index 00000000..d8f251e4 --- /dev/null +++ b/tools/nm-guest-data/systemd-20-nm.override.in @@ -0,0 +1,5 @@ +# Overrides for NetworkManager.service with nm-in-container +# Placed in /etc/systemd/system/NetworkManager.service.d/ +[Service] +Environment=G_DEBUG=fatal-warnings +Environment=NM_OBFUSCATE_PTR=0 diff --git a/tools/nm-guest-data/systemd-dhcp-host.service.in b/tools/nm-guest-data/systemd-dhcp-host.service.in new file mode 100644 index 00000000..844e766c --- /dev/null +++ b/tools/nm-guest-data/systemd-dhcp-host.service.in @@ -0,0 +1,14 @@ +[Unit] +Description=dhclient service to get connectivity with the host +After=network.target + +[Service] +Type=simple +Restart=on-failure +User=root +RestartSec=5 +ExecStart=dhclient -d host_net +ExecStop=dhclient -r host_net + +[Install] +WantedBy=multi-user.target |