← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2040242] Re: [ipam] Why prevent first ip < (subnet.first + 1) if version of subnet is ipv6

 

This LP doesn't seem to be a valid bug, based on the feedback provided
in the associated code review:
https://review.opendev.org/c/openstack/neutron/+/899374. Let's continue
the conversation in Gerrit and we can reclassify this LP based on that
conversation

** Changed in: neutron
       Status: In Progress => Invalid

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/2040242

Title:
  [ipam] Why  prevent first ip < (subnet.first + 1) if version of subnet
  is ipv6

Status in neutron:
  Invalid

Bug description:
  As we know, we can use ipv6 address end with '0' like 2001::.

  But when we allocate ipv6 pool use neutron, we could find the error like follows:
  neutron net-create net-v6
  neutron subnet-create --ip-version 6 --allocation-pool start=2001::,end=2001::2 net-v6 2001::/64
  The allocation pool 2001::-2001::2 spans beyond the subnet cidr 2001::/64.
  Neutron server returns request_ids: ['req-9a6569ed-52d7-4c3f-ad7e-8986a041a347']

  We found that the error info from the func
  'validate_allocation_pools':

          else:  # IPv6 case
              subnet_first_ip = netaddr.IPAddress(subnet.first + 1)
              subnet_last_ip = netaddr.IPAddress(subnet.last)

          LOG.debug("Performing IP validity checks on allocation pools")
          ip_sets = []
          for ip_pool in ip_pools:
              start_ip = netaddr.IPAddress(ip_pool.first, ip_pool.version)
              end_ip = netaddr.IPAddress(ip_pool.last, ip_pool.version)
              if (start_ip.version != subnet.version or
                      end_ip.version != subnet.version):
                  LOG.info("Specified IP addresses do not match "
                           "the subnet IP version")
                  raise exc.InvalidAllocationPool(pool=ip_pool)
              if start_ip < subnet_first_ip or end_ip > subnet_last_ip:
                  LOG.info("Found pool larger than subnet "
                           "CIDR:%(start)s - %(end)s",
                           {'start': start_ip, 'end': end_ip})
                  raise exc.OutOfBoundsAllocationPool(
                      pool=ip_pool,
                      subnet_cidr=subnet_cidr)

  Why neutron ipam force first ip of one pool >= (subnet.first + 1) if
  version of subnet is ipv6 ?

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/2040242/+subscriptions



References