Leasequery design
We need to implement leasequery mechanism defined in RFC4388 and RFC5007.
This is what people sometimes refer to as basic leasequery. This is something that's relatively straightforward to do. It's a bit like lease4-get and lease6-get done over DHCP packet sent over UDP as normal DHCP packets. We have the backend capability in place. What we're missing is the ability to process leaseuqery packets.
There are three leasequery protocols:
- basic leasequery (RC4388, RFC5007) - a query about a single entry (who has address X, what address does client X have?) is sent over UDP, a response is a single packet.
- bulk leasequery (RFC6926 - v4, RFC5460 - v6). This is a TCP connection. There questions may return multiple answers (give me all leases connected via relay X), the answer is a series of DHCP datagrams sent over TCP. This connection is requestor initiated.
- active leasequery (RFC7724, RFC7653) - This is TCP based. The server provides a service which requestors can subscribe to. Once subscribed, they will receive any lease updates in nearly real-time. This is somewhat similar to what we have in HA.
While in the scope of 1.7.2 we want to only support basic leasequery, it is worth looks at bulk and active from the design perspective. There are customers who are potentially interested in bulk, so it's not far fetched to imagine that we'll be implementing it some time in the future.