The cloud provider uses DHCPv6 in conjunction with DUID
(DHCP Unique IDentifier) to delegate ipv6 prefixes to their servers.

As of OpenBSD 6.7, this method is not supported by the base system.

To setup ipv6 on your OpenBSD box, you first need to install the dhcp6c(8)
utility, available in package "wide-dhcpv6".

	pkg_add wide-dhcpv6

The configuration is basic, as you only need to configure your client for
"Identity Association for Prefix Delegation", or IA_PD.

	# /etc/dhcp6c.conf
	interface em0 {
	        send ia-pd 0;
	        send rapid-commit;
	id-assoc pd 0 {

The tricky part is to configure dhcp6c to send the correct DUID to the
DHCPv6 server. These DUID are usually provided in hexadecimal dotted
notation, which dhcp6c(8) expects a binary file.

Hopefully I got you covered! Checkout duidgen.c here:

	# get rid of ':' in-between bytes
	echo 00:03:00:06:08:00:27:0c:5f:2b | tr -d :

	# source: gopher://
	./duidgen 000300060800270c5f2b > /var/db/dhcp6c_duid

Make sure to configure your ipv6 address and prefix in hostname.if(5).

	# /etc/hostname.em0
	inet6 2001:db8::8:bad:f00d/56
	inet6 autoconf

You can then bring up your interface, and start dhcp6c(8)

	sh /etc/netstart em0
	/usr/local/sbin/dhcp6c -c /etc/dhcp6c.conf em0

I recommend adding the dhcp6c(8) line to your /etc/rc.local, so it's
started on boot (there is no associated rc script).

It's worth noting that this method (at least at does not
require setting up the inet6 gateway. It is setup by "inet6 autoconf".