yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #80928
[Bug 1855854] [NEW] [RFE] Dynamic DHCP allocation pool
Public bug reported:
Neuton currently only support configuring the DHCP agent with static
/fixed-address allocations. The DHCP client id (the client MAC address
in neutron's case) is mapped to a specific IP address in the dhcp server
configuration. No range of addresses are made available for clients
without a pre-allocated fixed-address.
When network booting on IPv6 this become an issue, the DHCPv6
specification which mandetes use of the DHCP Unique Identifier (DUID)
and Identity Association Identifier (IAID) to identify a lease. When
network booting, an instance will move trough a minimum of two DHCP
clients, and these rareley end up using identical DUID's and IAID's.
The combination of static/fixed-address allocations in the DHCP server
and the changeing DUID/IAID of the clients causes the second DHCP client
request to get a ``no address available`` reply from the server, and
thus the network boot process errors.
NOTE:
In some cases just the UEFI PXE6 end up doing two cycles
of DHCPv6 S.A.R.R (Solicit, Advertise, Request, Reply)
with different IAID's. Because some UEFI firwmare use's a
non-RFC compliant random generator for the IAID see bug:
https://bugzilla.tianocore.org/show_bug.cgi?id=1518.
While this is a bug in UEFI firmware, it's a common enough
implementation that is used by various hardware vendors
that it makes sense to workaround the issue where possible.
This RFE is for adding the possibility to make a subnet with dynamic
allocation pool(s).
This would solve the network booting issue with changing IAID's
described above. A new lease with a new address will be offered during
each step of network booting.
For example an instance deployment via Openstack Baremetal service
(ironic) would typically include three DHCP clients during provisioning:
UEFI firmware, iPXE, ironic-python-agent ramdisk. So a toatal of 3
leases would be consumed to complete the provisioning.
If this RFE is implemented, the dhcp server (dnsmasq) would configure
the dhcp-range for a dynamic subnet (or dynamic allocation pool of a
subnet) without the ``mode`` set to ``static``. To ensure that the dhcp
server only provide a dynamic allocation for the desired ports the
``ignore`` option is used in a ``dhcp-host`` entry with a wildcard ``*``
host (``dhcp-host="*",ignore``). Ports that require dynamic addressing
would get a ``dhcp-host`` entry with ``dhcp-host=<MAC_ADDRESS>``
(whithout the ``ignore``) so that these specific ports get addresses
from the dynamic allocation pool.
** Affects: neutron
Importance: Undecided
Status: New
** Tags: rfe
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1855854
Title:
[RFE] Dynamic DHCP allocation pool
Status in neutron:
New
Bug description:
Neuton currently only support configuring the DHCP agent with static
/fixed-address allocations. The DHCP client id (the client MAC address
in neutron's case) is mapped to a specific IP address in the dhcp
server configuration. No range of addresses are made available for
clients without a pre-allocated fixed-address.
When network booting on IPv6 this become an issue, the DHCPv6
specification which mandetes use of the DHCP Unique Identifier (DUID)
and Identity Association Identifier (IAID) to identify a lease. When
network booting, an instance will move trough a minimum of two DHCP
clients, and these rareley end up using identical DUID's and IAID's.
The combination of static/fixed-address allocations in the DHCP server
and the changeing DUID/IAID of the clients causes the second DHCP
client request to get a ``no address available`` reply from the
server, and thus the network boot process errors.
NOTE:
In some cases just the UEFI PXE6 end up doing two cycles
of DHCPv6 S.A.R.R (Solicit, Advertise, Request, Reply)
with different IAID's. Because some UEFI firwmare use's a
non-RFC compliant random generator for the IAID see bug:
https://bugzilla.tianocore.org/show_bug.cgi?id=1518.
While this is a bug in UEFI firmware, it's a common enough
implementation that is used by various hardware vendors
that it makes sense to workaround the issue where possible.
This RFE is for adding the possibility to make a subnet with dynamic
allocation pool(s).
This would solve the network booting issue with changing IAID's
described above. A new lease with a new address will be offered during
each step of network booting.
For example an instance deployment via Openstack Baremetal service
(ironic) would typically include three DHCP clients during
provisioning: UEFI firmware, iPXE, ironic-python-agent ramdisk. So a
toatal of 3 leases would be consumed to complete the provisioning.
If this RFE is implemented, the dhcp server (dnsmasq) would configure
the dhcp-range for a dynamic subnet (or dynamic allocation pool of a
subnet) without the ``mode`` set to ``static``. To ensure that the
dhcp server only provide a dynamic allocation for the desired ports
the ``ignore`` option is used in a ``dhcp-host`` entry with a wildcard
``*`` host (``dhcp-host="*",ignore``). Ports that require dynamic
addressing would get a ``dhcp-host`` entry with ``dhcp-
host=<MAC_ADDRESS>`` (whithout the ``ignore``) so that these specific
ports get addresses from the dynamic allocation pool.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1855854/+subscriptions