<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Using a dedicated Kea DHCP server]]></title><description><![CDATA[<p dir="auto">For those who use a dedicated Kea DHCP server(s) in addition to their FOG servers. Here is a <code>kea-dhcp4.conf</code> example file you can use on your dedicated Kea DHCP server.</p>
<pre><code>{
  # Converted to kea-dhcp4.conf.
  # From FOG server's DHCP configuration: dhcpd.conf
  #
  # DHCP Server Configuration file\n#see /usr/share/doc/dhcp*/dhcpd.conf.sample
  #
  "Dhcp4": {
    "interfaces-config": {
        "interfaces": [ "ens18" ]
    },
    "control-socket": {
        "socket-type": "unix",
        "socket-name": "kea4-ctrl-socket"
    },
    "lease-database": {
        // Memfile is the simplest and easiest backend to use. It's an in-memory
        // C++ database that stores its state in CSV file.
        "type": "memfile",
        "lfc-interval": 3600
    },
    "expired-leases-processing": {
        "reclaim-timer-wait-time": 10,
        "flush-reclaimed-timer-wait-time": 25,
        "hold-reclaimed-time": 3600,
        "max-reclaim-leases": 100,
        "max-reclaim-time": 250,
        "unwarned-reclaim-cycles": 5
    },
    "renew-timer": 900,
    "rebind-timer": 1800,
    "valid-lifetime": 3600,
    #
    # Definition of PXE-specific options
    # Code 1: Multicast IP Address of bootfile
    # Code 2: UDP Port that client should monitor for MTFTP Responses
    # Code 3: UDP Port that MTFTP servers are using to listen for MTFTP requests
    # Code 4: Number of seconds a client must listen for activity before trying
    #         to start a new MTFTP transfer
    # Code 5: Number of seconds a client must listen before trying to restart
    #         a MTFTP transfer
    "option-def": [
      {
        "space": "PXE",
        "name": "mtftp-ip",
        "code": 1,
        "type": "ipv4-address"
      },
      {
        "space": "PXE",
        "name": "mtftp-cport",
        "code": 2,
        "type": "uint16"
      },
      {
        "space": "PXE",
        "name": "mtftp-sport",
        "code": 3,
        "type": "uint16"
      },
      {
        "space": "PXE",
        "name": "mtftp-tmout",
        "code": 4,
        "type": "uint8"
      },
      {
        "space": "PXE",
        "name": "mtftp-delay",
        "code": 5,
        "type": "uint8"
      }
    ],
    "option-data": [
      {
        "name": "domain-name-servers",
        "code": 6,
        "data": "10.1.1.2"
      },
      {
        "name": "domain-name",
        "code": 15,
        "data": "xyz.internal"
      },
      {
        "name": "domain-search",
        "data": "xyz.internal"
      },
      {
        "name": "default-ip-ttl",
        "data": "0xf0"
      },
      {
        "name": "subnet-mask",
        "code": 1,
        "data": "255.0.0.0"
      },
      {
        "name": "routers",
        "code": 3,
        "data": "10.1.1.1"
      }
    ],
    "subnet4": [
      {
        "id": 1,
        "subnet": "10.0.0.0/8",
        "pools": [
          {
            "pool": "10.2.0.1 - 10.2.255.254"
          }
        ],
        "valid-lifetime": 21600,
        "max-valid-lifetime": 43200,
        "next-server": "10.1.1.3"
      }
    ],
    "client-classes": [
      {
        "name": "Legacy",
        "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00000'",
        "boot-file-name": "undionly.kkpxe"
      },
      {
        "name": "UEFI-32-2",
        "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00002'",
        "boot-file-name": "i386-efi/snponly.efi"
      },
      {
        "name": "UEFI-32-1",
        "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00006'",
        "boot-file-name": "i386-efi/snponly.efi"
      },
      {
        "name": "UEFI-64-1",
        "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00007'",
        "boot-file-name": "snponly.efi"
      },
      {
        "name": "UEFI-64-2",
        "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00008'",
        "boot-file-name": "snponly.efi"
      },
      {
        "name": "UEFI-64-3",
        "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00009'",
        "boot-file-name": "snponly.efi"
      },
      {
        "name": "UEFI-ARM64",
        "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00011'",
        "boot-file-name": "arm64-efi/snponly.efi"
      },
      {
        "name": "SURFACE-PRO-4",
        "test": "substring(option[60].hex,0,32) == 'PXEClient:Arch:00007:UNDI:003016'",
        "boot-file-name": "snponly.efi"
      },
    ],
    "loggers": [
      {
        "name": "kea-dhcp4",
        "output-options": [
          {
            "output": "/var/log/kea/kea-dhcp4.log"
          }
        ],
        "severity": "INFO",
        "debuglevel": 0
      }
    ]
  }
}
</code></pre>
]]></description><link>http://forums.fogproject.org/topic/18195/using-a-dedicated-kea-dhcp-server</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 15:21:18 GMT</lastBuildDate><atom:link href="http://forums.fogproject.org/topic/18195.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 08 Jul 2026 12:27:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Using a dedicated Kea DHCP server on Wed, 08 Jul 2026 12:55:37 GMT]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="http://forums.fogproject.org/uid/46715">@Alun</a> Thank you and added to documentation and within the installer to try to more cleanly account for this.</p>
]]></description><link>http://forums.fogproject.org/post/158348</link><guid isPermaLink="true">http://forums.fogproject.org/post/158348</guid><dc:creator><![CDATA[Tom Elliott]]></dc:creator><pubDate>Wed, 08 Jul 2026 12:55:37 GMT</pubDate></item></channel></rss>