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

    switch over from ISC DHCP to Kea DHCP

    Scheduled Pinned Locked Moved DHCP and DNS
    70 Posts 18 Posters 17.9k Views
    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.
    • GertjanG
      Gertjan @SteveITS
      last edited by

      @SteveITS said in switch over from ISC DHCP to Kea DHCP:

      @pulsartiger re: updates:
      https://www.netgate.com/blog/improvements-to-kea-dhcp

      Yep. That info is still hiding in plain site.

      9a449c6a-de11-479a-b057-c42024766d59-image.png

      ( Just an idea : put the RSS at the top, and you stat auto-informed )

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

      1 Reply Last reply Reply Quote 0
      • K
        kuchenmann
        last edited by

        After I tried to switch to KEA, no ip address for my pc over LAN and WLAN.
        For some reason my laptop still worked, so I could take a look into my pfsense.
        No leases shown under "status - DHCP leases".
        After switching back to ISC everything works fine again.
        DO NOT USE KEA!

        W K 2 Replies Last reply Reply Quote 0
        • W
          WN1X @kuchenmann
          last edited by

          @kuchenmann I have been using Kea since it was added to pfSense 24.03 without any issues at all on my 4200. YMMV.

          1 Reply Last reply Reply Quote 1
          • K
            kuchenmann @kuchenmann
            last edited by

            @kuchenmann

            problem is, that if ISC is configured with NTP-servers using names,
            KEA fails to start, because it only accepts IP-addresses as NTP-servers.
            WTF?
            Never heard about pool.ntp.org?

            johnpozJ W 3 Replies Last reply Reply Quote 0
            • johnpozJ
              johnpoz LAYER 8 Global Moderator @kuchenmann
              last edited by

              @kuchenmann dhcp has never accepted fqdn for ntp.. Before pfsense would resolve that to put the IP into the dhcp server.

              Pretty sure that is one of the things added in the 24.11 release.

              An intelligent man is sometimes forced to be drunk to spend time with his fools
              If you get confused: Listen to the Music Play
              Please don't Chat/PM me for help, unless mod related
              SG-4860 24.11 | Lab VMs 2.8, 24.11

              1 Reply Last reply Reply Quote 0
              • W
                WN1X @kuchenmann
                last edited by

                @kuchenmann The NTP servers provided via DHCP option 42 must be IP addresses, per RFC2132.

                1 Reply Last reply Reply Quote 1
                • W
                  WN1X @kuchenmann
                  last edited by

                  @kuchenmann Why don't you set pfSense to use pool.ntp.org and set DHCP to provide the IP address of your LAN as the NTP server?

                  1 Reply Last reply Reply Quote 0
                  • RyanMR
                    RyanM
                    last edited by

                    I know this is an old topic, but seems to be the most relevant. I use static DHCP leases and that they are registered in DNS (unbound). I know the original blog stated this was a known limitation, however, this blog post (https://www.netgate.com/blog/improvements-to-kea-dhcp) seems to indicate this may be present in 24.08?

                    Any idea when this will become available in CE? I am on CE 2.7.2, which has a build date of 2023. I see there is an RC for 2.8.0. Maybe I will look around at how stable that is and consider upgrading...

                    S P 2 Replies Last reply Reply Quote 0
                    • S
                      SteveITS Galactic Empire @RyanM
                      last edited by

                      @RyanM see the Kea notes in section:
                      https://docs.netgate.com/pfsense/en/latest/releases/2-8-0.html#general

                      Pre-2.7.2/23.09: Only install packages for your version, or risk breaking it. Select your branch in System/Update/Update Settings.
                      When upgrading, allow 10-15 minutes to restart, or more depending on packages and device speed.
                      Upvote 👍 helpful posts!

                      1 Reply Last reply Reply Quote 0
                      • P
                        Patch @RyanM
                        last edited by Patch

                        @RyanM said in switch over from ISC DHCP to Kea DHCP:

                        I use static DHCP leases and that they are registered in DNS (unbound). ... Any idea when this will become available in CE?

                        That's a good question. Or better again "Has pfsense Kea DHCP implementation reached feature parity with pfsense ISC DHCP implementation"?

                        The reason this is a good question is Netgate messaging on the subject has been atrocious in the past. Made worse as somehow they tried to argue miss leading messaging was OK because if you knew it was miss leading you could go to another source, read it carefully and excused them as they left a caveat there.

                        My reading of the release notes https://docs.netgate.com/pfsense/en/latest/releases/2-8-0.html#general suggests Netgate's pfsense Kea implementation has improved but I'm not sure if it has reached feature parity yet.

                        The warning

                        ISC DHCP has reached end-of-life and will be removed in a future version of pfSense.
                        

                        Is relevant to Netgate internal Kea development prioritization but blatantly inappropriate IMO in an inbuilt pfsence warning without their Kea implementation reaching feature parity or at least including a link to a comparison table in the warning.

                        Hopefully they have reached feature parity now so this concern is no longer relevant.

                        1 Reply Last reply Reply Quote 0
                        • H
                          HuskerDu
                          last edited by

                          I've just upgraded from 2.7.2 to 2.8.0.

                          So far it has run smoothly, so that I've decided to give KEA a try. At first glance, it is fine, except from the DHCP option point of view.

                          I would imagine I'll have to dig in the JSON part to complete that point.

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

                            @HuskerDu said in switch over from ISC DHCP to Kea DHCP:

                            give KEA a try. At first glance, it is fine, except from the DHCP option point of view.

                            'kea' = (a) DHCP (server).
                            Can you detail your 'except ' ?

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

                            H 1 Reply Last reply Reply Quote 0
                            • H
                              HuskerDu @Gertjan
                              last edited by HuskerDu

                              @Gertjan said in [switch over from ISC DHCP to Kea DHCP]

                              Can you detail your 'except ' ?

                              I am pointing my Unifi devices towards their controller through DHCP Option 43. With KEA, it is no longer directly possible via the GUI, I'm assuming I would have to add it with JSON.

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

                                @HuskerDu said in switch over from ISC DHCP to Kea DHCP:

                                I am pointing my Unifi devices towards their controller through DHCP Option 43. With KEA, it is no longer directly possible via the GUI, I'm assuming I would have to add it with JSON.

                                Oh ... but I can help you with that.
                                I've a Cloud Gen 2 Plus whatever device, and a load of Unifi APs.

                                Easy solution - the one that works without the help of DHCP :
                                As per Unifi documentation :
                                Create a host override (bottom part of General config of the resolver) called 'unifi' and let it point to IPv4 of your controller.

                                9abc40a1-71b3-48b1-973b-4982628fa227-image.png

                                I called it "a_unifi" so it gets sorted on top.
                                You should "unifi" of course.

                                Btw :

                                0d3d9c9f-3fa9-46c6-9414-d9227c9efedf-image.png

                                as "bhf.tld" is the domain of my pfSense.

                                as Unifi devices, if they didn't get the controller info with option 43 in the lease from a DHCP server, they will do a DNS request for "unifi" and use that IPv4 as the controller IPv4.

                                Using Kea and options :
                                It is possible - and I'm using that right now :

                                On the kea DHCP server settings page :

                                d799a755-dd6e-41ae-85c0-8ef8b92b8ef7-image.png

                                put this in place :

                                cf8516fb-8e1e-45d3-9f31-b23f8b41cf21-image.png

                                {
                                  "option-def": [
                                    {
                                      "name": "unifi",
                                      "code": 1,
                                      "space": "vendor-encapsulated-options-space",
                                      "type": "string"
                                    }
                                  ]
                                }
                                

                                and on every LAN where you have unfi stuff, (APs cameras etc), put this :

                                9004a9af-17fd-4802-92d5-cc38ff654f1e-image.png

                                {
                                  "option-data":  [
                                    {
                                      "name": "vendor-encapsulated-options"
                                    },
                                    {
                                      "name": "unifi",
                                      "space": "vendor-encapsulated-options-space",
                                      "csv-format": false,
                                      "data": "C0A80109" 
                                    }
                                  ]
                                }
                                

                                Btw "C0A80109" = 192.168.1.9 because my controller uses 192.168.1.9 - adapt yours for your controller IPv4.

                                See also : [Adding Custom Configuration in Kea DHCP Server with pfSense+ 25.03](Adding Custom Configuration in Kea DHCP Server with pfSense+ 25.03)

                                More info : Kea DHCP Custom Configuration Support (IPv4 and IPv6)

                                Let's test :

                                Packet Capture :
                                On a LAN, using UDP, port 67 and 68, with juicy details - and Start.
                                Using my Unifi, I restart a AP.
                                After a moment : the DHCP lease request :

                                16:40:51.945823 0c:ea:14:44:4a:38 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 328)
                                    0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 0c:ea:14:44:4a:38, length 300, xid 0x76ea1f4d, secs 51401, Flags [none] (0x0000)
                                	  Client-Ethernet-Address 0c:ea:14:44:4a:38
                                	  Vendor-rfc1048 Extensions
                                	    Magic Cookie 0x63825363
                                	    DHCP-Message (53), length 1: Discover
                                	    Client-ID (61), length 7: ether 0c:ea:14:44:4a:38
                                	    MSZ (57), length 2: 576
                                	    Parameter-Request (55), length 8: 
                                	      Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Hostname (12)
                                	      Domain-Name (15), BR (28), NTP (42), Vendor-Option (43)
                                	    Vendor-Class (60), length 4: "ubnt"
                                	    Hostname (12), length 11: "U6ProBureau"
                                

                                You see the option 43 request ?

                                The kea dhcp server answer :

                                16:40:51.948326 90:ec:77:29:39:2c > 0c:ea:14:44:4a:38, ethertype IPv4 (0x0800), length 362: (tos 0x10, ttl 128, id 0, offset 0, flags [DF], proto UDP (17), length 348)
                                    192.168.1.1.67 > 192.168.1.253.68: [udp sum ok] BOOTP/DHCP, Reply, length 320, xid 0x76ea1f4d, Flags [none] (0x0000)
                                	  Your-IP 192.168.1.253
                                	  Client-Ethernet-Address 0c:ea:14:44:4a:38
                                	  Vendor-rfc1048 Extensions
                                	    Magic Cookie 0x63825363
                                	    DHCP-Message (53), length 1: Offer
                                	    Subnet-Mask (1), length 4: 255.255.255.0
                                	    Default-Gateway (3), length 4: 192.168.1.1
                                	    Domain-Name-Server (6), length 4: 192.168.1.1
                                	    Hostname (12), length 8: "ub6prob2"
                                	    Domain-Name (15), length 20: "bhf.tld"
                                	    NTP (42), length 4: 192.168.1.1
                                	    Vendor-Option (43), length 6: 1.4.192.168.1.9
                                	    Lease-Time (51), length 4: 21600
                                	    Server-ID (54), length 4: 192.168.1.1
                                

                                and the AP got the controller IPv4 :

                                Vendor-Option (43), length 6: 1.4.192.168.1.9
                                

                                so "192.168.1.9"

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

                                H RyanMR 2 Replies Last reply Reply Quote 0
                                • H
                                  HuskerDu @Gertjan
                                  last edited by

                                  @Gertjan Thanks, that was what I was looking for.

                                  1 Reply Last reply Reply Quote 0
                                  • RyanMR
                                    RyanM @Gertjan
                                    last edited by

                                    @Gertjan Is this required if I have a Unifi controller? Or just for certain configurations w/ Unifi?

                                    bmeeksB 1 Reply Last reply Reply Quote 0
                                    • KOMK
                                      KOM
                                      last edited by

                                      Hilarious that you have to hack up some JSON just to add common DHCP options. Truly, the future is here today!

                                      1 Reply Last reply Reply Quote 0
                                      • bmeeksB
                                        bmeeks @RyanM
                                        last edited by

                                        @RyanM said in switch over from ISC DHCP to Kea DHCP:

                                        @Gertjan Is this required if I have a Unifi controller? Or just for certain configurations w/ Unifi?

                                        My understanding is "No", this DHCP option is not required. You can also simply put a DNS host override in DNS that points to the controller's IP. A user on the "other *Sense" forum posted with similar concerns about Kea on that platform and the lack of DHCP option 43. Turns out that Unifi devices will try several ways to find the controller, and a simple DNS lookup is one of them. Here is the relevant link: https://help.ui.com/hc/en-us/articles/204909754-Remote-Adoption-Layer-3.

                                        And here is the DNS information:

                                        You'll need to configure your DNS server to resolve unifi to your remote UniFi Network Application.
                                        
                                        There are two methods of specifying the machine running the Network Application:
                                        
                                        IP Address: http://ip-address:8080/inform
                                        Fully Qualified Domain Name (FQDN): http://FQDN:8080/inform
                                        
                                        GertjanG 1 Reply Last reply Reply Quote 0
                                        • F
                                          Finger79
                                          last edited by

                                          Just upgraded from 2.7.2 to 2.8.0. After the upgrade, switched the DHCP backend from the ISC DHCP to ISC Kea and also enabled both the "DNS Registration" and "Early DNS Registration" options. Finally!

                                          The only thing missing is the ability to add Custom DHCP Options! With the legacy ISC DHCP web interface, we had:

                                          Number:
                                          Type:
                                          Value:

                                          That is no longer present in the WebUI. Looking through this thread, it seems the workaround is to figure out how to format all that in JSON?

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

                                            @bmeeks said in switch over from ISC DHCP to Kea DHCP:

                                            @Gertjan Is this required if I have a Unifi controller? Or just for certain configurations w/ Unifi?
                                            

                                            My understanding is "No", this DHCP option is not required. You can also simply put a DNS host override in DNS that points to the controller's IP.

                                            That's why I mentioned the first "easy solution" (see above) :

                                            Easy solution - the one that works without the help of DHCP :
                                            As per Unifi documentation :
                                            Create a host override (bottom part of General config of the resolver) called 'unifi' and let it point to IPv4 of your controller.

                                            (with images)

                                            ..... and done.
                                            I've tested this : it works.

                                            @KOM said in switch over from ISC DHCP to Kea DHCP:

                                            Hilarious that you have to hack up some JSON ...

                                            Hack ?
                                            Remember the before pfBlockerng times ? When we wanted to use DNSBL files to be used by the resolver (unbound) ?
                                            When you had to enter many lines of config for the Resolver here :

                                            384ee484-d738-49de-a112-bc61e6b81923-image.png

                                            Some settings are global, per "server:", and some are per interface:, and so on.
                                            It was easy to make a syntax error, or worse, the settings were accepted by unbound, and the final behavior was different as what was intended.
                                            unbound has some option not covered in the GUI. About 90 or so. As you can see I use one of them, as I collect stats from unbound to see what it is doing.

                                            DHCP (server) : there are .... dono, many DHCP options that exists. And all use another format, nothing is standardized. Close to impossible to have them all added to the GUI.
                                            The JSON format helps the user to create something with some basic syntax error checking build in : JSON.

                                            Btw : I do think that 'basic' options will be build into the GUI, but on the other hand, kea is there since .... 24.03 ? and initially, no options what so ever.
                                            I needed some special DHCP options, as other early pfSense kea users - and I counted .... 3 ?!! See forum posts and redmine. And when I say 'I needed' it's actually for my hotel captive portal visitors, as all recent phones, PCs etc have RFC8910 build in, and people tend to connect to (free) "wifi" whenever they can.

                                            Rfc8910 Captive portal support is why I needed a DHCP option, so at first I patched it in myself, but a Netgate author created a redmine and promptly wrote a JSON entry box and that worked right away :

                                            f13ed511-4f73-488b-92d3-6d3d488da4b3-image.png

                                            The first block is for the portal login page URL, and the second for my portal APs, so they can find the controller (192.168.1.9).

                                            Another advantage of using a controller - and announcing it's IPv4 it on your networks, is that when you add a new AP, you hook it up and done. Installation is done with the controller's GUI : you can "adopt" it, and then apply settings to it.

                                            @RyanM said in switch over from ISC DHCP to Kea DHCP:

                                            @Gertjan Is this required if I have a Unifi controller? Or just for certain configurations w/ Unifi?

                                            Noop.
                                            I think it isn't, but I never used my APs in "stand alone mode".
                                            For Unifi camera, a controller is probably mandatory, but I never sued these, neither the other Unifi stuff (doorbells and so on).
                                            I do use a Unifi POE switch, so my APs have no individual power bricks anymore. Power is no centralized, power back upped with an UPS. This switch is also managed by the controller.

                                            Unifi APs have no GUI access, just a SSH access with very few options : nearly no bells and whistles. You can set the SSID, a password, channel used and add a controller manually, that's about it. The setup is done with a phone app nearby, using bluetooth.
                                            As I'm using my 6 APs for a hotel, a captive portal, I went for the centralized setup, the controller. At first, I used the free (!) software solution as I have a (Windows) PC that is always turned on, but a NAS with a VM or docker (?) can also be used, or some Linux VM.
                                            I didn't retain the Cloud based solution (with a monthly fee).
                                            I finally when for the :

                                            1d5b82b6-abc4-4d23-9df9-1fbbdd9617f7-image.png

                                            stand-alone 250 $ solution.
                                            It has a build in 1 GB disk that I don't use - I guess it's for camera images/video's.
                                            Now I have a nice GUI that controls all my AP's, nice charts and many buttons to click on 😊

                                            @Finger79 said in switch over from ISC DHCP to Kea DHCP:

                                            The only thing missing is the ability to add Custom DHCP Options! With the legacy ISC DHCP web interface, we had:

                                            Number:
                                            Type:
                                            Value:

                                            Look at the image I showed above.
                                            These are now called "name", "data","space" and there are many (!) more formats.
                                            You have to use the { and }, and commas - these should be placed with space science precision (JSON !), you are not allowed to F-up.

                                            @Finger79 said in switch over from ISC DHCP to Kea DHCP:

                                            it seems the workaround is to figure out how to

                                            Nah ... an admin has to do some work for a living ^^
                                            Remember : why you buy (chose) that device that needs special, totally none standard settings, then, by your choice, you have to support it. pfSense can not be made aware of all existing possibilities out there. So : you'll be needing the device's docs, and you'll be good.
                                            It won't take long time that device that need special DHCP lease options will have JSON examples as more then half of the planet will be using kea after all (it will eventually replace ISC).

                                            There are of course good candidates for total pfSense GUI integration, like the RFC8910 portal support. All the info needed is available in pfSense, so it could be a "one check-box DHCP solution".
                                            DHCP options are invented by the maker of a device that uses DHCP as a client.
                                            The DHCP server has to make (offer) this DHCP option. So it needs to be very flexible, as everybody (device constructor) wants something else. There are no standards.
                                            To enforce validity of these parameters, in stead of plain text, JSON is now needed (also plain text btw).
                                            See it as a sophisticated classic linux (Windows INI ! or even config.sys or autoexec.bat file) config file, the ones we used for the last 50 years or so, and it evolved from these to somewhat better, that can be 'checked' as kea (pfSense) uses lint before it accepts your JSON entry

                                            Now everybody can add whatever DHCP option he wants, if he is willing to look up how to do so. And as said, the alter is always

                                            All of this is very 'imho' and 'afaik'.
                                            pfSense is flexible, so I flex it.

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

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