我正在尝试设置 dnsmasq 作为基于 hostapd 的 WiFi 热点的 DHCP 服务器。
当客户端连接WAP2协商成功,但dnsmasq始终输出以下错误。
[ 2081.576809] DHCP[wlan0] - DISCOVER [TX][ 2081.580476]
[ 2081.582008] DHCP[wlan0] - DISCOVER [RX]
dnsmasq-dhcp: no address range available for DHCP request via wlan0
[ 2085.297432] DHCP[wlan0] - DISCOVER [TX][ 2085.301107]
[ 2085.302630] DHCP[wlan0] - DISCOVER [RX]
dnsmasq-dhcp: no address range available for DHCP request via wlan0
这通常意味着配置的范围与设备设置不兼容。
如果是这样的话,我不明白为什么。
我的测试dnsmaq.conf
非常基本:
root@imx8qxpa0tcuap:~# cat /etc/dnsmasq.conf
domain-needed
bogus-priv
interface=wlan0
dhcp-range=192.168.207.20,192.168.207.50,12h
...当前的网络设置应该兼容:
root@imx8qxpa0tcuap:~# ip addr show wlan0
5: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 0
link/ether a0:cc:2b:a5:e0:05 brd ff:ff:ff:ff:ff:ff
inet 192.168.207.1/32 scope global wlan0
valid_lft forever preferred_lft forever
inet6 fe80::a2cc:2bff:fea5:e005/64 scope link
valid_lft forever preferred_lft forever
root@imx8qxpa0tcuap:~# ip route
192.168.207.0/24 dev wlan0 scope link
初始 dnsmasq 打印输出显示没有问题:
root@imx8qxpa0tcuap:~# dnsmasq -d
dnsmasq: started, version 2.78 cachesize 150
dnsmasq: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPy
dnsmasq-dhcp: DHCP, IP range 192.168.207.20 -- 192.168.207.50, lease time 12h
dnsmasq: reading /etc/resolv.conf
dnsmasq: using nameserver 8.8.8.8#53
dnsmasq: using nameserver 8.8.4.4#53
dnsmasq: using nameserver 2001:4860:4860::8888#53
dnsmasq: using nameserver 2001:4860:4860::8844#53
dnsmasq: read /etc/hosts - 6 addresses
我究竟做错了什么?
注1:在此测试设置中,WiFi 热点无处可去(但)只有客户端和热点本身之间的通信应该可以工作。
笔记2:该机器是一个定制板(i.MX8),运行基于 Yocto 的发行版。
答案1
您的 wlan0 接口网络掩码错误。
-->>> 192.168.207.1/32
/32 网络掩码有 32 位,即 255.255.255.255,这是整个 IP 地址。
您可能指的是 192.168.207.0/24 例如 255.255.255.0 又名 C 类网络地址。 /24 掩码允许您提供最多 254 个 IP 地址,从 192.168.207.1 到 192.168.207.254。