sudo ip netns add firefoxns
sudo ip netns exec firefoxns ip link add br0-lan type bridge
sudo ip netns exec firefoxns ip tuntap add tap0 mode tap
sudo ip netns exec firefoxns ip tuntap add tap1 mode tap
sudo ip netns exec firefoxns ip tuntap add tap2 mode tap
sudo ip netns exec firefoxns ip link set dev tap0 master br0-lan
sudo ip netns exec firefoxns ip link set dev tap1 master br0-lan
sudo ip netns exec firefoxns ip link set dev tap2 master br0-lan
sudo ip netns exec firefoxns ip link set br0-lan up
sudo ip netns exec firefoxns ip link set tap0 up
sudo ip netns exec firefoxns ip link set tap1 up
sudo ip netns exec firefoxns ip link set tap2 up
sudo ip link add veth0 type veth peer name veth0-peer
sudo ip link set veth0-peer netns firefoxns
sudo ip addr add 10.200.1.1/24 dev veth0
sudo ip netns exec firefoxns ip addr add 10.200.1.2/24 dev veth0-peer
sudo ip link set veth0 up
sudo ip netns exec firefoxns ip link set veth0 up
sudo ip netns exec firefoxns ip route add default via 10.200.1.1
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -s 10.200.1.0/24 -o wlan0 -j MASQUERADE
sudo ip netns exec ping 1.1.1.1
sudo ip netns exec firefoxns qemu-system-x86_64 \
-enable-kvm \
-m 256 \
-smp 4 \
-cpu host \
-drive file=chr.qcow2,format=qcow2 \
-boot d \
-nographic \
-netdev tap,id=net0,ifname=tap0,script=no,downscript=no \
-device virtio-net-pci,netdev=net0,mac=02:aa:bb:cc:dd:ee \
-net user,hostfwd=tcp::8291-:8291 \
-net nic
sudo ip netns exec firefoxns qemu-system-x86_64 \
-enable-kvm \
-m 256 \
-smp 4 \
-cpu host \
-drive file=pc-2.qcow2,format=qcow2 \
-cdrom alpine-virt-3.21.3-x86_64.iso \
-boot d \
-nographic \
-netdev tap,id=net0,ifname=tap2,script=no,downscript=no \
-device virtio-net-pci,netdev=net0,mac=$(randommac)