Estou tentando configurar o dnsmasq para atuar como servidor DHCP para um hotspot WiFi baseado em hostapd.
Quando o cliente se conecta, a negociação WAP2 é bem-sucedida, mas o dnsmasq gera consistentemente os seguintes erros.
[ 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
Isso geralmente significa que o intervalo configurado é incompatível com as configurações do dispositivo.
Se for esse o caso, não consigo entender o porquê.
Meu teste dnsmaq.conf
é bem básico:
root@imx8qxpa0tcuap:~# cat /etc/dnsmasq.conf
domain-needed
bogus-priv
interface=wlan0
dhcp-range=192.168.207.20,192.168.207.50,12h
... e as configurações de rede atuais devem ser compatíveis:
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
As impressões iniciais do dnsmasq não mostram nenhum problema:
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
O que estou fazendo errado?
Nota1: nesta configuração de teste, o WiFi Hotspot não vai a lugar nenhum (ainda), apenas a comunicação entre o cliente e o próprio Hotspot deve funcionar.
Nota2: a máquina é uma placa customizada (i.MX8) rodando uma distribuição baseada em Yocto.
Sua máscara de rede de interface wlan0 está errada.
-->>> 192.168.207.1/ 32
Uma máscara de rede /32 tem 32 bits, 255.255.255.255 que é o endereço IP completo.
Você provavelmente quis dizer 192.168.207.0/24, por exemplo, 255.255.255.0, também conhecido como endereço de rede de classe C. Uma máscara /24 permite servir até 254 endereços IP, de 192.168.207.1 a 192.168.207.254.