Files

45 lines
1.5 KiB
Bash

grep -q '^192\.0\.2\.99[[:space:]].*www\.kernel\.org' /etc/hosts && refuse "/etc/hosts already has a 192.0.2.99 line for www.kernel.org; remove it and start again"
peer_up
mkdir -p /etc/netns/lepeer
cat >/etc/netns/lepeer/network <<'Y'
# The peer's network settings, applied inside the peer at every boot with
# "ip -batch" (each line is an ip command without the leading "ip").
address replace 10.99.0.2/24 dev le-peer
route del default
Y
mkdir -p /usr/local/lib/le-lab
cat >/usr/local/lib/le-lab/peer-net.sh <<'Y'
#!/bin/sh
# The far side, 198.51.100.9, on this VM; then the peer's own settings.
ip link show le-far >/dev/null 2>&1 || ip link add le-far type dummy
ip addr replace 198.51.100.9/32 dev le-far
ip link set le-far up
ip -n lepeer -force -batch /etc/netns/lepeer/network
true
Y
chmod 755 /usr/local/lib/le-lab/peer-net.sh
if [ -d /etc/NetworkManager/conf.d ]; then
printf '[keyfile]\nunmanaged-devices=interface-name:le-host;interface-name:le-far\n' \
>/etc/NetworkManager/conf.d/91-le-lab-far.conf
systemctl reload NetworkManager 2>/dev/null || true
fi
cat >/etc/systemd/system/le-lab-peer-net.service <<'Y'
[Unit]
Description=Practice lab: the peer's network settings
Requires=le-lab-peer.service
After=le-lab-peer.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/lib/le-lab/peer-net.sh
[Install]
WantedBy=multi-user.target
Y
systemctl daemon-reload
systemctl enable --now --quiet le-lab-peer-net.service
# Task 3: a wrong address for www.kernel.org.
hosts_add "192.0.2.99 www.kernel.org"
true