[2.6] bootloaders not set in DHCP for relayed vlans
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Fix Released
|
High
|
Blake Rouse | ||
2.6 |
Fix Released
|
High
|
Blake Rouse |
Bug Description
In 2.5 and earlier releases, there was a global stanza for boot loaders in the generated dhcpd.conf file.
In 2.6, this seems to have moved to a per-subnet configuration, but the template in src/provisionin
In my production environment, I'm using DHCP relaying and DHCP helper so that I can PXE boot servers which live on a vlan which doesn't have a rack controller directly on it. So this means that only subnets with a rack controller directly on it will send a DHCP response that includes a boot filename to download.
I am working around this issue by creating a global snippet which contains:
# BEGIN bootloader workaround snippet
#
# Bootloaders
#
if option arch = 00:00 {
# pxe
filename "pxelinux.0";
} elsif option arch = 00:07 {
# uefi_amd64
filename "bootx64.efi";
} elsif option arch = 00:09 {
# uefi_amd64
filename "bootx64.efi";
} elsif option arch = 00:0B {
# uefi_arm64
filename "grubaa64.efi";
} elsif option arch = 00:0C {
# open-firmware_
filename "bootppc64.bin";
} elsif option arch = 00:0E {
# powernv
filename "pxelinux.0";
option path-prefix "ppc64el/";
} else {
# pxe
filename "pxelinux.0";
}
# END bootloader workaround snippet
To reproduce this issue:
Create a new fabric ("demo"), then create a new subnet on that fabric. Select the untagged vlan for the new fabric and choose to enable DHCP. Select "Relay to another VLAN" and choose another vlan which has a live rack controller on it. After saving this, check out /var/lib/
Here's the package set I'm running:
Desired=
| Status=
|/ Err?=(none)
||/ Name Version Architecture Description
+++-===
un maas <none> <none> (no description available)
ii maas-cli 2.6.0-7802-
un maas-cluster-
ii maas-common 2.6.0-7802-
ii maas-dhcp 2.6.0-7802-
un maas-dns <none> <none> (no description available)
ii maas-proxy 2.6.0-7802-
ii maas-rack-
ii maas-region-api 2.6.0-7802-
ii maas-region-
un maas-region-
un python-django-maas <none> <none> (no description available)
un python-maas-client <none> <none> (no description available)
un python-
ii python3-django-maas 2.6.0-7802-
ii python3-maas-client 2.6.0-7802-
ii python3-
I don't think you really need all my log files to further diagnose this.
Related branches
- Blake Rouse (community): Approve
-
Diff: 475 lines (+135/-54)8 files modifiedsrc/maasserver/dhcp.py (+22/-11)
src/maasserver/tests/test_dhcp.py (+37/-1)
src/provisioningserver/dhcp/config.py (+38/-30)
src/provisioningserver/dhcp/testing/config.py (+6/-2)
src/provisioningserver/dhcp/tests/test_config.py (+24/-9)
src/provisioningserver/rpc/cluster.py (+1/-0)
src/provisioningserver/rpc/dhcp.py (+1/-0)
src/provisioningserver/rpc/tests/test_clusterservice.py (+6/-1)
- Newell Jensen (community): Approve
- MAAS Lander: Approve
-
Diff: 475 lines (+135/-54)8 files modifiedsrc/maasserver/dhcp.py (+22/-11)
src/maasserver/tests/test_dhcp.py (+37/-1)
src/provisioningserver/dhcp/config.py (+38/-30)
src/provisioningserver/dhcp/testing/config.py (+6/-2)
src/provisioningserver/dhcp/tests/test_config.py (+24/-9)
src/provisioningserver/rpc/cluster.py (+1/-0)
src/provisioningserver/rpc/dhcp.py (+1/-0)
src/provisioningserver/rpc/tests/test_clusterservice.py (+6/-1)
Changed in maas: | |
status: | New → Triaged |
importance: | Undecided → High |
milestone: | none → 2.7.0alpha1 |
assignee: | nobody → Blake Rouse (blake-rouse) |
status: | Triaged → In Progress |
Changed in maas: | |
status: | In Progress → Fix Committed |
Changed in maas: | |
status: | Fix Committed → Fix Released |
One more thing, for those who are experiencing this and may be searching for the error message - the symptoms of DHCP not replying with a boot filename is this error message: "PXE-E53: No boot filename received".