AT&T Fiber and the NVG599

When AT&T Fiber was installed at my house, I was given a NVG599 residential gateway. As a simple router/wifi access point, this seems to be a good device. However, the user interface, and advanced settings seem to leave a lot to be desired. I had to do some searching to come up with how to combine both the NVG599 and my EdgeRouter Lite’s setup. I ended up putting the NVG599 in IP Passthrough, which is good enough for my uses. This worked well for IPv4, but I was having issues setting up IPv6.

The issue seemed to be that in order for the EdgeRouter Lite to divvy out IPv6 addresses I needed a subnet prefix larger than /64. This was a problem because the best I could get from the NVG599 was, as you probably guessed it, a /64 subnet.

After a long Google search, if found a few blog posts (http://models.street-artists.org/2016/12/06/getting-multiple-64-prefixes-from-att-nvg599/ and http://models.street-artists.org/2016/12/01/getting-a-60-with-att-6rd-tunnels/) which helped me come to the following solution.

Please let me know if I got anything incorrect here, I know this works, but I’m not 100% sure I’m doing it correctly.

IPv6 - Prefix Delegation

AT&T uses 6RD to propagate IPv6 throughout their network. It appears that they give a /28 subnet prefix to the residental gateway, combined with the routers IPv4 address in some way, to come up with a /60 prefix. This gives us 16 /60 IPv6 subnet prefixes to use. Shown below is the IPv6 configuration shown by the NVG599.

IPv6 Configuration

With prefix delegation it is possible to request multiple /64 length prefixes from AT&T’s NVG599 residential gateway. As AT&T gives each residential gateway a /60 prefix to work with, that means we can request up to 16 /64 prefixes. It appears that AT&T reserves one prefix for the gateway itself, leaving us with 15. That should be plenty :-)

In my local network I have requested a prefix for each VLAN. Here is the WAN interface configuration on my EdgeRouter Lite. pd 0 and pd 1 describe the prefix delegation requests along with which interface (or VLAN) to assign the returned subnet prefix.

ethernet eth0 {
    address dhcp
    description WAN
    dhcpv6-pd {
        pd 0 {
            /* MGMT */
            interface eth1 {
                host-address ::1
                service dhcpv6-stateless
            }
            prefix-length /64
        }
        pd 1 {
            /* LAN */
            interface eth1.10 {
                host-address ::1
                service dhcpv6-stateless
            }
            prefix-length /64
        }
        rapid-commit enable
    }
    ...
}

Looking back at the NVG599, you can see the subnets which were requested by my router.

IPv6 Subnets