Opened 4 years ago

Last modified 4 years ago

#4549 new enhancement

Load balancing between multiple Kea servers

Reported by: sar Owned by:
Priority: medium Milestone: Outstanding Tasks
Component: dhcp Version: git
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity: N/A
Sub-Project: DHCP Feature Depending on Ticket:
Estimated Difficulty: 0 Add Hours to Ticket: 0
Total Hours: 0 Internal?: no


When used in a HA arrangement each Kea server will respond to all generic requests. This can be inefficient. It would be more efficient to implement some sort of load balancing function to allow
a single server to respond to the first request and all servers to respond to later requests assuming the candidate server is unable to do so.

There are many ways this could be done but one simple one would be to add 3 configuration options
server_count - number of servers in the group
my_server_id - the number of this server within the group
lb_time - the time before a server responds to a client from outside its area.
Each server would then examine some value from the client's message and use that to split the clients into server_count buckets. For clients in its bucket they would respond immediately, for clients that aren't in its bucket it would wait until the clients had been waiting more than lb_time for a response. Something like

if ((secs > lb_time) || ((client_id % server_count) == my_server_id) { process the packet }


Change History (1)

comment:1 Changed 4 years ago by hschempf

  • Milestone changed from Kea-proposed to Outstanding Tasks

per aug 11 team meeting, move to outstanding

Note: See TracTickets for help on using tickets.