<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>