Dnsmasq

設置 Dnsmaq 為 Hostapd 熱點提供 DHCP 地址

  • October 4, 2018

我正在嘗試設置 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。

引用自:https://unix.stackexchange.com/questions/473188