Why this matters
Most PFS supports IPv6 now. Our UML setup should expose a usable IPv6 address by default so IPv6 NIC discovery/testing is consistent and doesn’t depend on manual setup.
Current manual steps (works, but easy to forget)
We use the private ULA range fd00::/64 to give both sides a global-scope IPv6 address.
Host (tap0)
sudo ip -6 addr add fd00::1/64 dev tap0
sudo ip link set tap0 up
UML guest (vec0)
ip -6 addr add fd00::2/64 dev vec0
ip link set vec0 up
Verify in UML:
Expected:
inet6 fd00::2/64 scope global
Connectivity check
From UML:
From host:
PFS verify
Inside UML:
umount /mnt/pfs
mount /mnt/pfs
dmesg | grep -i push_nic_address
Expected to see something like:
push_nic_address(..., fd00::2)
Guest: init.sh
Add IPv6 ULA config (and keep it safe to run multiple times):
#!/bin/sh
mount -t proc proc /proc
mount -t sysfs sys /sys
ip addr add 192.168.0.253/24 dev vec0
ip -6 addr add fd00::2/64 dev vec0
ip link set vec0 up
# Optional: only if we want full IPv6 routing tests (not needed for PFS detection)
# ip -6 route add default via fd00::1 dev vec0
uname -a
echo "\nWelcome to KDEV-UML (with IPv6 support)\n"
setsid sh -c 'exec /bin/bash </dev/tty0 >/dev/tty0 2>&1'
Host: init-host.sh
Run manually today, but should be hooked into the UML/start scripts:
#!/bin/bash
set -e
ip addr add 192.168.0.1/24 dev tap0 || true
ip -6 addr add fd00::1/64 dev tap0 || true
ip link set tap0 up
echo "Host networking configured: tap0 with IPv4 + IPv6 (ULA)"
Why this matters
Most PFS supports IPv6 now. Our UML setup should expose a usable IPv6 address by default so IPv6 NIC discovery/testing is consistent and doesn’t depend on manual setup.
Current manual steps (works, but easy to forget)
We use the private ULA range
fd00::/64to give both sides a global-scope IPv6 address.Host (tap0)
UML guest (vec0)
Verify in UML:
Expected:
Connectivity check
From UML:
From host:
PFS verify
Inside UML:
Expected to see something like:
Guest: init.sh
Add IPv6 ULA config (and keep it safe to run multiple times):
Host: init-host.sh
Run manually today, but should be hooked into the UML/start scripts: