I needed to connect my home network to another non-critical IPv6 network, so wanted all the desired devices to be on the (single) public IPv6 network. I’ve got Time Warner Cable (TWC) at and my setup is as follows:
First thing I noticed was that my router didn’t have an IPv6 address, so I called TWC to see if I need to activate it or so (their online account didn’t make this clear).
Customer support was clueless
The TWC rep didn’t have a CLUE about IPv6. I was told many different thing like “your Mac has an 192.168.x.y address, so everything is good“. Anyway, I went to bed and next day directly plugged in my Mac into the Modem’s ethernet (via a USB Ethernet dongle). I was surprised that the Mac got an IPv6 address – so either the call fixed it or I had to plug in my Mac to ‘trigger’ it or something. Anyway, it was on, so next step was configuration.
Router configuration
My router is an ASUS RT-AC68U, firmware 3.0.0.4.380_1842 and my modem was a Netgear CM500-100NAS. The modem is transparent to this whole setup, the router settings are shown below
Basically
- Connection Type = Native
- DHCP-PD = Enable
- Auto-configuration setting = Stateless
- Connect to DNS server automatically = Disable
- IPv6 DNS server 1 = 2001:4860:4860::8888
- IPv6 DNS server 2 = 2001:4860:4860::8844
- IPv6 DNS server 3 = 2620:0:ccc::2
Explanation
The settings are above and that’s all you really need to “do”. If you’re interested, I’ll explain some of the settings explained here. Check Wikipedia for details.
- Connection type: Native: This is obvious – your ISP should support IPv6 natively. Otherwise you need to tunnel etc. (not covered here)
- DHCP-PD: Enabled: IPv6 is very large so it’s management is hierarchical. Your ISP’s router typically assign a smaller IPv6 sub-network that your router then manages internally. That Prefix Delegation is a way to identify “your IPv6 subnet” to everyone
- Auto-configuration: Stateless This means each client will deterministically pick it’s own unique IPv6 address instead of using a DHCP server. This might surprise folks familiar with IPv4 with DHCP is always there but in IPv6 it’s possible to globally pick an IPv6 address that’s guaranteed to be unique since it’s based on the sub-net prefix and the interface’s MAC address (Wikipedia details)
- Connect to DNS server automatically: Disable If enabled, clients and the router will look inside IPv6 messages for hints for the IPv6 address of a DNS server. I noticed that IPv6 DNS wasn’t working, so manually plugged in Google’s IPv6 IP (first two) and filled out the 3rd one with OpenDNS’s IPv6 DNS.
Note: Having an IPv6 address for a DNS server is not critical since your regular IPv4 DHCP setup up should plug in a DNS server. Even if that DNS server is itself connected via IPv4, it can respond to both IPv6 as well as IPv4 queries. How? Because the DNS protocol/application itself run at the application layer – above the underlying IPv4/IPv6 connectivity.
Result
Anyway, once it’s setup, it looks good. The router’s system log – IPv6 Network Information shows the following (I’ve replaced identifiable data with 7’s below)
IPv6 Connection Type: Native with DHCP-PD WAN IPv6 Address: 2606:6000:cf77:7777:7777:7777:7777:7777 WAN IPv6 Gateway: fe80::201:5c77:7777:7777 LAN IPv6 Address: 2605:e000:1c77:7777::1/64 LAN IPv6 Link-Local Address: fe80::ae9e:7777:7777:7777/64 DHCP-PD: Enabled LAN IPv6 Prefix: 2605:e000:1c77:7777::/64 DNS Address: 2001:4860:4860::8888 2001:4860:4860::8844 2620:0:ccc::2 IPv6 LAN Devices List ------------------------------------------------------------------- Hostname MAC Address IPv6 Address <my mac> 77:77:77:77:77:77 2605:e000:1c77:7777:7777:7777:7777:7777
You can even test it by running a web server on your desktop/laptop and hitting it with your phone e.g.
http://[2605:e000:1c77:7777:7777:7777:7777:7777]/
Yes, per the spec you need the [ and ] enclosing the IPv6 address. Safari doesn’t understand this but Chrome seems to work just fine.
Happy IPv6 networking!