Dnsmasq/Ubuntu“未收到 DHCP 或 proxyDHCP 报价”

Dnsmasq/Ubuntu“未收到 DHCP 或 proxyDHCP 报价”

我已经启动了 Ubuntu 18.04(Bionic Beaver)服务器*,目的是安装 DBAN .iso,以便我可以 PXE 启动它。 *Ubuntu 的服务器版本,但这实际上是桌面硬件(Dell Optiplex 3020)。

我找到了一个在旧版本的 Ubuntu 上配置此功能的指南,该指南似乎或多或少相同(除了网络接口的命名约定)。按照这些步骤操作后,我实际上无法从另一台机器(通过交换机连接到服务器)进行 PXE 启动,据我所知,这与用作 DHCP 的 dnsmasq 的配置有关服务器。我收到的错误是

PXE-EH1: No DHCP or proxyDHCP offers were received.    
PXE-MOF: Exiting PXE ROM

在我遵循的最初指南和其他一些论坛之间,我在排除故障时发现,我拼凑了以下内容/etc/dnsmasq.conf

dhcp-authoritative
interface=enp2s0
bind-interfaces
dhcp-options=3,0.0.0.0
dhcp-options=6,0.0.0.0
dhcp-range=10.0.0.2,10.0.0.254,6h
dhcp-boot=pxelinux.0,dban-server,10.0.0.1

当我跑步时dnsmasq——测试语法检查没问题。如果我重新启动 dnsmasq 它不会抛出任何错误。

有关信息,初始配置如下,仅当我遇到与现在相同的问题时才更改。

 dhcp-range=10.0.0.2,10.0.0.254,6h
 dhcp-boot=pxelinux.0,dban-server,10.0.0.1
 interface=enp2s0

我认为我的其余设置没问题,但因为我似乎无法让 dnsmasq 向其他计算机发出 DHCP 租约。

答案1

追根究底——肯定只有我对 Linux 一无所知。如果其他人也有同样的问题:

事实证明,默认情况下 IPv4 被禁用,在 ifconfig 中注意到该接口只有一个 IPv6 地址。打开网络配置文件:

sudo nano /etc/netplan/50-cloud-init.yaml

然后禁用 DHCP 并设置 IPv4 地址,因此文件如下:

network:
   ethernets:
       enp2s0:
          dhcp4: no
          addresses: [10.0.0.1/24]
    version: 2

确保在此文件中使用空格而不是制表符,因为使用制表符时它不起作用。显然,请确保您使用自己的接口(我的是 enp2s0)以及您想要的静态地址和网络掩码。

保存文件后,输入

sudo netplan apply

无论如何,这对我有用 - 所有其他配置都按预期工作。

相关内容