微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

dnsmasq未收到将其发送到无线局域网设备的dhcp请求

如何解决dnsmasq未收到将其发送到无线局域网设备的dhcp请求

经过几天的搜索,并尝试通过其他类似的帖子找到的所有内容,我仍然没有找到可以使用的解决方案。

Device: RaspBerry Pi 2 Model B
OS: Raspbian 8.0 (jessie)
kernel: 4.9.35-v7+
Wifi Device: USB2.0 RTL8811CU running rtl8821cu driver

我遵循了几个非常相似的指南来安装和配置hostapd和dnsmasq。尽管我遇到了一些有关wifi设备的问题(后来又遇到了hostapd不想正常运行的问题),但确实设法使AP正常运行,但是尽管出现了请求,DHCP服务器仍未收到任何请求在网络设备上。作为参考,我以root用户身份执行所有命令。

root@dev:/home/pi# tcpdump -i wlan0 ip
tcpdump: verbose output suppressed,use -v or -vv for full protocol decode
listening on wlan0,link-type EN10MB (Ethernet),capture size 262144 bytes
17:17:19.810384 IP 10.125.111.1 > igmp.mcast.net: igmp v3 report,1 group record(s)
17:17:19.831066 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP,Request from b8:d7:af:07:4e:f5 (oui UnkNown),length 308
17:17:20.480243 IP 10.125.111.1 > igmp.mcast.net: igmp v3 report,1 group record(s)
17:17:20.899771 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP,length 308
17:17:22.865326 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP,length 308
17:17:27.102579 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP,length 308

我确实注意到那里有一个奇怪的IP地址(10.125.111.1),但我不知道它来自哪里,因为我从未配置过192.168个八位字节之外的任何接口。

/var/log/syslog | grep dnsmasq

内容
Oct  9 16:19:58 dev systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Oct  9 16:19:58 dev dnsmasq[436]: dnsmasq: Syntax check OK.
Oct  9 16:20:00 dev dnsmasq[734]: started,version 2.72 cachesize 150
Oct  9 16:20:00 dev dnsmasq[734]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect
Oct  9 16:20:00 dev dnsmasq-dhcp[734]: DHCP,IP range 192.168.10.11 -- 192.168.10.100,lease time 1d
Oct  9 16:20:00 dev dnsmasq-dhcp[734]: DHCP,lease time 1d
Oct  9 16:20:00 dev dnsmasq[734]: using nameserver 192.168.10.1#53
Oct  9 16:20:00 dev dnsmasq[734]: using local addresses only for domain PHP-pi.com
Oct  9 16:20:00 dev dnsmasq[734]: no servers found in /var/run/dnsmasq/resolv.conf,will retry
Oct  9 16:20:00 dev dnsmasq[734]: read /etc/hosts - 7 addresses
Oct  9 16:20:02 dev systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
Oct  9 16:20:05 dev dnsmasq[734]: Maximum number of concurrent DNS queries reached (max: 150)
      ... repeats every 10 seconds ...
Oct  9 16:28:54 dev dnsmasq[734]: Maximum number of concurrent DNS queries reached (max: 150)
Oct  9 16:28:56 dev dnsmasq[734]: reading /var/run/dnsmasq/resolv.conf
Oct  9 16:28:56 dev dnsmasq[734]: ignoring nameserver 192.168.10.1 - local interface
Oct  9 16:28:56 dev dnsmasq[734]: using local addresses only for domain PHP-pi.com
Oct  9 16:28:56 dev dnsmasq[734]: using nameserver 192.168.1.1#53
Oct  9 16:37:09 dev systemd[1]: Stopping dnsmasq - A lightweight DHCP and caching DNS server...
Oct  9 16:37:09 dev dnsmasq[734]: exiting on receipt of SIGTERM
Oct  9 16:37:09 dev systemd[1]: Stopped dnsmasq - A lightweight DHCP and caching DNS server.
Oct  9 17:20:05 dev systemd[1]: Stopped dnsmasq - A lightweight DHCP and caching DNS server.

在尝试将手机连接到AP之前,我跑了strace -o /tmp/dnsmasq.trace -s 256 -tt -p `pidof dnsmasq` ,并使strace运行了整整10秒钟。这里是内容

17:26:03.220314 select(11,[4 5 6 7 8 9 10],[],NULL) = 1 (in [4])
17:26:05.060494 gettimeofday({1602289565,60653},NULL) = 0
17:26:05.060844 stat64("/var/run/dnsmasq/resolv.conf",{st_mode=S_IFREG|0644,st_size=49,...}) = 0
17:26:05.061259 recvmsg(4,{msg_name(16)={sa_family=AF_INET,sin_port=htons(68),sin_addr=inet_addr("0.0.0.0")},msg_iov(1)=[{"\1\1\6\0\211-5V\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\327\257\7N\365\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\202Sc5\1\1=\7\1\270\327\257\7N\3659\2\5\334"...,548}],msg_controllen=24,{cmsg_len=24,cmsg_level=SOL_IP,cmsg_type=,...},msg_flags=0},MSG_PEEK|MSG_Trunc) = 308
17:26:05.061732 recvmsg(4,0) = 308
17:26:05.062106 ioctl(4,SIocgIFNAME,{ifr_index=5,ifr_name="br0"}) = 0
17:26:05.062384 ioctl(4,SIocgIFADDR,{ifr_name="br0",ifr_addr={AF_INET,inet_addr("169.254.30.13")}}) = 0
17:26:05.062690 select(11,NULL) = 1 (in [4])
17:26:06.092779 gettimeofday({1602289566,92938},NULL) = 0
17:26:06.093141 recvmsg(4,msg_iov(1)=[{"\1\1\6\0\211-5V\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\327\257\7N\365\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\202Sc5\1\1=\7\1\270\327\257\7N\3659\2\5\334"...,MSG_PEEK|MSG_Trunc) = 308
17:26:06.093571 recvmsg(4,0) = 308
17:26:06.093945 ioctl(4,ifr_name="br0"}) = 0
17:26:06.094224 ioctl(4,inet_addr("169.254.30.13")}}) = 0
17:26:06.094527 select(11,NULL) = 1 (in [4])
17:26:08.166093 gettimeofday({1602289568,166254},NULL) = 0
17:26:08.166422 stat64("/var/run/dnsmasq/resolv.conf",...}) = 0
17:26:08.166752 recvmsg(4,msg_iov(1)=[{"\1\1\6\0\211-5V\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\327\257\7N\365\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\202Sc5\1\1=\7\1\270\327\257\7N\3659\2\5\334"...,MSG_PEEK|MSG_Trunc) = 308
17:26:08.167226 recvmsg(4,0) = 308
17:26:08.167596 ioctl(4,ifr_name="br0"}) = 0
17:26:08.167856 ioctl(4,inet_addr("169.254.30.13")}}) = 0
17:26:08.168141 select(11,NULL) = 1 (in [4])
17:26:11.762005 gettimeofday({1602289571,762162},NULL) = 0
17:26:11.762330 stat64("/var/run/dnsmasq/resolv.conf",...}) = 0
17:26:11.762661 recvmsg(4,msg_iov(1)=[{"\1\1\6\0\211-5V\0\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\327\257\7N\365\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\202Sc5\1\1=\7\1\270\327\257\7N\3659\2\5\334"...,MSG_PEEK|MSG_Trunc) = 308
17:26:11.763039 recvmsg(4,0) = 308
17:26:11.763381 ioctl(4,ifr_name="br0"}) = 0
17:26:11.763633 ioctl(4,inet_addr("169.254.30.13")}}) = 0
17:26:11.763919 select(11,NULL

/var/log/kern.log在收到DHCP请求的过程中没有任何条目,就像在dnsmasq中针对接收/处理的DHCP请求的syslog中什么都没有出现。以下是我对hostapd,dhcpcd,接口,dnsmasq和主机的配置,无注释行。

root@dev:/home/pi# cat /etc/hostapd/hostapd.conf
country_code=US
interface=wlan0
driver=nl80211
ssid=PHP-pi
bridge=br0
hw_mode=g
channel=11
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
wpa_passphrase=#REDACTED#
root@dev:/home/pi# cat /etc/dhcpcd.conf
dev.PHP-pi.com
clientid
persistent
option rapid_commit
option domain_name_servers,domain_name,domain_search,host_name
option classless_static_routes
option ntp_servers
require dhcp_server_identifier
slaac private
nohook lookup-hostname
interface wlan0
static ip_address=192.168.10.1
static routers=
static domain_name_servers=
static domain_search=
root@dev:/home/pi# cat /etc/network/interfaces
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet static
        address 192.168.10.1
        netmask 255.255.255.0
allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
root@dev:/home/pi# cat /etc/dnsmasq.conf
interface=wlan0
dhcp-range=192.168.10.11,192.168.10.100,255.255.255.0,24h
root@dev:/home/pi# cat /etc/dnsmasq.d/default.conf
domain-needed
bogus-priv
local=/PHP-pi.com/
dhcp-range=192.168.10.11,24h
server=192.168.10.1
dhcp-option=option:router,192.168.10.1
dhcp-option=6,192.168.10.1
domain=PHP-pi.com
expand-hosts
log-dhcp
log-queries
root@dev:/home/pi# cat /etc/hosts
127.0.0.1       localhost.localdomain   localhost
127.0.0.1       dev.PHP-pi.com  dev
192.168.10.1    dev.PHP-pi.com  dev
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       dev.PHP-pi.com  dev
root@dev:/home/pi# iwconfig
lo        no wireless extensions.

wlan0     IEEE 802.11bg  ESSID:"PHP-pi"  Nickname:"<WIFI@REALTEK>"
          Mode:Master  Frequency:2.462 GHz  Access Point: B4:4B:D6:23:0D:B4
          Bit Rate:54 Mb/s   Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=1/100  Signal level=1/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

eth0      no wireless extensions.

br0       no wireless extensions.

wlan1     IEEE 802.11  ESSID:"#REDACTED#"
          Mode:Managed  Frequency:2.437 GHz  Access Point: C0:C1:C0:D0:10:31
          Bit Rate=65 Mb/s   Tx-Power=30 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=70/70  Signal level=-31 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:9  Invalid misc:44   Missed beacon:0

我能够连接到网络“ PHP-pi”,并且可以从扫描中看到它,但是dnsmasq没有DHCP响应,因此Windows保持连接/未配置,并且我的手机拒绝保持连接,因为它“失败了到IP地址”。

在这里错过什么了吗,还是有错别字?手动运行/检查hostapd和dnsmasq不会导致任何错误,但最终我发现没有区别。

如果我缺少或忽略了任何内容,请在注释中说出所需的文件/命令输出,然后我将其追加。请注意,您可能已经注意到有几条信息被列为#REDACTED#,这是因为我不想公开配置中使用的家庭网络SSID或密码,因此请理解,如果有的话请求将导致显示此类信息,我将对其进行编辑。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。