저는 Pi-hole 5.18.2의 일부로 Debian 11.0 기반 도커 컨테이너 내에서 dnsmasq 2.90을 실행하고 있습니다.
로컬 애플리케이션에 하드코딩된 .local 도메인이 있기 때문에 로컬 호스트 이름으로 여러 로컬 도메인(.local 및 .subdomain.mydomain.com)에 대한 주소를 제공하도록 dnsmasq를 구성하고 싶습니다. 한 번에 하나의 도메인에서만 작동하도록 할 수 있습니다.
이 컨테이너는 내 로컬 네트워크에 DNS 및 DHCP 서비스를 제공합니다. Pi 홀 설정의 일부로 설치 addn-hosts=/etc/pihole/local.list
에 추가합니다 . 이 목록에는 로컬 및 로컬로 액세스 가능한 서브넷의 약 30개 IP 주소 및 호스트 이름 목록이 포함됩니다..conf
/etc/dnsmasq.d
192.168.1.10 server01
192.168.2.20 server02
100.115.x.x server03
dnsmasq는 에 설치된 별도의 구성 파일에 지정된 대로 DHCP를 통해 로컬 검색 도메인을 제공하고 domain=subdomain.mydomain.com
.dhcp-option=option:domain-search.subdomain.mydomain.com
/etc/dnsmasq.d
local=/subdomain.mydomain.com/
이 검색 도메인은 DNS 서버의 IP와 함께 내 클라이언트에 의해 승인되었으며 예상대로 구현되었습니다.
❯ cat /etc/resolv.conf
…
search subdomain.mydomain.com
nameserver 192.168.2.2
nslookup
호스트 이름에 대한 A는 addn-hosts
예상대로 작동하여 검색 접미사를 추가하고 올바른 결과를 반환합니다.
❯ nslookup
> server01
Server: 192.168.2.2
Address: 192.168.2.2#53
Name: server01.subdomain.mydomain.com
Address: 192.168.1.10
server01.local에 대해 동일한 IP를 반환하고 싶습니다.
> server01.local
Server: 192.168.2.2
Address: 192.168.2.2#53
** server can't find server01.local: NXDOMAIN
별도의 항목을 local=/subdomain.mydomain.com/local/
사용하거나 사용하지 않고 .config 파일에 로컬을 추가해 보았습니다 . 이것은 동작을 변경하지 않거나 (이 두 항목을 추가하는 경우) nslookup 이 .domain=/subdomain.mydomain.com/local/
domain=subdomain.mydomain.com
domain=local
domain=
.local
.subdomain.mydomain.com
dnsmasq가 도메인의 호스트 이름 IP .local
로 응답하도록 하려면 어떻게 해야 합니까 ?.subdomain.mydomain.com
답변1
미래에 이것을 알게 되는 사람이 있다면 (보통 그렇듯이) 내가 멍청했다는 대답이 나올 것입니다.
.local은 mDNS용으로 예약되어 있습니다.그래서 내 dnsmasq 장치에 .local을 해결하려고 시도하고 .local을 해결할 수 있다고 발표함으로써 mDNS가 손상되었습니다. 또한 nslookup을 사용하여 구문 분석을 테스트했는데 mDNS 쿼리를 구문 분석할 수 없었습니다.
dnsmasq에서 .local에 대한 모든 참조를 제거하고, 서비스를 다시 시작하고, DHCP 임대를 새로 고치고, ping을 통해 .local 확인을 테스트하면 제대로 작동합니다.