Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dhcp-relay: Handling redundancy #2

Open
tohojo opened this issue Aug 18, 2021 · 4 comments
Open

dhcp-relay: Handling redundancy #2

tohojo opened this issue Aug 18, 2021 · 4 comments

Comments

@tohojo
Copy link
Member

tohojo commented Aug 18, 2021

How do we support redundant upstream DHCP servers? Round-robin scheduling
between them? Heartbeat to make sure we know which one(s) are online? Let the
network handle it?

@yoelcaspersen
Copy link
Contributor

If multiple upstream DHCP servers are configured, all servers should receive a copy of DISCOVER and REQUEST packets received as broadcast from the client.

@tohojo
Copy link
Member Author

tohojo commented Oct 5, 2021 via email

@yoelcaspersen
Copy link
Contributor

Both DISCOVER and REQUEST packets should be duplicated to all upstream DHCP servers if they are received as broadcast - it is the way DHCP implements redundancy. All servers that receive a DISCOVER packet will try to make the client an OFFER. Once the client decides which OFFER to use, it will broadcast the REQUEST containing the IP address of the offering DHCP server in the SIADDR field, signaling to other DHCP servers that their offers have been refused.

From a compatibility perspective, the DHCP relay should support at least two, but preferably an arbitrary number of upstream DHCP servers. Those servers may use the same upstream path - does that mean the multicast support cannot help us? Having multiple DHCP servers is a common scenario for ISPs.

Perhaps it would be wiser to aim for a way to send special packets (e.g. DHCP) to a user space daemon (with VLAN tags included one way or the other) instead of manipulating the packets in XDP? I am not sure how packets going the other way (from DHCP server to clients) should be handled in that scenario, though.

@tohojo
Copy link
Member Author

tohojo commented Oct 5, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants