I think it is not a bug. When needing to create a point to point connection via
a subnet, /30 is the recommended cidr.
Because the first IP address is considered as Network ID, and the last IP
address is considered as broadcast address, the other IP address can be
allocated, in a given subnet.
** Changed in: neutron
Status: Confirmed => 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/1580927
Title:
spans beyond the subnet for /31 and /32 in IPam
Status in neutron:
Invalid
Bug description:
summary: When needing to create a point to point connection via a
subnet, generally and /31 is the recommended cidr. Neutron supports
/31 via disabling dhcp and gateway on a subnet. However, IPam does
not provide the allocation pool of the subnet properly and a VM cannot
be created.
Steps to reproduce
root@ubuntu:~# neutron subnet-create --disable-dhcp --no-gateway
--cidr=10.14.0.20/31 --name bug-subnet 69c5342a-5526-4257-880a-f8fd2e633de9
Created a new subnet:
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| allocation_pools | |
| cidr | 10.14.0.20/31 |
| dns_nameservers | |
| enable_dhcp | False |
| gateway_ip | |
| host_routes | |
| id | 63ce4e26-9838-4fa3-b2d5-e59f88f5b7ce |
| ip_version | 4 |
| ipv6_address_mode | |
| ipv6_ra_mode | |
| name | bug-subnet |
| network_id | 69c5342a-5526-4257-880a-f8fd2e633de9 |
| subnetpool_id | |
| tenant_id | ca02fc470acc4a27b468dff32ee850b2 |
+-------------------+--------------------------------------+
root@ubuntu:~# neutron subnet-update --allocation-pool
start=10.14.0.20,end=10.14.0.21 bug-subnet
The allocation pool 10.14.0.20-10.14.0.21 spans beyond the subnet cidr
10.14.0.20/31.
Recommended Fix:
in db/ipam_backend_mixin.py :: function: validate_allocation_pools
~~lines: 276
if start_ip < subnet_first_ip or end_ip > subnet_last_ip:
LOG.info(_LI("Found pool larger than subnet "
"CIDR:%(start)s - %(end)s"),
{'start': start_ip, 'end': end_ip})
raise n_exc.OutOfBoundsAllocationPool(
pool=ip_pool,
subnet_cidr=subnet_cidr)
This if block should have a special case for ipv4 /31 and /32 for "<= and
>=" :
start_ip <= subnet_first_ip or end_ip >= subnet_last_ip
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1580927/+subscriptions
--
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help : https://help.launchpad.net/ListHelp