OPNsense Forum

English Forums => High availability => Topic started by: eddieitrax on August 03, 2026, 04:36:36 PM

Title: HA and AdGuard plugin
Post by: eddieitrax on August 03, 2026, 04:36:36 PM
Hi All,

Many apologies if this has been posted before.  I've been deploying an HA pair and found a couple of places where the AdGuard plugin could integrate more naturally with CARP.  I don't believe this is a bug in AdGuard Home itself. Once configured to bind to the CARP VIP it behaves correctly, even on the standby where the VIP is not currently active. This feels more like an opportunity for the OPNsense plugin to become HA-aware by detecting or offering CARP VIPs when generating or updating the AGH configuration. If my below summary is right and I've not done something wrong I'm wondering where the best place to request this additional feature would be? 

I recently retrofitted HA to my standalone system running 26.7 and noticed that the AdGuard Home plugin configured AGH to bind to the physical interface addresses that existed when it was installed.  When I installed the plugin on the standby there was no CARP address on the system either so it bound to the physical address there, too.  So basically AGH at the point of install didn't know about any CARP addresses.  However, this meant that after I'd got HA working and started testing I found when CARP moved from the Master to the Standby the CARP address moved but AGH continued listening on the configured physical interface address rather than the CARP VIP and subsequent DNS queries from my clients failed.  I subseqently did a workaround to update /usr/local/AdGuardHome/AdGuardHome.yaml so that on both Master and Standby AGH would be forced to start on the CARP address as opposed to the the physical adapter.  This works OK with the testing I've undertaken.  I have attached some output showing the state of the ADH process running on both nodes in the amended and working configuration for reference.  Prior to this they were binding to the .2 and .3 addresses respectively.

root@OPNsense-a:/usr/local/AdGuardHome # sockstat -4 -l | grep ':53'
root          AdGuardHom 72672  72 udp4  10.0.30.1:53          *:*
root          AdGuardHom 72672  78 tcp4  10.0.30.1:53          *:*
root@OPNsense-a:/usr/local/AdGuardHome #

--------------Standby-------------

root@OPNsense-b:~ # sockstat -4 -l | grep ':53'
root          AdGuardHom 66852 119 udp4  10.0.30.1:53          *:*
root          AdGuardHom 66852 120 tcp4  10.0.30.1:53          *:*
root@OPNsense-b:~ #