The bottom line is that the method you mentioned shouldn't validate the
subnet. It should assume the subnet has been validated and validate the
pool.  It seems to do a adequate job of that.

Perhaps there is a _validate_subnet method that you should be focused on?
(I'd check but I don't have convenient access to the code at the moment)

Carl
On Jan 21, 2014 6:16 PM, "Paul Ward" <wpw...@us.ibm.com> wrote:

> You beat me to it. :)  I just responded about not checking the allocation
> pool start and end but rather, checking subnet_first_ip and subnet_last_ip,
> which is set as follows:
>
>         subnet *=* netaddr*.*IPNetwork(subnet_cidr)
>         subnet_first_ip *=* netaddr*.*IPAddress(subnet*.*first *+* 1)
>         subnet_last_ip *=* netaddr*.*IPAddress(subnet*.*last *-* 1)
>
> However, I'm curious about your contention that we're ok... I'm assuming
> you mean that this should already be handled.   I don't believe anything is
> really checking to be sure the allocation pool leaves room for a gateway, I
> think it just makes sure it fits in the subnet.  A member of our test team
> successfully created a network with a subnet of 255.255.255.255, so it got
> through somehow.  I will look into that more tomorrow.
>
>
>
> Carl Baldwin <c...@ecbaldwin.net> wrote on 01/21/2014 05:27:49 PM:
>
> > From: Carl Baldwin <c...@ecbaldwin.net>
> > To: "OpenStack Development Mailing List (not for usage questions)"
> > <openstack-dev@lists.openstack.org>,
> > Date: 01/21/2014 05:32 PM
> > Subject: Re: [openstack-dev] [neutron] Neutron should disallow /32 CIDR
> >
> > I think there may be some confusion between the two concepts:  subnet
> > and allocation pool.  You are right that an ipv4 subnet smaller than
> > /30 is not useable on a network.
> >
> > However, this method is checking the validity of an allocation pool.
> > These pools should not include room for a gateway nor broadcast
> > address.  Their relation to subnets is that the range of ips contained
> > in the pool must fit within the allocatable IP space on the subnet
> > from which they are allocated.  Other than that, they are simple
> > ranges; they don't need to be cidr aligned or anything.  A pool of a
> > single IP is valid.
> >
> > I just checked the method's implementation now.  It does check that
> > the pool fits within the allocatable range of the subnet.  I think
> > we're good.
> >
> > Carl
> >
> > On Tue, Jan 21, 2014 at 3:35 PM, Paul Ward <wpw...@us.ibm.com> wrote:
> > > Currently, NeutronDbPluginV2._validate_allocation_pools() does some
> very
> > > basic checking to be sure the specified subnet is valid.  One thing
> that's
> > > missing is checking for a CIDR of /32.  A subnet with one IP address
> in it
> > > is unusable as the sole IP address will be allocated to the gateway,
> and
> > > thus no IPs are left over to be allocated to VMs.
> > >
> > > The fix for this is simple.  In
> > > NeutronDbPluginV2._validate_allocation_pools(), we'd check for
> start_ip ==
> > > end_ip and raise an exception if that's true.
> > >
> > > I've opened lauchpad bug report 1271311
> > > (https://bugs.launchpad.net/neutron/+bug/1271311) for this, but
> wanted to
> > > start a discussion here to see if others find this enhancement to be a
> > > valuable addition.
> > >
> > >
> > > _______________________________________________
> > > OpenStack-dev mailing list
> > > OpenStack-dev@lists.openstack.org
> > > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> > >
> >
> > _______________________________________________
> > OpenStack-dev mailing list
> > OpenStack-dev@lists.openstack.org
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to