diff --git a/src/etc/inc/plugins.inc.d/dhcpd.inc b/src/etc/inc/plugins.inc.d/dhcpd.inc index 28c17f963..8ce0b1b08 100644 --- a/src/etc/inc/plugins.inc.d/dhcpd.inc +++ b/src/etc/inc/plugins.inc.d/dhcpd.inc @@ -308,11 +308,17 @@ function dhcpd_radvd_configure($verbose = false, $blacklist = array()) $radvdconf .= "\tAdvDefaultLifetime 0;\n"; } + /* + * Only a CARP VIP can inject a link-local address and it + * means we need to force that address into the RA message + * for failover to work. + */ if (is_linklocal($ifcfgipv6)) { - $radvdconf .= "\tAdvSourceLLAddress off;\n"; $radvdconf .= "\tAdvRASrcAddress {\n"; $radvdconf .= "\t\t{$ifcfgipv6};\n"; $radvdconf .= "\t};\n"; + /* to avoid wrong MAC being stuck in failover case only */ + $radvdconf .= "\tAdvSourceLLAddress off;\n"; } $stanzas = array();