我有一个MikroTik hEX路由器(固件 v6.47.1),我想用 OpenWRT 刷机。OpenWRT wiki 网站上有详细说明在此过程中,它要求对路由器进行网络启动。 我的问题是由于某种原因,我无法让 hEXs 路由器连接到我的 tftp 服务器。
为了充当 PXE 启动主机,我dnsmasq
在当前使用的 DD-WRT 路由器上进行了设置,并dhcp-boot
在“附加 DNSMasq 选项”文本区域中设置选项,如下所示:
dchp-boot=initramfs.bin,,192.168.2.108
我tftpd
在运行 OS X Ventura 的 Mac Mini 上运行了一个实例,其 IP 如上所述。我希望它启动的 OpenWRT 文件位于/private/tftpboot
。我已确认 tftp 可以通过从另一台机器通过网络 ftp 传输文件来工作。
当我启动 hEX 并观察tcpdump
tftp 主机上的输出时,我看到大量类似这样的请求:
14:21:36.898688 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from [hEXs MAC ADDRESS], length 300
14:21:37.098699 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from [hEXs MAC ADDRESS], length 300
14:21:37.298576 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from [hEXs MAC ADDRESS], length 300
14:21:37.498588 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from [hEXs MAC ADDRESS], length 300
14:21:37.698617 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from [hEXs MAC ADDRESS], length 300
14:21:37.898635 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from [hEXs MAC ADDRESS], length 300
14:21:38.098664 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from [hEXs MAC ADDRESS], length 300
...但我从未看到任何东西到达 tftpd 正在监听的端口 69。因此,我从未能够让 hEX 真正启动固件。我已确认 hEX 通过 DHCP 接收 IP 地址,但它似乎没有通过 tftp 检索启动文件(这是我的假设,没有进行更细致的故障排除,这就是我问这个问题的原因)。我似乎无法在日志文件中找到任何相关内容,但我可能没有在所有详尽的正确位置进行查找。
$ cat /tmp/dnsmasq.conf
interface=br0
resolv-file=/tmp/resolv.dnsmasq
all-servers
strict-order
domain=attlocal.net
dhcp-leasefile=/tmp/dnsmasq.leases
dhcp-lease-max=102
dhcp-option=lan,3,192.168.2.1
dhcp-authoritative
dhcp-range=lan,192.168.2.100,192.168.2.199,255.255.255.0,1440m
stop-dns-rebind
dhcp-boot=initramfs.bin,,192.168.2.108
dnsmasq
如何使用 CLI(或其他工具)进行低级故障排除,以确定它是否正确地将dhcp-boot
选项分发给 PXE 启动客户端?
我已经在互联网上搜索了大约 2-3 周的相关信息,包括在 StackExchange 系列网站上,但要么是我使用的术语不正确,要么是没有人遇到过这种特定的情况。