
저는 Pi-hole 5.18.2의 일부로 Debian 11.0 기반 Docker 컨테이너 내에서 dnsmasq 2.90을 실행하고 있습니다.
로컬 애플리케이션에 .local 도메인이 하드 코딩되어 있으므로 여러 로컬 도메인(.local 및 .subdomain.mydomain.com 모두)에 대한 내 로컬 호스트 이름의 주소를 제공하도록 dnsmasq를 구성하고 싶습니다. 한 번에 하나의 도메인에서만 작동하도록 할 수 있습니다.
이 컨테이너는 내 로컬 네트워크에 DNS 및 DHCP 서비스를 제공합니다. Pi-hole 설정의 일부로 에 마운트된 파일 addn-hosts=/etc/pihole/local.list
에 추가됩니다 . 이 목록에는 다음과 같이 로컬 및 로컬로 액세스 가능한 서브넷 및 호스트 이름의 IP 주소 ~30개 목록이 포함되어 있습니다..conf
/etc/dnsmasq.d
192.168.1.10 server01
192.168.2.20 server02
100.115.x.x server03
dnsmasq는 에 마운트된 별도의 구성 파일 domain=subdomain.mydomain.com
과 에 지정된 대로 DHCP를 통해 로컬 검색 도메인을 제공하고 를 사용하여 로컬 도메인으로 설정합니다 .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 파일에 로컬 항목을 포함하거나 포함하지 않고 domain=/subdomain.mydomain.com/local/
별도의 항목을 추가해 보았습니다 domain=subdomain.mydomain.com
domain=local
. 이것은 동작을 변경하지 않거나 (두 domain=
항목을 추가하는 경우) nslookup이 에 대해서는 작동 .local
하지만 에 대해서는 작동하지 않습니다 .subdomain.mydomain.com
.
.local
dnsmasq가 도메인 과 도메인 모두에 대한 호스트 이름 IP로 응답하도록 하려면 어떻게 해야 합니까 .subdomain.mydomain.com
?
답변1
미래에 이것을 발견하는 사람의 대답은 (종종 그렇듯이) 내가 바보였다는 것입니다.
.local은 mDNS용으로 예약되어 있습니다.그래서 내 dnsmasq 장치에 .local을 해결하려고 시도하고 .local을 해결하는 기능이 있음을 알리게 함으로써 mDNS가 손상되었습니다. 또한 mDNS 쿼리를 해결하지 못하는 nslookup을 사용하여 해결 방법을 테스트하고 있었습니다.
dnsmasq에서 .local에 대한 모든 참조를 제거하고, 서비스를 다시 시작하고, DHCP 임대를 새로 고치고, ping을 통해 .local 확인을 테스트하면 제대로 작동합니다.