Thank you to mikehanley from the Comcast Business Support Community Forums for the dhcpv6-pd commands.

Setting up IPv6 on a Comcast Business account is not straightforward if you are not using Comcast’s combined modem-router.

If you are using a UniFi Security Gateway ( SKU: USG), the following steps are necessary to get IPv6 working:

Assumptions:

  • Comcast is providing you a /56 subnet for your IPv6 allocation
  • You are using the UniFi web interface to manage your USG through a Cloud Key or Controller installation
  • eth0 is your WAN interface

The interactive command-line route

  1. In Settings > Networks > WAN, set the WAN interface to DHCPv6 with Prefix Delegation Size to 59 ( why 59 instead of 56)
  2. Save the new WAN network settings and wait for the USG to provision.
  3. In Settings > Networks > LAN, set the LAN IPv6 settings to:
    1. IPv6 Interface Type: Prefix Delegation
    2. IPv6 Prefix Delegation Interface: WAN
    3. IPv6 Prefix ID: 0
    4. IPv6 RA: Enable IPv6 Router Advertisement
    5. The rest of the settings can stay default. Set manual DNS servers if you like (e.g. Google DNS)
  4. Save the LAN network settings and wait for the USG to provision.
  5. SSH into the USG and run the following commands:
    1. set interfaces ethernet eth0 dhcpv6-pd prefix-only
    2. set interfaces ethernet eth0 dhcpv6-pd rapid-commit disable
  6. Unplug the network cable from the WAN interface, wait a few seconds, and plug the network back into the USG WAN interface.

Now the USG should be provisioning/handing out IPv6 addresses to devices on the LAN network.

The config.gateway.json route

Add the following to your config.gateway.json file under the eth0 entry/level:

"dhcpv6-pd": {
  "no-dns": "''",
  "pd": {
    "0": {
      "prefix-length": "59"
    }
  },
  "prefix-only": "''",
  "rapid-commit": "disable"
}

So, for example, the eth0 section of your config.gateway.json file might look like the following (maybe more, depending on what you have already configured):

"eth0": {
  "description": "WAN",
  "dhcpv6-pd": {
    "no-dns": "''",
    "pd": {
      "0": {
        "prefix-length": "59"
      }
    },
    "prefix-only": "''",
    "rapid-commit": "disable"
  }
}

For the config.gateway.json approach, remember to force provision the USG from the UniFi controller interface after saving the config.gateway.json file (Devices > USG > Config > Manage Device > Force provision > "Provision" button).

Static Addressing (unconfirmed)

Addition (unconfirmed): It may be possible to configure the Comcast modem/router device to run in “bridged mode” and set a static IPv6 address on the USG and its child networks. (see: Comcast Business Support Community Forum post by sparky04cr)