diff --git a/src/etc/inc/services.inc b/src/etc/inc/services.inc
index c6ec72023..e5e98f83c 100644
--- a/src/etc/inc/services.inc
+++ b/src/etc/inc/services.inc
@@ -1385,6 +1385,14 @@ host s_{$dhcpv6if}_{$i} {
host-identifier option dhcp6.client-id {$sm['duid']};
EOD;
+ if (!empty($sm['ipaddrv6'])) {
+ if (isset($config['interfaces'][$dhcpv6if]['dhcpd6track6allowoverride']) && is_ipaddrv6($ifcfgipv6)) {
+ $sm['ipaddrv6'] = make_ipv6_64_address($ifcfgipv6, $sm['ipaddrv6']);
+ } else {
+ unset($sm['ipaddrv6']);
+ }
+ }
+
if (!empty($sm['ipaddrv6'])) {
$dhcpdv6conf .= " fixed-address6 {$sm['ipaddrv6']};\n";
}
diff --git a/src/www/services_dhcpv6_edit.php b/src/www/services_dhcpv6_edit.php
index 20f29d5dd..9bb403a8a 100644
--- a/src/www/services_dhcpv6_edit.php
+++ b/src/www/services_dhcpv6_edit.php
@@ -180,6 +180,9 @@ include("head.inc");
=gettext("If an IPv6 address is entered, the address must be outside of the pool.");?>
=gettext("If no IPv6 address is given, one will be dynamically allocated from the pool.");?>
+
+ = gettext("When using a static WAN address, this should be entered using the full IPv6 address. " .
+ "When using a dynamic WAN address, only enter the suffix part (i.e. ::1:2:3:4)."); ?>