[pve-devel] [RFC cluster/manager/network 0/6] Add support for DHCP servers to SDN
Stefan Hanreich
s.hanreich at proxmox.com
Fri Sep 8 15:42:58 CEST 2023
This patch series adds support for automatically deploying dnsmasq as a DHCP
server to a simple SDN Zone.
While certainly not 100% polished on some ends (looking at restarting systemd
services in particular), the general idea behind the mechanism shows. I wanted
to gather some feedback on how I approached designing the plugins and the
config regeneration process before comitting to this design by creating an API
and UI around it.
For your testing convenience I've provided deb packages on our share:
/path/to/nasi/iso/packages/shan-sdn-dhcp
You need to install dnsmasq (and disable it afterwards):
apt install dnsmasq && systemctl disable --now dnsmasq
You can use the following example configuration for deploying a DHCP server in
a SDN subnet:
/etc/pve/sdn/dhcp.cfg:
dnsmasq: nat
/etc/pve/sdn/zones.cfg:
simple: DHCPNAT
ipam pve
/etc/pve/sdn/vnets.cfg:
vnet: dhcpnat
zone DHCPNAT
/etc/pve/sdn/subnets.cfg:
subnet: DHCPNAT-10.1.0.0-16
vnet dhcpnat
dhcp-dns-server 10.1.0.1
dhcp-range server=nat,start-address=10.1.0.100,end-address=10.1.0.200,lease-time=86400
dhcp-range server=nat,start-address=10.1.1.100,end-address=10.1.1.200,lease-time=86400,dns-server=10.1.0.2
gateway 10.1.0.1
snat 1
Then apply the SDN configuration:
pvesh set /cluster/sdn
Be careful that after configuring dhcp-range you do not save the subnet config
from the Web UI, since the dhcp-range line will vanish from the config.
pve-cluster:
Stefan Hanreich (1):
cluster files: add dhcp.cfg
src/PVE/Cluster.pm | 1 +
src/pmxcfs/status.c | 1 +
2 files changed, 2 insertions(+)
pve-manager:
Stefan Hanreich (1):
sdn: regenerate DHCP config on reload
PVE/API2/Network.pm | 1 +
1 file changed, 1 insertion(+)
pve-network:
Stefan Hanreich (4):
sdn: dhcp: add abstract class for DHCP plugins
sdn: dhcp: subnet: add DHCP options to subnet configuration
sdn: dhcp: add DHCP plugin for dnsmasq
sdn: dhcp: regenerate config for DHCP servers on reload
debian/control | 1 +
src/PVE/Network/SDN.pm | 11 ++-
src/PVE/Network/SDN/Dhcp.pm | 122 ++++++++++++++++++++++++++++
src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 115 ++++++++++++++++++++++++++
src/PVE/Network/SDN/Dhcp/Makefile | 8 ++
src/PVE/Network/SDN/Dhcp/Plugin.pm | 76 +++++++++++++++++
src/PVE/Network/SDN/Makefile | 4 +-
src/PVE/Network/SDN/SubnetPlugin.pm | 43 ++++++++++
8 files changed, 377 insertions(+), 3 deletions(-)
create mode 100644 src/PVE/Network/SDN/Dhcp.pm
create mode 100644 src/PVE/Network/SDN/Dhcp/Dnsmasq.pm
create mode 100644 src/PVE/Network/SDN/Dhcp/Makefile
create mode 100644 src/PVE/Network/SDN/Dhcp/Plugin.pm
Summary over all repositories:
11 files changed, 380 insertions(+), 3 deletions(-)
--
murpp v0.4.0
More information about the pve-devel
mailing list