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
이 메시지는 인트라넷을 제공하는 인터페이스 eth1이 IP 범위 1.0.1.0/24에서 DHCP 서비스를 제공하도록 구성되어 있고 인터넷에 연결된 다른 인터페이스가 있기 때문에 발생합니다. 1.0.1.0/24는 Chinanet이 소유한 공용 IP 범위이며, 장치에는 이미 해당 IP 범위에 대한 알려진 경로가 있으므로 인터넷에 연결된 인터페이스에서 DNS 요청도 수신합니다.
이론적으로는 누구나 인트라넷 내에서 원하는 IP 범위를 사용할 수 있지만 공용 IP 주소를 사용하면 예상치 못한 문제가 발생할 수 있습니다. 모범 사례는 인트라넷 내에서 지정된 개인 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의 여러 인스턴스가 동일한 컴퓨터에서 실행될 수도 있습니다.