5553ccab81
This will allow to configure addressing based on inventory Change-Id: I71517146a197e39ed8ff2205e4234685d95331ad
81 lines
3.0 KiB
ReStructuredText
81 lines
3.0 KiB
ReStructuredText
=======================================
|
|
Using Bifrost with your own DHCP server
|
|
=======================================
|
|
|
|
The possibility exists that a user may already have a Dynamic Host
|
|
Configuration Protocol (DHCP) server on their network.
|
|
|
|
Currently Ironic, when configured with Bifrost in standalone mode, does not
|
|
utilize a DHCP provider. This would require a manual configuration of the
|
|
DHCP server to deploy an image. Bifrost utilizes dnsmasq for this
|
|
functionality; however, any DHCP server can be utilized. This is largely
|
|
intended to function in the context of a single flat network although
|
|
conceivably the nodes can be segregated.
|
|
|
|
What is required:
|
|
|
|
- DHCP server on the network segment
|
|
- Appropriate permissions to change DHCP settings
|
|
- Network access to the API and conductor. Keep in mind the iPXE image does
|
|
not support ICMP redirects.
|
|
|
|
Example DHCP server configurations
|
|
----------------------------------
|
|
In the examples below port 8080 is used. However, the port number may vary
|
|
depending on the environment configuration.
|
|
|
|
dnsmasq::
|
|
|
|
dhcp-match=set:ipxe,175 # iPXE sends a 175 option.
|
|
dhcp-boot=tag:!ipxe,/undionly.kpxe,<TFTP Server Hostname>,<TFTP Server IP Address>
|
|
dhcp-boot=http://<Bifrost Host IP Address>:8080/boot.ipxe
|
|
|
|
Internet Systems Consortium DHCPd::
|
|
|
|
if exists user-class and option user-class = "iPXE" {
|
|
filename "http://<Bifrost Host IP Address>:8080/boot.ipxe";
|
|
} else {
|
|
filename "/undionly.kpxe";
|
|
next-server <TFTP Server IP Address>;
|
|
}
|
|
|
|
|
|
Architecture
|
|
------------
|
|
|
|
It should be emphasized that Ironic in standalone mode is intended to be used only
|
|
in a trusted environment.
|
|
|
|
::
|
|
|
|
+-------------+
|
|
| DHCP Server |
|
|
+-------------+
|
|
|
|
|
+--------Trusted-Network----------+
|
|
| |
|
|
+-------------+ +-----------+
|
|
|Ironic Server| | Server |
|
|
+-------------+ +-----------+
|
|
|
|
===============================================================
|
|
Setting static DHCP assignments with the integrated DHCP server
|
|
===============================================================
|
|
|
|
You can set up a static DHCP reservation using the ``ipv4_address`` parameter
|
|
and setting the ``inventory_dhcp`` setting to a value of ``true``. This will
|
|
result in the first MAC address defined in the list of hardware MAC addresses
|
|
to receive a static address assignment in dnsmasq.
|
|
|
|
======================================
|
|
Forcing DNS to resolve to ipv4_address
|
|
======================================
|
|
|
|
dnsmasq will resolve all entries to the IP assigned to each server in
|
|
the leases file. However, this IP will not always be the desired one, if you
|
|
are working with multiple networks.
|
|
To force DNS to always resolve to ``ipv4_address`` please set the
|
|
``inventory_dns`` setting to a value of ``true``. This will result in each
|
|
server to resolve to ``ipv4_address`` by explicitly using address capabilities
|
|
of dnsmasq.
|