Currently have nice long docker compose file that hosts my PiHole V6 container (along with a bunch of other containers) however, reason i ask this question is because whenever I go to pull an updated image and recreate the container I experience about 20 minutes of no DNS resolution which to my knowledge is due to the NTP clock being out of sync.

What’s the best way to host a DNS sinkhole/resolver that can mitigate this issue?

Was thinking of utilizing Proxmox & LXC but I suspect I’ll get the same experience.


Update: Turns out PiHole doesn’t support two instances, I got both of them on separate devices also set the 2nd DNS server in my routers WAN & LAN DNS settings which did in fact split DNS between both instances however, I lost access to my routers web-ui, my Traefik instance & reverse proxies died and I lost all internet access.

So, don’t do what I did.

Update 2: So everything I said in my first update let’s disregard that, turns out I had my router forcing all DNS to PiHole server 1 which caused my issues mentioned above.

Two servers appears to work!

  • Jjoiq@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 hours ago

    Debian & ubuntu sudo apt install keepalived

    sudo apt install libipset13

    Configuration

    Find your IP

    ip a

    edit your config

    sudo nano /etc/keepalived/keepalived.conf

    First node

    vrrp_instance VI_1 {

    state MASTER

    interface ens18

    virtual_router_id 55

    priority 150

    advert_int 1

    unicast_src_ip 192.168.30.31

    unicast_peer {

    192.168.30.32

    }

    authentication {

    auth_type PASS

    auth_pass C3P9K9gc

    }

    virtual_ipaddress {

    192.168.30.100/24

    }

    }

    Second node

    vrrp_instance VI_1 {

    state BACKUP

    interface ens18

    virtual_router_id 55

    priority 100

    advert_int 1

    unicast_src_ip 192.168.30.32

    unicast_peer {

    192.168.30.31

    }

    authentication {

    auth_type PASS

    auth_pass C3P9K9gc

    }

    virtual_ipaddress {

    192.168.30.100/24

    }

    }

    Start and enable the service

    sudo systemctl enable --now keepalived.service

    stopping the service

    sudo systemctl stop keepalived.service

    get the status

    sudo systemctl status keepalived.service

    Make sure to change ip and auth pass.

    Enjoy