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)입니다.
답변1
wlan0 인터페이스에 잘못된 네트워크 마스크가 있습니다.
-->>> 192.168.207.1/32
/32 넷마스크에는 32비트, 즉 전체 IP 주소인 255.255.255.255가 있습니다.
192.168.207.0/24(예: 클래스 C 네트워크 주소라고도 하는 255.255.255.0)를 참조할 수 있습니다. /24 마스크를 사용하면 192.168.207.1에서 192.168.207.254까지 최대 254개의 IP 주소를 제공할 수 있습니다.