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 <kraishak....@gmail.com> 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 <pet...@isc.org> 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 > Kea-users@lists.isc.org > 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 Kea-users@lists.isc.org https://lists.isc.org/mailman/listinfo/kea-users