It's the way it works on pfSense. On OPNsense my radv-daemons are also running on both nodes.
I will try to disable radv-service on my backup node and use the carp trigger to start it on failover. The question is how to configure the service not to auto-start on boot. Script will take care of backup run state.
https://docs.opnsense.org/development/backend/autorun.html
https://docs.opnsense.org/development/backend/carp.html
Edit:
I created a script based on the 50-frr script, that starts radvd on MASTER and stops on BACKUP:
/usr/local/etc/rc.syshook.d/carp/20-radvd
#!/usr/local/bin/php
<?phprequire_once('config.inc');require_once('util.inc');$subsystem = !empty($argv[1]) ? $argv[1] : '';$type = !empty($argv[2]) ? $argv[2] : '';if ($type != 'MASTER' && $type != 'BACKUP') { log_error("Carp '$type' event unknown from source '{$subsystem}'"); exit(1);}if (!strstr($subsystem, '@')) { log_error("Carp '$type' event triggered from wrong source '{$subsystem}'"); exit(1);}switch ($type) { case 'MASTER': shell_exec('/usr/local/sbin/pluginctl -s radvd start'); break; case 'BACKUP': shell_exec('/usr/local/sbin/pluginctl -s radvd stop'); break;}
So radvd just runs on the active node, only one ipv6 gateway is advertised, no async routing. The downside of this 'hack':
In case of failover, it needs time to failover, start radvd on BACKUP node, advertise it to clients and clients have to start using new gateway. Have to test how long this will need.