<div dir="ltr"><div dir="ltr">Hi all, <div><p>I was previously using Kea version 2.6, where my server configuration was structured as outlined below. I am currently upgrading to the latest Kea version and planning to implement a hub-spoke High Availability (HA) architecture, with an additional server acting as a backup in hot-standby mode.</p>
<p>While working on this transition, I am facing some uncertainty regarding how address pools should be associated within the server failover relationship in this model. During my review of the documentation, I came across the <code>ha-server-name</code> parameter under user context; however, its role in the updated configuration is not entirely clear to me.</p>
<p>In the earlier setup, when multiple pools were defined within a subnet, we used client classes to associate specific pools with the DHCP failover configuration. With the newer HA model, I would like to understand whether the same approach should still be followed—i.e., associating client classes with individual pools—or if it is recommended to use <code>user-context</code> (for example, <code>ha-server-name</code>) and allow the server to determine the appropriate pool dynamically, similar to the behavior in ISC DHCP.</p>
<p>Could someone please guide me on the recommended approach for migrating or adapting my existing configuration to the latest version, specifically for a hub-spoke setup?</p><div><br></div><div><br></div><div><i>{"Dhcp4": {<br>    "interfaces-config": {"interfaces": ["ens160"]},<br>    "authoritative": true,<br>    "multi-threading": {<br>        "packet-queue-size": 28,<br>        "enable-multi-threading": true,<br>        "thread-pool-size": 4<br>    },<br>    "lease-database": {<br>        "name": "/tmp/dhcp4.leases",<br>        "persist": true,<br>        "type": "memfile"<br>    },<br>    "hooks-libraries": [<br>        {<br>            "library": "/var/lib/kea/hooks/lib/dhcp_ha.so",<br>            "parameters": {"high-availability": [{<br>                "mode": "load-balancing",<br>                "heartbeat-delay": 10000,<br>                "trust-anchor": "",<br>                "multi-threading": {<br>                    "http-dedicated-listener": true,<br>                    "enable-multi-threading": true,<br>                    "http-client-threads": 4,<br>                    "http-listener-threads": 4<br>                },<br>                "max-response-delay": 60000,<br>                "cert-file": "",<br>                "this-server-name": "dev-ipv4-stack-remote-20",<br>                "max-ack-delay": 4000,<br>                "peers": [<br>                    {<br>                        "role": "primary",<br>                        "name": "dev-ipv4-stack-remote-20",<br>                        "auto-failover": true,<br>                        "url": "<a href="http://10.1.11.20:8001" target="_blank">http://10.1.11.20:8001</a>"<br>                    },<br>                    {<br>                        "role": "secondary",<br>                        "name": "kea-dhcp-21",<br>                        "auto-failover": true,<br>                        "url": "<a href="http://10.1.11.27:8001" target="_blank">http://10.1.11.27:8001</a>"<br>                    }<br>                ],<br>                "key-file": "",<br>                "max-unacked-clients": 5<br>            }]}<br>        }],<br>    "subnet4": [{<br>        "subnet": "<a href="http://14.0.0.0/24" target="_blank">14.0.0.0/24</a>",<br>        "valid-lifetime": 86400,<br>        "option-data": [<br>            {<br>                "data": "<a href="http://test.com" target="_blank">test.com</a>",<br>                "name": "domain-name"<br>            },<br>            {<br>                "data": "86400",<br>                "name": "dhcp-lease-time"<br>            },<br>            {<br>                "data": "255.255.255.0",<br>                "name": "subnet-mask"<br>            },<br>            {<br>                "data": "14.0.0.1",<br>                "name": "routers"<br>            }<br>        ],<br>        "pools": [<br>            {<br>                "client-class": "allow-client_HA_dev-ipv4-stack-remote-20",<br>                "pool": "14.0.0.12-14.0.0.19"<br>            },<br>            {<br>                "client-class": "allow-client_HA_kea-dhcp-21",<br>                "pool": "14.0.0.2-14.0.0.9"<br>            }<br>        ],<br>        "id": 785075<br>    }],<br>    "client-classes": [<br>        {"name": "deny-client"},<br>        {<br>            "test": "(not(member('deny-client')))",<br>            "name": "allow-client"<br>        },<br>        {<br>            "test": "member('allow-client') and member('HA_dev-ipv4-stack-remote-20')",<br>            "name": "allow-client_HA_dev-ipv4-stack-remote-20"<br>        },<br>        {<br>            "test": "member('allow-client') and member('HA_kea-dhcp-21')",<br>            "name": "allow-client_HA_kea-dhcp-21"<br>        }<br>    ]<br>}}<br><br>Thanks in Advance</i></div></div></div>
</div>