diff options
| author | Stefan Lendl <s.lendl@proxmox.com> | 2024-04-05 15:17:55 +0200 | 
|---|---|---|
| committer | Thomas Lamprecht <t.lamprecht@proxmox.com> | 2024-04-08 17:57:18 +0200 | 
| commit | 5fd3da139b06f549847daacc34bae4baf4800dd9 (patch) | |
| tree | 640e42dfe0f69e00c724632332f0ccef9b22d088 | |
| parent | e06301af3a6566fae5be3ecf7bf07ce5680876a6 (diff) | |
sdn: dhcp: request both IPv4 and IPv6 addresses on VM start
If previously an IP was allocated in the IPAM, but a new subnet added
for the other IP version, we need to allocate an IP in the new subnet.
Signed-off-by: Stefan Lendl <s.lendl@proxmox.com>
Reviewed-by: Stefan Hanreich <s.hanreich@proxmox.com>
Tested-by: Stefan Hanreich <s.hanreich@proxmox.com>
| -rw-r--r-- | src/PVE/Network/SDN/Vnets.pm | 10 | 
1 files changed, 4 insertions, 6 deletions
diff --git a/src/PVE/Network/SDN/Vnets.pm b/src/PVE/Network/SDN/Vnets.pm index 03609b7..4542b70 100644 --- a/src/PVE/Network/SDN/Vnets.pm +++ b/src/PVE/Network/SDN/Vnets.pm @@ -196,12 +196,10 @@ sub add_dhcp_mapping {      return if !$zone->{ipam} || !$zone->{dhcp};      my ($ip4, $ip6) = PVE::Network::SDN::Vnets::get_ips_from_mac($vnetid, $mac); -    if ( ! ($ip4 || $ip6) ) { -	print "No IP found for MAC: $mac for VMID:$vmid\n"; -	add_next_free_cidr($vnetid, $name, $mac, "$vmid", undef, 1); -	($ip4, $ip6) = PVE::Network::SDN::Vnets::get_ips_from_mac($vnetid, $mac); -	print "got new IP from IPAM: $ip4 $ip6\n"; -    } +    add_next_free_cidr($vnetid, $name, $mac, "$vmid", undef, 1, 4) if ! $ip4; +    add_next_free_cidr($vnetid, $name, $mac, "$vmid", undef, 1, 6) if ! $ip6; + +    ($ip4, $ip6) = PVE::Network::SDN::Vnets::get_ips_from_mac($vnetid, $mac);      PVE::Network::SDN::Dhcp::add_mapping($vnetid, $mac, $ip4, $ip6) if $ip4 || $ip6;  }  | 
