From 5deb06aee7331a5649b5cc94b524d74df6ad8dee Mon Sep 17 00:00:00 2001 From: "Ruben S. Montero" Date: Thu, 25 Mar 2021 12:01:05 +0100 Subject: [PATCH] M #-:Use private address space in Packet IPAM --- src/ipamm_mad/remotes/packet/register_address_range | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/ipamm_mad/remotes/packet/register_address_range b/src/ipamm_mad/remotes/packet/register_address_range index af848a931f..32a942e749 100755 --- a/src/ipamm_mad/remotes/packet/register_address_range +++ b/src/ipamm_mad/remotes/packet/register_address_range @@ -97,10 +97,11 @@ require 'nokogiri' require 'opennebula' require 'oneprovision' require 'ipaddr' +require 'digest' IP_TYPE = %w[public_ipv4 global_ipv4] -DEFAULT_PRIVATE_CIDR = "172.0.0.0/8" +DEFAULT_PRIVATE_CIDR = "172.16.0.0/12" # Add ^ operator to the IPAddr class class IPAddr @@ -149,6 +150,9 @@ begin private_cidr = DEFAULT_PRIVATE_CIDR end + cidr = IPAddr.new(private_cidr) + mask = 0x0FFFFFFFF >> cidr.prefix + packet = Packet::Client.new packet.auth_token = pk_token @@ -173,11 +177,10 @@ begin packet.create_ip(ip) - cidr = IPAddr.new(private_cidr) - ipmd5 = Digest::MD5.hexdigest("#{ip.address}").to_i(16) & 0x0FFFFFF + ipmd5 = Digest::MD5.hexdigest("#{ip.address}").to_i(16) & mask eip = IPAddr.new(ipmd5, Socket::AF_INET) - ipvm = (eip & 0x00FFFFFF) | cidr.mask(8) + ipvm = (eip & mask) | cidr ipgw = ipvm ^ 1 puts <<-EOF