mmmm,it's not so easy. dnsmasq still use a lease file (and need it) for static reversation...
and it keep in memory the reservation too, that mean than we can't reattribute an existing ip, even if we have delete it previouly from reservation/ipam the only way is to delete the lease file, and restart dnsmasq. (reload is not enough :/ ) It'll try to look at dnsmasq code && maybe do test with kea to compare. -------- Message initial -------- De: Alexandre Derumier <[email protected]> Répondre à: Proxmox VE development discussion <pve- [email protected]> À: [email protected] Objet: [pve-devel] [PATCH pve-network] dnsmasq: configure static range for each subnet Date: 15/11/2023 16:13:50 we don't want dynamic lease, simply define each subnet as a static range. dhcp-range defined on a subnet is only used by ipam plugin. This will also allow to use dhcp subnet without need to define a range. Can be usefull for external ipam like phpipam, where you can't define ranges. Signed-off-by: Alexandre Derumier <[email protected]> --- src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm b/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm index 46172c5..2db7f4f 100644 --- a/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm +++ b/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm @@ -112,11 +112,18 @@ sub configure_subnet { sub configure_range { my ($class, $dhcpid, $subnet_config, $range_config) = @_; - my $range_file = "$DNSMASQ_CONFIG_ROOT/$dhcpid/10-$subnet_config- >{id}.ranges.conf", + my $subnet_file = "$DNSMASQ_CONFIG_ROOT/$dhcpid/10-$subnet_config- >{id}.conf"; my $tag = $subnet_config->{id}; - open(my $fh, '>>', $range_file) or die "Could not open file '$range_file' $!\n"; - print $fh "dhcp-range=set:$tag,$range_config->{'start- address'},$range_config->{'end-address'}\n"; + my ($zone, $network, $mask) = split(/-/, $tag); + + if (Net::IP::ip_is_ipv4($network)) { + $mask = (2 ** $mask - 1) << (32 - $mask); + $mask = join( '.', unpack( "C4", pack( "N", $mask ) ) ); + } + + open(my $fh, '>>', $subnet_file) or die "Could not open file '$subnet_file' $!\n"; + print $fh "dhcp-range=set:$tag,$network,static,$mask,infinite\n"; close $fh; } _______________________________________________ pve-devel mailing list [email protected] https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
