Dnsmasq
設置 Dnsmaq 為 Hostapd 熱點提供 DHCP 地址
我正在嘗試設置 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:*該機器是執行基於 Yocto 的發行版的定制板 (i.MX8)。
您的 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。