如何让 dnsmasq 绑定到未插入的以太网端口?
该环境是服务器以路由器的身份运行。工作站将插入此以太网端口。插入后,工作站将通过 DHCP 接收地址并路由到同一服务器上的其他网络连接。
情况是,在服务器启动时没有连接到以太网端口。这是必需的。此路径中不能有交换机或其他设备。(该端口还将与 hostapd 一起使用,以便使用 802.1X 身份验证。)
我的测试表明,dnsmasq 无法启动,因为以太网端口不可用。如果我将设备插入端口,然后重新加载 dnsmasq,dnsmasq 将连接到该端口。
最棒的是,当端口拔出时,dnsmasq 一切正常!dnsmasq 仍连接到端口。重新插入端口将为端口提供 DHCP 服务!
在启动后未在端口插入任何内容的情况下,如何让 dnsmasq 绑定到端口?
我期待两个可能的方向(或者用另一种方式让我惊喜!)
- 说服 dnsmasq 绑定到未插拔的端口
- 让网络堆栈显示端口可用,即使它被拔掉
我正在使用 netplan 来管理网络接口(ala Ubuntu 18)。
该端口的 netplan 配置是:
network:
version: 2
renderer: networkd
ethernets:
enp2s0:
optional: true
dhcp4: no
addresses: [192.168.0.1/24]
dnsmasq.conf 如下所示:
bogus-priv
no-resolv
server=1.1.1.1
interface=enp2s0
bind-interfaces
expand-hosts
dhcp-range=192.168.0.100,192.168.0.250,12h
添加来自 dnsmsg 的错误消息
Nov 20 22:00:34 nuvo7006-2 dnsmasq[945]: dnsmasq: unknown interface enp2s0
Nov 20 22:00:34 nuvo7006-2 dnsmasq[945]: unknown interface enp2s0
Nov 20 22:00:34 nuvo7006-2 dnsmasq[945]: FAILED to start up
Nov 20 22:00:34 nuvo7006-2 systemd[1]: dnsmasq.service: Control process exited, code=exited status=2
Nov 20 22:00:34 nuvo7006-2 systemd[1]: dnsmasq.service: Failed with result 'exit-code'.
Nov 20 22:00:34 nuvo7006-2 systemd[1]: Failed to start dnsmasq - A lightweight DHCP and caching DNS server.
-- Subject: Unit dnsmasq.service has failed