1. Install the “wide-dhcpv6” package from OpenBSD ftp/http servers for your architecture.

  2. cp /usr/local/share/examples/wide-dhcpv6/dhcp6c.conf.sample /etc/dhcp6c.conf

  3. Edit the config to reflect:

    interface re0 {
      send ia-pd 0;
      send ia-na 0;
      send rapid-commit;
      request domain-name-servers;
      request domain-name;
      };
      id-assoc na 0 {
      };
      id-assoc pd 0 {
      prefix-interface re1 {
      sla-len 0;
      };
      };
    

This will get a /128 uplink IP on the external interface which is re0, and assign /64 net to the internal network interface with is re1.

  1. Just for now. Execute: “rtsold -F ” Test pinging out to ipv6 enabled sites. IE: “ping6 www.google.com”

      bash-4.2# ping6 www.google.com
      PING6(56=40+8+8 bytes) 2001:558:6040:77:4cd9:598:f156:ce7b –> 2607:f8b0:400f:801::1014
      16 bytes from 2607:f8b0:400f:801::1014, icmp_seq=0 hlim=56 time=13.027 ms
      16 bytes from 2607:f8b0:400f:801::1014, icmp_seq=1 hlim=56 time=13.334 ms
      16 bytes from 2607:f8b0:400f:801::1014, icmp_seq=2 hlim=56 time=13.130 ms
    
  2. Execute “route show” and find your “default” route for IPV6. Add this into /etc/mygate. (We manually configure the ipv6 default gateway in order to avoid using RTSOL in the future.)

  3. Kill the rtsold -F process you ran earlier. “ps aux |grep rtsold” , “kill -9 ” (You should never need to do this again on the router machine unless your default route changes)

  4. Add the following line to your /etc/rc.local config:
    /usr/local/sbin/dhcp6c -c /etc/dhcp6c.conf

  5. Edit /etc/sysctl.conf to reflect the following options:
    net.inet6.icmp6.rediraccept=1
    net.inet6.ip6.accept_rtadv=1
    net.inet6.ip6.forwarding=1

  6. From the command line as root enable those options without a reboot:
    sysctl net.inet6.icmp6.rediraccept=1
    sysctl net.inet6.ip6.accept_rtadv=1
    sysctl net.inet6.ip6.forwarding=1

  7. Launch dhcp6c.
    /usr/local/sbin/dhcp6c -c /etc/dhcp6c.conf

  8. Check if an IPv6 address was pulled from Comcast:
    ifconfig |grep inet6

  9. I setup “rtadvd” via rc.conf, as well as route6d. Setup your rc.conf to reflect the following:

    rtadvd_flags=”re1″ # for normal use: list of interfaces
    # be sure to set net.inet6.ip6.forwarding=1
    route6d_flags=”” # for normal use: “”
    # be sure to set net.inet6.ip6.forwarding=1
    
  10. Client Auto configuration should work just fine now. I tested with a Windows 8.1 machine, as well as an OpenBSD 5.3 laptop. Client connectivity functioned flawlessly with rtadvd running on re1 interface.

Apache:
1. Add your IPv6 address to apache /var/www/conf/httpd.conf:
Listen [2607:f2f8:a768::2]:80
2. Add: “httpd_flags=”-U” to /etc/rc.conf.local
2. Restart apache. /etc/rc.d/httpd restart.
You can specify particular virtual hosts, just like IPv4. Just use the above [address]:port format.

SSH:
SSH should bind automatically to your configured IPv6 address unless you have altered the default configuration.
Please feel free to leave comments if you have any questions. Cheers and happy ipv6ing.