Hi Kraishak,
While you are in the testing phase, you may want to consider adding
the kea-dhcp4.ha-hooks logger at debug level which will give you a lot
of detail about what is going on:
"loggers": [
{
"name": "kea-dhcp4.ha-hooks",
"output_options": [
{
"output": "/var/log/kea-dhcp4-ha-hooks.log"
}
],
"severity": "DEBUG",
"debuglevel": 99
}
]
On Wed, May 10, 2023 at 11:27 AM Kraishak Mahtha <[email protected]> wrote:
>
> Hi Peter,
>
> I am using a kea-HA in load balancing but before I deploy it in my production
> environment, I am testing all the cases in my local lab to understand the
> flow of kea-dhcp.
>
> Initially, I send the discover packets to both the primary and failover and
> it worked fine, later I tried the following cases:
> Case 1) Primary and failover are live but somehow failover server is not
> granting the leases or packets not reaching to failover
>
> --> At this point logically the primary has to handle all the requests but
> when I test few of the client packets got dropped as part of the explanation
> you suggested that based on the hash value it will decide and they get
> dropped, so I decided to test a case where my kea-servers are in load
> balancing and because of some reason if the failover box is down.
>
> Case 2) Primary and failover in load balance but failover server is
> down(Network issue or Power failure for that failover box some unexpected
> cases) ----->This is a general valid use case
> In order to achieve this case I manually stopped the kea-dhcp service on the
> failover box which is equivalent to my case and now I want to see what
> happens for all the requests
> --> Logically now all the requests are to be handled by the primary till the
> failover comes up, so now I send the requests to the primary server but still
> the packets get dropped so while I am debugging I found that the failover
> state is in communication-recovery state --(output of status-get command),
> for the primary to take the full control it has to be in partner down state,
> so I am waiting for the status to get an update as partner down.
>
> To get into partner downstate here we have two deciding parameters as per my
> config (to my understanding please correct me if I am wrong)
> i)max-response-delay: 60000 milliseconds-> After the completion of this
> duration it has to be set it to partner-down automatically, so even after
> this duration I still see the state as a communication-recovery state.
> ii)max-unacked-clients: 13 --> After this count the primary has to set into
> partner -down, I found that this param value can be seen from the status-get
> command and while I am testing I can see that at one point it reached 14 and
> in my config, it is 13 but still the state is in the communication-recovery
> state so why did the primary didn't change its state to partner down?
> if my understanding of the above parameters is wrong correct me
>
> Now I have the following questions:
> 1)Doesn't primary grant a lease to a client whose hash value says that it has
> to grant by failover even if the DISCOVER packet has max-ack-delay greater
> than the value specified in the config?
> --> Generally in ISC DHCP apart from hash value calculation the server checks
> the Load Balance Max Secs parameter in the client discover packet and if the
> value exceeds the given value in the config, even if the hash value says that
> the lease has to be granted by failover the primary assumes that failover box
> might have some issue while granting so let me grant a lease... So do we have
> a similar concept in kea? If so, what is the equivalent parameter of Load
> Balance Max Secs in kea?
>
> 2) When doesn't the primary server change its state to partner-down
> automatically in my case? Do we have any other deciding factor to get it
> changed?
>
> Thanks
> Kraishak
>
>
> On Wed, May 10, 2023 at 7:35 PM Peter Davies <[email protected]> wrote:
>>
>> Hi Kraishak,
>> Why would you want to stop the secondary HA server? What
>> are you trying to achieve?
>>
>> In answer to your questions:
>> 1/2) When a HA server loses its connection to its partner, it starts a
>> "failure
>> detection" process. When the value of max-unacked-clients is not "0", the
>> server
>> uses the values of the "max-ack-delay" and "max-unacked-clients" to discover
>> if
>> it should take over processing its partner's clients' requests.
>> Your settings are:
>> "max-ack-delay": 10000,
>> "max-unacked-clients": 13
>>
>> This means that after communication has been interrupted for
>> "max-response-delay"
>> (10000 milisecs), the primary will start the "failure detections" process.
>> The
>> process will wait until it has "seen" 13 DHCP packets that have a "secs"
>> field
>> with a value of 10000 or greater before starting to process the partners'
>> client
>> requests.
>>
>> see:
>> https://kea.readthedocs.io/en/kea-2.3.7/arm/hooks.html#load-balancing-configuration
>>
>> 3) There are commands to manipulate the state the servers are in. See the
>> "host-
>> ha-maintenance" commands at:
>> https://kea.readthedocs.io/en/kea-2.3.7/arm/hooks.html#control-commands-for-high-availability
>>
>> But why would you want to do this? Supposing you want all client requests to
>> be processed by
>> one server and have the secondary active only when the primary is
>> unavailable. In that case,
>> you should consider using the "hot-standby" HA configuration.
>>
>> Kind Regards Peter
>
> --
> ISC funds the development of this software with paid support subscriptions.
> Contact us at https://www.isc.org/contact/ for more information.
>
> To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
>
> Kea-users mailing list
> [email protected]
> https://lists.isc.org/mailman/listinfo/kea-users
--
ISC funds the development of this software with paid support subscriptions.
Contact us at https://www.isc.org/contact/ for more information.
To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
Kea-users mailing list
[email protected]
https://lists.isc.org/mailman/listinfo/kea-users