I’m no expert on IPv6 but here’s how I did it on my OPNsense box:
- Activate IPv6 on your
WAN
interface (probably already done) - Activate IPv6 on the
LAN
interface, useTrack interface
on IPv6, track theWAN
interface and choose a prefix ID like0x1
- Activate DHCPv6 under Services -> ISC DHCPv6 for your LAN interface (you can shorten the range like
::eeee
to::ffff
, you don’t have to type the full IP) - Activate Router advertisments under Services -> Router Advertisments for your LAN interface (set
Advertisments
toManaged
andPriority
toHigh
After that your DHCP server should serve public IPv6 addresses inside of your prefix and clients should be able to connect to the internet.
A few notes:
- Don’t forget to add an allow rule for IPv6 on your LAN as well if you only have one for IPv4
- Repeat the steps above for every VLAN you have, always use a different prefix ID
- You don’t have to use NAT rules with IPv6 anymore and can just directly add a regular firewall rule to WAN with the target IP and port and you are done
- Make sure you don’t have any of the various “Disable IPv6” toggles enabled, there’s a few in the firewall settings and general settings for example
I have multiple VLANs, 0x1 is my LAN and 0x10 is my DMZ for example. I then get IP addresses abcd:abcd:a01::abcd in my LAN and abcd:abcd:a10::bcdf in my DMZ.
However, I get a /56 from my ISP wich gets subnetted into /64. I heard it’s not ideal to subnet a /64 but you might want to double check what you really got.
Only IPv4 + IPv6 ICMP, the normal NAT rules for IPv4 and the same rules for IPv6 but as regular rule instead of NAT rule.
If you enable DHCPv6 in your network your firewall should be the one to hand out IP addresses, your ISP assigns your OPNsense the prefix and your OPNsense then subnets them into smaller chunks for your internal networks.
It is possible to do it without DHCPv6 but I didn’t read into it yet since DHCPv6 does exactly what I want it to do.