Solution: VLAN Trunking We can run all virtual LANs into our Linux machine via a VLAN "trunk". We then put an IPv6 address on each network, and enable IPv6 routing. We will also need tools to allow creation of VLAN interfaces on the fly. $ apt-get install vlan $ modprobe 8021q We then use "vconfig" to create VLAN interfaces as required. $ vconfig add eth0 2 Added VLAN with VID == 2 to IF -:eth0:- So now, we have the following output from ifconfig: $ ifconfig eth0.2 eth0.2 Link encap:Ethernet HWaddr 00:00:F8:07:8E:A2 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:800 (800.0 b) TX bytes:0 (0.0 b)