<!DOCTYPE html>
<html data-lt-installed="true">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body style="padding-bottom: 1px;">
    <p>Good Morning,</p>
    <p>I am running Ubuntu 24.04, Kea 2.4.1. I have been using Kea
      without major issues for a year or two, isc-dhcp for a couple of
      years prior. During recent kernel updates I decided I was sick of
      Virtualbox compatibility issues, so I created a bridged network so
      that I could move my vms (Nextcloud, Stork) to KVM. I am somewhat
      incompetent, but after about 100 attempts I have managed to setup
      a bridged network that connects my server to the rest of the
      network and to the internet. My new KVM VMs are joining the
      network as if they were real devices. My problem is my kea DHCP4
      server. I guess have done something stupid, either with selecting
      the interface in kea-dhcp4.conf or with configuring my bridged
      network (br0).  At this stage, when I start kea-dhcp4-server, it
      communicates to my HA standby to to take control of DHCP but then
      completely fails to provide ip addresses itself. So, the network
      currently looks like this:</p>
    <p><i>dad@<a class="moz-txt-link-freetext" href="macserver:~$">macserver:~$</a> ip a<br>
        1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
        state UNKNOWN group default qlen 1000<br>
            link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br>
            inet 127.0.0.1/8 scope host lo<br>
               valid_lft forever preferred_lft forever<br>
            inet6 ::1/128 scope host noprefixroute <br>
               valid_lft forever preferred_lft forever<br>
        2: enp34s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
        qdisc fq_codel master br0 state UP group default qlen 1000<br>
            link/ether 2c:<a class="moz-txt-link-freetext" href="f0:5d:2d:88:35">f0:5d:2d:88:35</a> brd <a class="moz-txt-link-freetext" href="ff:ff:ff:ff:ff:ff">ff:ff:ff:ff:ff:ff</a><br>
        3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
        noqueue state UP group default qlen 1000<br>
            link/ether 42:4c:23:6c:4d:7f brd <a class="moz-txt-link-freetext" href="ff:ff:ff:ff:ff:ff">ff:ff:ff:ff:ff:ff</a><br>
            inet 192.168.1.104/23 brd 192.168.1.255 scope global
        noprefixroute br0<br>
               valid_lft forever preferred_lft forever<br>
            inet6 <a class="moz-txt-link-freetext" href="fe80::e54c:73f4:f662:95fb/64">fe80::e54c:73f4:f662:95fb/64</a> scope link noprefixroute <br>
               valid_lft forever preferred_lft forever<br>
        4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500
        qdisc noqueue state DOWN group default qlen 1000<br>
            link/ether 52:54:00:5b:<a class="moz-txt-link-freetext" href="e6:4e">e6:4e</a> brd <a class="moz-txt-link-freetext" href="ff:ff:ff:ff:ff:ff">ff:ff:ff:ff:ff:ff</a><br>
            inet 192.168.100.1/24 brd 192.168.100.255 scope global
        virbr0<br>
               valid_lft forever preferred_lft forever<br>
        5: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
        noqueue master br0 state UNKNOWN group default qlen 1000<br>
            link/ether <a class="moz-txt-link-freetext" href="fe:00:27:dc:06:7e">fe:00:27:dc:06:7e</a> brd <a class="moz-txt-link-freetext" href="ff:ff:ff:ff:ff:ff">ff:ff:ff:ff:ff:ff</a><br>
            inet6 <a class="moz-txt-link-freetext" href="fe80::fc00:27ff:fedc:67e/64">fe80::fc00:27ff:fedc:67e/64</a> scope link <br>
               valid_lft forever preferred_lft forever<br>
        6: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
        noqueue master br0 state UNKNOWN group default qlen 1000<br>
            link/ether <a class="moz-txt-link-freetext" href="fe:54:00:80:eb:73">fe:54:00:80:eb:73</a> brd <a class="moz-txt-link-freetext" href="ff:ff:ff:ff:ff:ff">ff:ff:ff:ff:ff:ff</a><br>
            inet6 <a class="moz-txt-link-freetext" href="fe80::fc54:ff:fe80:eb73/64">fe80::fc54:ff:fe80:eb73/64</a> scope link <br>
               valid_lft forever preferred_lft forever</i></p>
    <p>The key sections (eliminating all my lease reservations and such)
      of my dhcp4.conf look like this:</p>
    <p><i>{<br>
          "Dhcp4": {<br>
            "interfaces-config": {<br>
            "interfaces": [ "br0" ]<br>
            },<br>
            "control-socket": {<br>
                "socket-type": "unix",<br>
                "socket-name": "/run/kea/kea4-ctrl-socket"<br>
            },<br>
            "lease-database": {<br>
                "type": "memfile",<br>
                "lfc-interval": 3600<br>
            },<br>
            "multi-threading": {<br>
                "enable-multi-threading": true,<br>
                "thread-pool-size": 2,<br>
                "packet-queue-size": 14<br>
            },<br>
            "client-classes": [<br>
              {<br>
                "name": "homeauto"<br>
              },<br>
              {<br>
                "name": "normal",<br>
                "test": "not member('homeauto')"<br>
              }<br>
            ],<br>
            "option-data": [<br>
              {<br>
                "space": "dhcp4",<br>
                "name": "domain-name",<br>
                "code": 15,<br>
                "data": "skfaf.servesarcasm.com"<br>
              },<br>
              {<br>
                "space": "dhcp4",<br>
                "name": "domain-name-servers",<br>
                "code": 6,<br>
                "data": "192.168.1.1"<br>
              },<br>
              {<br>
                "space": "dhcp4",<br>
                "name": "broadcast-address",<br>
                "code": 28,<br>
                "data": "192.168.1.255"<br>
              },<br>
              {<br>
                "space": "dhcp4",<br>
                "name": "routers",<br>
                "code": 3,<br>
                "data": "192.168.1.1"<br>
              },<br>
              {<br>
                "space": "dhcp4",<br>
                "name": "subnet-mask",<br>
                "code": 1,<br>
                "data": "255.255.254.0"<br>
              }<br>
            ],<br>
            "valid-lifetime": 43200,<br>
            "renew-timer": 21600,<br>
            "rebind-timer": 32400,<br>
            "expired-leases-processing": {<br>
                "reclaim-timer-wait-time": 3600,<br>
                "hold-reclaimed-time": 172800,<br>
                "max-reclaim-leases": 0,<br>
                "max-reclaim-time": 0<br>
            },    <br>
            "dhcp-ddns": {<br>
              "enable-updates": false<br>
            },<br>
            "authoritative": true,<br>
            "hooks-libraries": [<br>
               {<br>
               "library":
        "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_lease_cmds.so"<br>
               },<br>
               {<br>
               "library":
        "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_stat_cmds.so"<br>
               },<br>
               {<br>
               "library":
        "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_ha.so",<br>
               "parameters": {<br>
                    "high-availability": [ {<br>
                    "this-server-name": "macserver",<br>
                    "mode": "hot-standby",<br>
                    "heatbeat-delay": 10000,<br>
                    "max-response-delay": 60000,<br>
                    "max-ack-delay": 5000,<br>
                    "max-unacked-clients": 5,<br>
                    "sync-timeout": 60000,<br>
                    "multi-threading": {<br>
                          "enable-multi-threading": true,<br>
                          "http-dedicated-listener": true,<br>
                          "http-listener-threads": 0,<br>
                          "http-client-threads": 0<br>
                    },<br>
                    "peers": [<br>
                       {<br>
                          "name": "macserver",<br>
                          "url": <a class="moz-txt-link-rfc2396E"
          href="http://192.168.1.104:8003/">"http://192.168.1.104:8003/"</a>,<br>
                          "role": "primary"<br>
                       },<br>
                       {   <br>
                          "name": "oldhp",<br>
                          "url": <a class="moz-txt-link-rfc2396E"
          href="http://192.168.1.110:8003/">"http://192.168.1.110:8003/"</a>,<br>
                          "role": "standby"<br>
                        }<br>
                      ]<br>
                    } ]<br>
                  }<br>
                }</i></p>
    <p><i><br>
      </i> </p>
    <p><i>],<br>
             "shared-networks": [<br>
             {<br>
               "name": "macnet",<br>
               "subnet4": [<br>
                 {<br>
                  "id": 1,<br>
                  "subnet": "192.168.1.0/24",<br>
                  "pools": [<br>
                    {<br>
                      "pool": "192.168.1.124 - 192.168.1.198",<br>
                      "client-class": "normal"<br>
                    }<br>
                  ],<br>
                    "option-data": [<br>
                     {<br>
                       "space": "dhcp4",<br>
                       "name": "routers",<br>
                       "code": 3,<br>
                       "data": "192.168.1.1"<br>
                     }<br>
                ]<br>
                },<br>
                {<br>
                  "id": 2,<br>
                  "subnet": "192.168.0.0/23",<br>
                  "pools": [<br>
                    {<br>
                   "pool": "192.168.0.150 - 192.168.0.175",<br>
                    "client-class": "homeauto"<br>
                    }<br>
                  ],<br>
                   "option-data": [<br>
                     {<br>
                       "space": "dhcp4",<br>
                       "name": "routers",<br>
                       "code": 3,<br>
                       "data": "192.168.1.1"<br>
                     },<br>
                     {<br>
                       "space": "dhcp4",<br>
                       "name": "domain-name-servers",<br>
                       "code": 6,<br>
                       "data": "192.168.1.1"<br>
                     }<br>
                ]<br>
                }<br>
              ]<br>
              }<br>
            ],<br>
            "loggers": [<br>
            {<br>
               "name": "kea-dhcp4",<br>
               "output_options": [<br>
                  {<br>
                     "output": "/var/log/kea-dhcp4.log",<br>
                     "maxsize": 2048000,<br>
                     "maxver": 4<br>
                     }<br>
                  ],<br>
                  "severity": "INFO",<br>
                  "debuglevel": 0<br>
              }<br>
            ]<br>
          }<br>
        }</i></p>
    <p><br>
    </p>
    <p>I changed my "interface" to "br0" because my previous setup
      (exerp below) stopped working when I started the br0 network. </p>
    <p> <i>{<br>
          "Dhcp4": {<br>
            "interfaces-config": {<br>
            "interfaces": [ "enp34s0" ]</i></p>
    <p>Changing the interface to "br0" has had exactly no effect.</p>
    <p>I realise that I have missed something fundamental and I am
      wasting your valuable time. However I have been trying to sort
      this out for days (in whatever spare time is available) and I have
      acheived nothing. Each time I start kea-dhcp-server on my main
      server it appears in Stork with no errors, systemd says its
      running fine and my HA standby stops providing dhcp. Unfortunately
      if I then turn on a device it simply does not receive an ip lease.
      If I turn off DHCP on the main server then eventually the standby
      starts takes over dhcp again and network functions return to
      normal (though this takes a very long time & sometimes
      requires a restart of kea-dhcp4-server on the stanby server,
      perhaps another error to fix later). Even my new VMs receive ips
      seamlessly from the standby server.</p>
    <p>If you need to see some logs, please tell me where I can retreive
      them because I haven't been able to work that out either (I think
      I need to change my logging parameters in kea-dhcp4.conf). I used
      Wireshark to capture network coms before and after turning on the
      main dhcp server but I then realised that I was too
      stupid/ignorant to work out what was going on from the output. I
      can provided the Wireshark output, but it is a large file (ran it
      for too long and filtered it poorly, I think) that I won't inflict
      on you unless you wish it.</p>
    <p>Please give me some ideas of what I have to do to
      troubleshoot/fix this.</p>
    <p>Regards</p>
    <p>Stuart MacGregor</p>
    <p><br>
    </p>
    <p><br>
    </p>
  </body>
  <lt-container></lt-container>
</html>