我正在尝试从 dnsmasq 服务器获取 LeaseQuery 响应。
这是文件的内容/etc/dnsmasq.conf
:
port=0
interface=eth1
bind-interfaces
listen-address=1.0.1.4
dhcp-range=1.0.1.100,1.0.1.122,10m
dhcp-host=00:11:22:33:44:55,1.0.1.101,30m
dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases
dhcp-authoritative
租赁文件为空。我启动了我的 dnsmasq 服务器
dnsmasq
我当前使用的版本是2.82
我错过了什么吗?
编辑:这些是系统日志:
Feb 22 04:55:18 dnsmasq[6260]: started, version 2.82 DNS disabled
Feb 22 04:55:18 dnsmasq[6260]: compile time options: IPv6 GNU-getopt no-DBus no-UBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect inotify dumpfile
Feb 22 04:55:18 dnsmasq[6260]: LOUD WARNING: listening on 1.0.1.4 may accept requests via interfaces other than eth1
Feb 22 04:55:18 dnsmasq[6260]: LOUD WARNING: use --bind-dynamic rather than --bind-interfaces to avoid DNS amplification attacks via these interface(s)
Feb 22 04:55:18 dnsmasq-dhcp[6260]: DHCP, IP range 1.0.1.100 -- 1.0.1.122, lease time 10m
Feb 22 04:55:18 dnsmasq-dhcp[6260]: DHCP, sockets bound exclusively to interface eth1
答案1
信息
Feb 22 04:55:18 dnsmasq[6260]: LOUD WARNING: listening on 1.0.1.4 may accept requests via interfaces other than eth1
出现此消息是因为服务于 Intranet 的接口 eth1 配置为在 IP 范围 1.0.1.0/24 上提供 DHCP 服务,而还有另一个接口连接到 Internet。 1.0.1.0/24 是 Chinanet 拥有的公共 IP 范围,并且由于设备已经具有到该 IP 范围的已知路由,因此它也会在互联网连接的接口中侦听 DNS 请求。
虽然理论上任何人都可以在其 Intranet 中使用他们想要的任何 IP 范围,但使用公共 IP 地址可能会导致意想不到的问题。最佳实践是在 Intranet 中使用指定的私有 IP 地址范围RFC 1918:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
...或其子网。
DHCPLEASEQUERY
是 DHCPv4选项 53 消息值。dnsmasq
是一个轻量级 DHCP 服务器,仅支持一组有限的 DHCP 选项。不支持选项 53。
pg1@TREX:~$ dnsmasq --help dhcp
Known DHCP options:
1 netmask
2 time-offset
3 router
6 dns-server
7 log-server
9 lpr-server
13 boot-file-size
15 domain-name
16 swap-server
17 root-path
18 extension-path
19 ip-forward-enable
20 non-local-source-routing
21 policy-filter
22 max-datagram-reassembly
23 default-ttl
26 mtu
27 all-subnets-local
31 router-discovery
32 router-solicitation
33 static-route
34 trailer-encapsulation
35 arp-timeout
36 ethernet-encap
37 tcp-ttl
38 tcp-keepalive
40 nis-domain
41 nis-server
42 ntp-server
44 netbios-ns
45 netbios-dd
46 netbios-nodetype
47 netbios-scope
48 x-windows-fs
49 x-windows-dm
58 T1
59 T2
60 vendor-class
64 nis+-domain
65 nis+-server
66 tftp-server
67 bootfile-name
68 mobile-ip-home
69 smtp-server
70 pop3-server
71 nntp-server
74 irc-server
77 user-class
80 rapid-commit
93 client-arch
94 client-interface-id
97 client-machine-id
119 domain-search
120 sip-server
121 classless-static-route
125 vendor-id-encap
150 tftp-server-address
255 server-ip-address
答案2
尝试注释掉:
bind-interfaces
在配置文件中。
从https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
-z, --bind-interfaces 在支持它的系统上,dnsmasq 会绑定通配符地址,即使它仅侦听某些接口。然后它会丢弃不应回复的请求。这样做的优点是,即使接口来来去去并更改地址,也能正常工作。此选项强制 dnsmasq 仅真正绑定其正在侦听的接口。唯一有用的时候是在同一台计算机上运行另一个名称服务器(或 dnsmasq 的另一个实例)时。设置此选项还可以启用提供 DHCP 服务的 dnsmasq 的多个实例在同一台计算机上运行。