Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Get around DNS restart and still have client register?

    Scheduled Pinned Locked Moved DHCP and DNS
    18 Posts 6 Posters 1.5k Views 7 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • bingo600B Offline
      bingo600 @iorx
      last edited by bingo600

      @iorx
      To my knowledge - Not within pfSense

      I'm using ISC-DHCP on a Linux Server with Bind9 (Linux DNS) DDNS (Dynamic Dns) to avoid that issue.
      I then use the pfSense DHCP forwarder to forward the DHCP requests to my Linux , and have set unbound to forward all queries to my Linux Bind9 DNS server.

      Warning .... That's NOT a beginners task on Linux.

      A Microsoft DHCP server would be easier to setup.
      But might be $$$$ , as it is M$

      /Bingo

      If you find my answer useful - Please give the post a 👍 - "thumbs up"

      pfSense+ 23.05.1 (ZFS)

      QOTOM-Q355G4 Quad Lan.
      CPU  : Core i5 5250U, Ram : 8GB Kingston DDR3LV 1600
      LAN  : 4 x Intel 211, Disk  : 240G SAMSUNG MZ7L3240HCHQ SSD

      iorxI 1 Reply Last reply Reply Quote 1
      • iorxI Offline
        iorx @bingo600
        last edited by

        @bingo600

        Got a couple of Windows Server (stand alone; no AD) running (Hyper-V guests, pfsense also a guest in Hyper-V) but I kind of want this "basic network function" to be available on the firewall as it's convenient to have all stuff there related to look up and hosts.

        Thank you for a possible way to achieve it. I do some research before going that route.

        So, how can pfBlocker update Unbound without restart?
        From the GUI of pfBlocker, an option:

        Resolver Live Sync
        ☑ Enable
        When enabled, updates to the DNS Resolver DNSBL database will be performed Live without reloading the Resolver.
        This will allow for more frequent DNSBL Updates (ie: Hourly) without losing DNS Resolution.
        This option is not required when DNSBL python blocking mode is enabled.

        Shouldn't is be possible to use the same technique with DHCP-registrations within pfSense?

        bingo600B iorxI 2 Replies Last reply Reply Quote 0
        • bingo600B Offline
          bingo600 @iorx
          last edited by

          @iorx
          I have no pfBlocker experience , dont use it

          If you find my answer useful - Please give the post a 👍 - "thumbs up"

          pfSense+ 23.05.1 (ZFS)

          QOTOM-Q355G4 Quad Lan.
          CPU  : Core i5 5250U, Ram : 8GB Kingston DDR3LV 1600
          LAN  : 4 x Intel 211, Disk  : 240G SAMSUNG MZ7L3240HCHQ SSD

          iorxI 1 Reply Last reply Reply Quote 0
          • iorxI Offline
            iorx @bingo600
            last edited by

            @bingo600

            OK, the question should maybe be towards someone here a bit in to development and the inner workings of pfSense.
            Thank you anyway for your response.

            Brgs,

            1 Reply Last reply Reply Quote 0
            • GertjanG Online
              Gertjan @iorx
              last edited by

              @iorx said in Get around DNS restart and still have client register?:

              Is there any solution to prevent this restart?

              The DHCP servers still works just fine.
              The /var/dhcpd/var/db/dhcpd.leases file still contains the actual state of all leases on the LAN"s.

              Unbound doesn't use or read "/var/dhcpd/var/db/dhcpd.leases"
              The process dhcpleases was created to read from the file /var/dhcpd/var/db/dhcpd.leases and outputs in the classic /etc/hosts file and /var/unbound/dhcpleases_entries.conf file. This on is sourced by the unbound config file.

              The thing is : unbound only reads its config during startup.
              It can not (re)read this file, or any other file when it's doing what unbiound does : resolving.
              if it did, resolving would get limited to disk IO speed. Resolving will take a huge hit in speed.

              51741  -  Ss       0:00.01 /usr/local/sbin/dhcpleases -l /var/dhcpd/var/db/dhcpd.leases -d my-local-domain.tld -p /var/run/unbound.pid -u /var/unbound/dhcpleases_entries.conf -h /etc/hosts
              

              What it does : if wait for a file event on "-l /var/dhcpd/var/db/dhcpd.leases". If that event happens, it get parsed, and "-u /var/unbound/dhcpleases_entries.conf" ( and -h /etc/hosts) are re created.
              Then, if "-p /var/run/unbound.pid" exists, then unbound is actually running, so dhcpleases send a signal to it.
              This is the message :
              Drop dead, and resurrect.

              This is how new leases get registered ion the DNS.
              Actually quit elegant, even I could have written it.
              Its actually not bad at all as an implementation.

              Now, with our modern day networks filled up with all the Chinese ** connected gadgets that execute a DHCP every x seconds or so and/or behave as of their lease is 1 second, no matter what.
              You've just nuked your unbound (DNS) process.

              A problem like this couldn't exist in the past. When a new device was added, (dhcp) log files were closely observed, to be sure nothing out of the ordinary shows up.
              Local bandwith wasn't an close to unlimited resource back then. We didn't have Multi tera flops processors to handle nice stuff like web servers for GUI's.

              ** you know what I mean. admin's these day can also use bad cables, lousy switches, or use bad power, or messed up wifi signals. All these are good ingredients in the "let's chain gun pfSense with DHCP requests".

              No "help me" PM's please. Use the forum, the community will thank you.
              Edit : and where are the logs ??

              keyserK iorxI T 3 Replies Last reply Reply Quote 1
              • keyserK Offline
                keyser Rebel Alliance @Gertjan
                last edited by

                @gertjan The funny thing is this has been an issue for years, and unbound has long since adopted a dynamic update feature - while running - using the python integration that pfBlockerNG uses.

                There is just no developers or netgate people that finds it important enough to actually fix the dhcpleases process to use the new integration instead of the 1990’s style full restart.

                Seems most are content - like you - with just creating static DHCP leases for everything (which is a horrible solution and doesn’t scale at all).

                I cannot fix it myself because I have no coding or scripting skills.

                Wonder if we could make a petition to actually get an idea of how many would like this fix to be bumped to the top of the “to-do” list @ netgate.

                Love the no fuss of using the official appliances :-)

                1 Reply Last reply Reply Quote 1
                • iorxI Offline
                  iorx @Gertjan
                  last edited by iorx

                  @gertjan

                  Thank you for the good, educational and informative read! 😄

                  What I can see I don't suffer much of the machine gunning you're mentioning. But now and then, once in a bluemoon, I hit the restart window and get a timed out request, I think.
                  Those 5s in the log here is when Unbound is restarting I presume.

                  So to give an idea of how it looks here.

                  See attached txt-file (I was considered spaming... trying with inline logs)
                  

                  log-dhcp-unbound.txt

                  But how is pfBlocker able to inform Unbound of changes and not restarting it? It's "Resolver Live Sync" thingy?
                  (I read and reread your reply but couldn't parse if this was answered, as me not fully understanding... 😵 )

                  1 Reply Last reply Reply Quote 0
                  • T Offline
                    thiasaef @Gertjan
                    last edited by

                    @gertjan said in Get around DNS restart and still have client register?:

                    Its actually not bad at all as an implementation.

                    It actually is the worst possible way of doing it: https://redmine.pfsense.org/issues/5413

                    GertjanG 1 Reply Last reply Reply Quote 1
                    • GertjanG Online
                      Gertjan @thiasaef
                      last edited by Gertjan

                      @thiasaef said in Get around DNS restart and still have client register?:

                      @gertjan said in Get around DNS restart and still have client register?:

                      Its actually not bad at all as an implementation.

                      It actually is the worst possible way of doing it: https://redmine.pfsense.org/issues/5413

                      That "worse" implementation can be undone.

                      There :

                      d0df2f8f-2033-42b6-8746-9e61585eadf1-image.png

                      and done.

                      Doing what the redmine proposes :

                      Should be changed to something like this:
                      $unbound_cmd .= "unbound-control local_data {$host['fqdn']} {$type} {$host['ipaddr']}";

                      is a no go because command line parameters are only read during startup.
                      Ok, Netgate could re write (fork) unbound. But unbound it's as big as bind, it's still a big project.

                      A far better method could be : use unbond-control (very comparable with the rndc tool from bind) : it can change in memory 'cache' items on the fly, during unbound execution.

                      Or, as I said earlier : adding a python extension (like pfBlockerNG-devel did) that consults the DHCP leases list every 60 seconds or so, extract new leases, remove expired leases.

                      It surprises me that it hasn't been done yet.
                      Btw : unbound was written with a stand alone device in mind, that needs a resolver, as forwarding is something of the past. A resolver also open the DNSSEC door.
                      unbound was never meant to be used ( my impression) on a router firewall that also has a DHCP server, with the DHCP clients on the LANs lease info put into the local DNS system.
                      Every decent router firewall has (should have) such a functionality.

                      No "help me" PM's please. Use the forum, the community will thank you.
                      Edit : and where are the logs ??

                      T 1 Reply Last reply Reply Quote 0
                      • T Offline
                        thiasaef @Gertjan
                        last edited by

                        @gertjan said in Get around DNS restart and still have client register?:

                        A far better method could be : use unbond-control

                        You do realize that the Redmine Ticket suggests exactly that?

                        1 Reply Last reply Reply Quote 0
                        • iorxI Offline
                          iorx @iorx
                          last edited by

                          @iorx

                          I circle back to the original problem here. Interrupt free DNS.

                          I went for this route:

                          • Pi-Hole in a VM in DietPi
                          • Forwarders in Pi-Hole for my local domains pointing to pfSense
                          • Changed DHCP option to point at the Pi-Hole

                          Got local name resolution for registered devices and a rather pretty GUI to check whats been going down in the name resolution swamp.

                          The subject on Unbound restarts seems a 🔥 potato 😓

                          bingo600B 1 Reply Last reply Reply Quote 1
                          • bingo600B Offline
                            bingo600 @iorx
                            last edited by bingo600

                            @iorx said in Get around DNS restart and still have client register?:

                            @iorx

                            I circle back to the original problem here. Interrupt free DNS.

                            I went for this route:

                            • Pi-Hole in a VM in DietPi

                            Nice workaround 👍
                            I use Pi-Hole too on a Debian VM (instead of pfBlockerNG)
                            Do you use the PI-Hole as DHCP server now , instead of pfSense or ??

                            • Forwarders in Pi-Hole for my local domains pointing to pfSense
                              Why ???

                            What local domains do you need to have resolved on the pfSense , if everything uses the PI-Hole ?

                            • Changed DHCP option to point at the Pi-Hole

                            I suppose you mean the DHCP DNS option , handed out to clients ?

                            Got local name resolution for registered devices and a rather pretty GUI to check whats been going down in the name resolution swamp.

                            The subject on Unbound restarts seems a 🔥 potato 😓

                            😊

                            Do you have multivlan (IP-Net) DHCP scopes on the pihole or ?

                            /Bingo

                            If you find my answer useful - Please give the post a 👍 - "thumbs up"

                            pfSense+ 23.05.1 (ZFS)

                            QOTOM-Q355G4 Quad Lan.
                            CPU  : Core i5 5250U, Ram : 8GB Kingston DDR3LV 1600
                            LAN  : 4 x Intel 211, Disk  : 240G SAMSUNG MZ7L3240HCHQ SSD

                            iorxI 1 Reply Last reply Reply Quote 0
                            • iorxI Offline
                              iorx @bingo600
                              last edited by

                              @bingo600 said in Get around DNS restart and still have client register?:

                              @iorx said in Get around DNS restart and still have client register?:

                              @iorx

                              I circle back to the original problem here. Interrupt free DNS.

                              I went for this route:

                              • Pi-Hole in a VM in DietPi

                              Nice workaround 👍
                              I use Pi-Hole too on a Debian VM (instead of pfBlockerNG)
                              Do you use the PI-Hole as DHCP server now , instead of pfSense or ??

                              No, pfSense is still DHCP server.

                              • Forwarders in Pi-Hole for my local domains pointing to pfSense
                                Why ???

                              Got a couple of VLANs. work, kids, iot and guest. These domains are forwarded to pfSense to find hosts there.
                              Also got like 5 VPN-tunnels and overrides in pfSense Unbound to query DNS server on the other side of those.

                              What local domains do you need to have resolved on the pfSense , if everything uses the PI-Hole ?

                              You're probably right here. pfSense it self doesn't need to resolve hostnames in all subnets/tunnels. Haven't decided yet if I'm going to populate PiHole with overrides or keep them in pfSense.

                              • Changed DHCP option to point at the Pi-Hole

                              I suppose you mean the DHCP DNS option , handed out to clients ?
                              Correct! Bad wording here.

                              Got local name resolution for registered devices and a rather pretty GUI to check whats been going down in the name resolution swamp.

                              The subject on Unbound restarts seems a 🔥 potato 😓

                              😊

                              Do you have multivlan (IP-Net) DHCP scopes on the pihole or ?

                              Yes to VLANs. No to DHCP in Pi-hole , haven't checked out that feature yet. Pretty new to Pi-hole, looks interesting, will investigate.

                              /Bingo

                              Brgs, iorx

                              1 Reply Last reply Reply Quote 0
                              • D Offline
                                DLFerguRD
                                last edited by

                                My solution is similar to @bingo600

                                DHCP server is on pfsense. Handles LAN IOT and Guest networks
                                Bind9 is on my internal linux server.
                                I use the dynamic dns updates section of the DHCP server to update the Bind9 server using the rndc-key. Use a host override in unbound to point my local networks to the internal Bind9 server.
                                I use pfblocker and for me this gives internal name resolution on all the pfblocker reports.

                                keyserK 1 Reply Last reply Reply Quote 0
                                • keyserK Offline
                                  keyser Rebel Alliance @DLFerguRD
                                  last edited by

                                  @dlfergurd Simple enough workarounds, but completely hopeless/stupid that this is necessary, for a feature that has worked in standard products for almost 20 years now.
                                  Worse still - it has no priority to get fixed i pfSense….

                                  Love the no fuss of using the official appliances :-)

                                  iorxI 1 Reply Last reply Reply Quote 1
                                  • iorxI Offline
                                    iorx @keyser
                                    last edited by

                                    @keyser

                                    https://redmine.pfsense.org/issues/5413
                                    But I read this thread correctly? To me it looks like a solution has been delivered there, tested and committed?

                                    keyserK 1 Reply Last reply Reply Quote 0
                                    • keyserK Offline
                                      keyser Rebel Alliance @iorx
                                      last edited by keyser

                                      @iorx said in Get around DNS restart and still have client register?:

                                      @keyser

                                      https://redmine.pfsense.org/issues/5413
                                      But I read this thread correctly? To me it looks like a solution has been delivered there, tested and committed?

                                      Yeah, I thought that as well until i read the thread carefully - including inspecting the dates on posts.
                                      The proposed code based on the high level code has never been adopted beyond a proposal. The proposed fix thread then stopped once that happened (more than a years ago).
                                      The reason we misread the thread is because someone suggests you just disable DHCP registrations, and another poster confirms that fix works well. But he’s not talking about the code, he’s talking about the workaround to disable DHCP registrations.

                                      So it’s still a dead end…..

                                      Love the no fuss of using the official appliances :-)

                                      1 Reply Last reply Reply Quote 1
                                      • First post
                                        Last post
                                      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.