Routing IPv6 between an internal network and the Internet

This is still a work in progress, since I have only recently acquired a router which runs a new enough version of Linux to support this, and have not yet put it in place of the old one (which would acquire an IPv6 address of its own, but could not support radvd to route network ranges on to my internal networks.

If you have a 21st century connectivity provider (such as NetCologne in Germany) and are not stuck with an antiquated IPv4-only provider (such as Virgin Media in the UK), you will get not only an IPv6 address for your Internet-facing modem/router, but also an IPv6 subnet for your internal machines (remember: nobody does NAT on IPv6, so every machine gets a public IP address), which is very likely larger than the entire IPv4 Internet.

In my case, NetCologne gives me a single IPv6 address on the external interface of the supplied modem/router, plus a /48 subnet for use on my internal network/s. Given that IPv6 addresses are 128 bits long, a /48 means that I have 1.2 x 1024 addresses to use for myself. The compares with 4.3 x 109 addresses on the entire IPv4 Internet.

However, given that IPv6 does not use NAT (and generally does not use DHCP, although it's possible), your own router (the one you configure between your internal networks and the ISP-supplied modem/router pointing to the Internet) needs to be able to pass these addresses through to machines on your internal networks which want an IPv6 address.

The main thing which makes this possible is installing radvd (nothing to do with DVDs) on your router.


Go up
Return to main index.