GNU Hurd wiki/ hurd/ translator/ pfinet/ ipv6

Stefan Siegl has added IPv6 support to the pfinet translator. This was Savannah task #5470.

Implementation

Because the IPv4 and IPv6 protocols are quite related to each other (think of mapped IPv4 addresses, etc.), there is no separate server for IPv6 but support for the latter has been incorporated into the common pfinet. Unfortunately it's a little bit clumsy now to set the translator up, since it has to be bound to /servers/socket/2 (like before) as well as /servers/socket/26 (for IPv6).

To achieve this, you can tell pfinet to install ?active translators on specified nodes, using -4 and -6 options. This is, you have to install a ?passive translator on /servers/socket/2 that also binds the IPv6 port and vice versa.

Examples

Normal IPv4 network setup, address 192.168.7.23/24 and gateway 192.168.7.1. IPv6 address shall be assigned using IPv6 auto-configuration.

settrans -fgp /servers/socket/2 ↩
  /hurd/pfinet -6 /servers/socket/26 ↩
  -i eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1
settrans -fgp /servers/socket/26 ↩
  /hurd/pfinet -4 /servers/socket/2 ↩
  -i eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1

Quite the same, but with static IPv6 address assignment:

settrans -fgp /servers/socket/2 ↩
  /hurd/pfinet -6 /servers/socket/26 ↩
  -i eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 ↩
  -A 2001:4b88:10e4:0:216:3eff:feff:4223/64 -G 2001:4b88:10e4::1
settrans -fgp /servers/socket/26 ↩
  /hurd/pfinet -4 /servers/socket/2 ↩
  -i eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 ↩
  -A 2001:4b88:10e4:0:216:3eff:feff:4223/64 -G 2001:4b88:10e4::1

Binaries

For your convenience -- this work is not yet available in the Debian packages -- binaries of a patched (multicast reception) GNU Mach kernel (including default driver set and debugging support) and a stripped pfinet translator (named pfinet6 here) are being provided at http://brokenpipe.de/GnuHurd/pfinet6/