Replies: 9 comments 43 replies
-
The problem with that current dhcpcd in master mode has no ability to stop servicing Ethernet ports at runtime (Without restarting the daemon). Per port ip renew did not work either. The same goes for IPv6 there must be ability at runtime to enable/disable IPv6 on each port independently. Connectivity on other ports not suject to reconfiguration must not be lost. |
Beta Was this translation helpful? Give feedback.
-
First pass at this here: https://github.com/NetworkConfiguration/dhcpcd/tree/manager_only Likely some issues and hopefully some more code can be removed as well. |
Beta Was this translation helpful? Give feedback.
-
Hi Roy, I don't think this is the right direction. I'd like to help fix whatever problems exist with the per-interface approach instead, but to do that we first have to be more specific about the problems that need addressing. From the above I get:
I don't quite grock the current overall privsep design yet so perhaps you could elaborate on how things are done now? --Daniel |
Beta Was this translation helpful? Give feedback.
-
FYI, I have this mostly working in Alpine linux 3.19 with ifupdown-ng by making the following changes:
There may be a more subtle way to get dhcpcd to start before any interfaces are ifup'ed but the first 2 steps as brute force work well enough. |
Beta Was this translation helpful? Give feedback.
-
I don't like this idea. Using dhcpcd as a drop-in replacement for dhclient very much requires being able to start dhcpcd on a per-interface basis. Expecting it to always run it as a daemon that manages any and all interfaces is not desirable. |
Beta Was this translation helpful? Give feedback.
-
Which is precisely what's problematic with this idea of forcing dhcpcd into a daemon. It amounts to imposing it as a one-stop interface configuring tool even though it lacks obvious features such as this. Basically, doing this would amount to killing dhcpcd's userbase. The userbase is not laptops running dhcpcd-gtk. It is hosts configured via ifupdown. |
Beta Was this translation helpful? Give feedback.
-
@rsmarples I'm continuing the conversation from #276 here, since some of my question could use a broader audience.
We shouldn't leave a daemon started in the initramfs running when the init process starts. It sounds like you're amenable to keeping Do I understand correctly that calling Will
Correct? @rsmarples Do my assumptions above make sense? Am I missing anything? Cloud-init runs early in boot (started by the init system) and will have similar needs once its removal of isc-dhclient dependency is complete. |
Beta Was this translation helpful? Give feedback.
-
Prefix delegation works just fine.All the deny interfaces option does is stop dhcpcd from automatically starting on those listed interfaces. ---- On Sun, 10 Mar 2024 18:06:45 +0000 ***@***.*** wrote ----
I just noticed another problem with this proposal. Roy's current idea would be to have a default config that denes all interfaces and then issue e.g. "dhcpcd -k enp0s3" to the daemonized dhcpcd to raise that interface. How would we handle prefix delegation in a dhcpcd.conf whose default is to deny all interfaces? Would there be a command line option to specify the PD interfaces?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
One thing I need for my project is the ability to independently send Release messages for IPv4 and IPv6 on more than one interface. Right now, the only way I can accomplish that is to run separate processes for each. Can this kind of thing be incorporated into the roadmap for version 11? |
Beta Was this translation helpful? Give feedback.
-
The classical way of starting DHCP is saying "start DHCP on this interface" and you would get a process on the interface.
For a single interface system, or only running one DHCP process this works well - but cannot bind the unspecified address to a port as only one process can do this. So to work around, we bind the address we leased to a port. For DHCP this works well.
Enter IPv6. We have the same issues, just a lot more because we have many more addresses in play. You start with the LL address, and generally get one prefix from RA, which could translate into two addresses if using temporary addresses. You then have DHCPv6 addresses and maybe a Delegated Prefix if on a router which then goes into how ever many interfaces you're delegating to for an address as well. To make matters worse, for RA there is no address or port to bind to - so only one process gets then Router Announcements.
And then we have privsep - we need to launch a process per address just to listen to it because addresses can change and only root can bind to the port we need and we really don't want a root process listening to the port.
No, this is far too complicated in today's world and dhcpcd has catered to the likes of netifrc and ifup for as long as it can.
dhcpcd-11 will require starting as a service in the same way as apache, postfix or dnsmasq. We've been able to do this since dhcpcd-5 and I've been encouraging this since. So this should hardly be new, but it will now be a requirement.
dhcpcd-11 will likely have a much reduce set of commands from the command line, but the dhcpcd.conf file will remain unchanged.
Any commentary on these proposed changes are welcome.
Beta Was this translation helpful? Give feedback.
All reactions