From: "DERUMIER, Alexandre" <alexandre.derumier@groupe-cyllene.com>
To: "pve-devel@lists.proxmox.com" <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH pve-network] dnsmasq: configure static range for each subnet
Date: Wed, 15 Nov 2023 16:07:10 +0000 [thread overview]
Message-ID: <509c039d71f3c4c5edf8ebd24529b0d12af74434.camel@groupe-cyllene.com> (raw)
In-Reply-To: <20231115151350.596552-1-aderumier@odiso.com>
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 <aderumier@odiso.com>
Répondre à: Proxmox VE development discussion <pve-
devel@lists.proxmox.com>
À: pve-devel@lists.proxmox.com
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 <aderumier@odiso.com>
---
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;
}
next prev parent reply other threads:[~2023-11-15 16:07 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-15 15:13 Alexandre Derumier
2023-11-15 16:07 ` DERUMIER, Alexandre [this message]
[not found] ` <87il632clh.fsf@gmail.com>
2023-11-15 20:50 ` DERUMIER, Alexandre
2023-11-16 12:53 ` Stefan Lendl
2023-11-16 13:43 ` DERUMIER, Alexandre
2023-11-16 14:09 ` Stefan Lendl
2023-11-17 7:24 ` DERUMIER, Alexandre
2023-11-16 13:52 ` DERUMIER, Alexandre
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=509c039d71f3c4c5edf8ebd24529b0d12af74434.camel@groupe-cyllene.com \
--to=alexandre.derumier@groupe-cyllene.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox