[pve-devel] DHCP server

Michael Rasmussen mir at datanom.net
Sat Jul 19 17:18:42 CEST 2014

On Sat, 19 Jul 2014 14:27:14 +0000
Dietmar Maurer <dietmar at proxmox.com> wrote:

> Please coordinate this with Alexandre. But I think a prototype would be
> interesting, because using perl gives use most flexibility.
As I recall it Alexandre were opting for dnsmasq so I don't think our
efforts will interfere. I am also leaning more to a Perl solution
because we will not depend on the development of dnsmasq and also
dnsmasq is tailored for many other purposes as well.

> Does it work for all client OS we use?
I can test (I have these clients installed) with the following clients:
- Windows 7 enterprise edition (XP is EOL and I do not want to install
  windows 8 and 8.1 since I will never be using them. The same applies
  to windows server 2008(r1|r2), 2010(r1) and 2013)
- FreeBSD 8+9+10
- OpenBSD 5
- Omnios 151010
- RHEL/CentOS 5,6,7
- Debian 7 + testing and unstable
- Ubuntu 12.04 and 14.04

Anyone missing apart from windows server?

> Sure, I also think we do not need those other features.
I will prepare a prototype.

I have made these decisions for design:
1) Leases and config are stored in files placed in /etc/pve to
accommodate sharing between nodes as well as HA, perhaps
in /etc/pve/priv/dhcp. Because of the shared nature how should
distribution be handled?
2) A new tab should be created in the cluster page named DHCP server. A
simple checkbox to enable/disable the server. This config is saved in
datacenter.cfg (dhcpd: 0|1)
3) When a node starts it will read the option dhcpd to deside whether
to start dhcp service or not.
4) There should be some sort of monitoring of this config so that all
nodes react properly to disabling or enabling dhcp service.
5) The new tab should present the user a drop-down with known
interfaces for which dhcp services can be enabled. Choosing an
interface will open a config block where the following options is
   - range in net
   - lease time
   - renew time
   - gateway
   - dns server
   - optional list of MAC's which will be allowed to request an IP
   - optional list of MAC's which will be assigned a 'static' IP
   - optional ntp server

For each of the config blocks should be possible to disable/enable and
delete -> a checkbox for enable/disable and a button for delete.

Anything else missing above?

I will begin looking into the making the perl prototype others will in
parallel could start implementing the tab and rpc part for
configuration and control since I believe this part will be necessary
even if the dnsmasq road is chosen.

Michael Rasmussen

Get my public GnuPG keys:
michael <at> rasmussen <dot> cc
mir <at> datanom <dot> net
mir <at> miras <dot> org
/usr/games/fortune -es says:
  Live within your income, even if you have to borrow to do so.
		-- Josh Billings
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://pve.proxmox.com/pipermail/pve-devel/attachments/20140719/1f5d4213/attachment.sig>

More information about the pve-devel mailing list