From: Stefan Lendl <s.lendl@proxmox.com>
To: "DERUMIER, Alexandre" <alexandre.derumier@groupe-cyllene.com>
Cc: "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: Thu, 16 Nov 2023 13:53:45 +0100 [thread overview]
Message-ID: <87bkbt3lly.fsf@gmail.com> (raw)
In-Reply-To: <224f6b39b0d45e386dd32b1881169c17a89b2917.camel@groupe-cyllene.com>
"DERUMIER, Alexandre" <alexandre.derumier@groupe-cyllene.com> writes:
>
> I can reproduce easily 100%:
>
>
> - create a nic with mac:xx:xx:xx:xY ip: 192.168.0.10
> - start vm. (the ether file is filed + reload)
> - the guest do a dhcp request, the dnsmasq respond a store the lease
> in /var/lib/misc/zone.lease
>
> - delete the nic
>
>
> - add a new nic in same vm or another vm, free found ip is
> 192.168.0.10 (because it was removed)
>
>
> - start the vm (the ether file is upgrade with the new ip mac + reload)
>
> - the guest do a dhcp request: the dnsmasq can't respond (with my last
> patch) or give a dynamic ip in the range (with current implementation)
> because it's still see his lease file the old mac:ip assocation
>
I experimented with several approaches with dnsmasq leases.
I cannot reproduce your example because it works in my examples.
My procedure:
dnsmasq config:
dhcp-range=set:DHCPNAT-10.1.0.0-16,10.1.0.0,static,255.255.0.0,infinite
VM 108 net1: MAC: bc:24:11:ad:0e:2e
qm set 108 --delete net1
dnsmasq lease file still contains the lease for MAC bc:24:11:ad:0e:2e
qm set 108 --net1 model=virtio,bridge=dhcpnat
- ethers file gets updated to new mac: BC:24:11:51:10:AD
- soon after dnsmasq lease gets updated to the new lease as well!
- correct IP assigned in the VM
I also tried:
- ip link set down > ip link set upi
- reboot
- force Stop the VM
So far, *this all works!*
I also tried with a short dhcp lease in dnsmasq. With this
configuration, the new IP will even propagate to the VM and set
correctly after IPAM update.
In my tests I used 30s but something like 5 or 10min should be fine as well.
dhcp-range=set:DHCPNAT-10.1.0.0-16,10.1.0.0,static,255.255.0.0,30
The VM is polling every ~60s as seen on the wire with tcpdump:
tcpdump -i dhcpnat -n port 67 or port 68
After I manually update the ethers file and `systemctl *reload*
dnsmasq`, it will respond with the new IP.
dnsmasq is running *locally only* so any DHCP queries are limited to the
local bridge.
The biggest problem and for me the reason I think it's not a feasible
solution, is that dnsmasq becomes a single point of failure.
If dnsmasq is offline, all of the VMs will have *NO IP*.
next prev parent reply other threads:[~2023-11-16 12:53 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
[not found] ` <87il632clh.fsf@gmail.com>
2023-11-15 20:50 ` DERUMIER, Alexandre
2023-11-16 12:53 ` Stefan Lendl [this message]
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=87bkbt3lly.fsf@gmail.com \
--to=s.lendl@proxmox.com \
--cc=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal