로컬(127.0.1.1) DNS 확인자는 LAN DNS 서버를 무시합니다.

로컬(127.0.1.1) DNS 확인자는 LAN DNS 서버를 무시합니다.

내 LAN에 대한 DNS 서버 역할을 하도록 컴퓨터를 구성했습니다(대략 다음과 같습니다).이 가이드). 나의 주된 동기는 IP 대신 URL을 사용하여 내 컴퓨터와 장치에 액세스할 수 있다는 것입니다.

내 이름을 올바르게 구문 분석할 수 있으므로 잘 작동하고 잘 전달됩니다.

➜  ~ nslookup router.casa 192.168.1.5
Server:     192.168.1.5
Address:    192.168.1.5#53

Name:   router.casa
Address: 192.168.1.1

그리고 외부:

➜  ~ nslookup google.com 192.168.1.5
Server:     192.168.1.5
Address:    192.168.1.5#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.28.174

( 192.168.1.5이것이 DNS 서버 주소라는 것을 눈치채셨을 것입니다)

그런 다음 DHCP 서버(Linksys 라우터)를 192.168.1.5기본 DNS 주소로 설정한 다음 Google 주소를 설정했습니다. 이는 로컬 DNS 서버가 다운된 경우에도 내 장치가 이름을 확인할 수 있기를 원하기 때문입니다. 이것도 작동하는 것 같거나 이 작업을 수행할 때 적어도 어떤 컴퓨터에서든 올바르게 반영되는 것 같습니다.

➜  ~ nmcli dev show | grep DNS
IP4.DNS[1]:                             192.168.1.5
IP4.DNS[2]:                             8.8.8.8
IP4.DNS[3]:                             8.8.4.4

그러나 nslookup명시적인 DNS 주소가 없는 일반 쿼리는 작동하지 않습니다.

➜  ~ nslookup router.casa
Server:     127.0.1.1
Address:    127.0.1.1#53

** server can't find router.casa: NXDOMAIN

많은 SuperUser, Unix & Linux 및 AskUbuntu 질문을 읽은 후 이제 이 주소가 기본적으로 설정 되고 내 배포판(Mint)에 사전 구성된 127.0.1.1로컬 DNS 캐시와 유사하다는 것을 알게 되었습니다 . resolvconf효과적으로:

➜  ~ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

수동 패치(또는resolv.conf 기본 파일 편집,resolvconf를 완전히 제거합니다., 등. ). 그러나 모든 게스트 장치가 로컬 이름을 사용할 수 있기를 원하며 전체 LAN 설정을 편집하고 싶지는 않습니다(일부 장치는 내 것이 아닙니다).

모든 PC 및 장치에 대한 설정을 수동으로 편집할 필요가 없도록 DNS 서버 및/또는 DHCP를 구성하는 방법이 있습니까?

또한 부가적인 질문으로 이 127.0.1.1 서버는 왜 첫 번째 DNS 주소를 무시합니까? nslookupDNS 서버에서 사용해도 실패합니다.

➜  ~ nslookup router.casa 127.0.0.1
Server:     127.0.0.1
Address:    127.0.0.1#53

Name:   router.casa
Address: 192.168.1.1

➜  ~ nslookup router.casa 127.0.1.1
Server:     127.0.1.1
Address:    127.0.1.1#53

** server can't find router.casa: NXDOMAIN

더 유용한 출력:

➜  ~ sudo netstat -tulpn | grep 127.0.1.1
tcp        0      0 127.0.1.1:53            0.0.0.0:*               ESCUCHAR    1489/dnsmasq    
udp        0      0 127.0.1.1:53            0.0.0.0:*                           1489/dnsmasq    

답변1

항목 127.0.1.1이 여기에 있을 가능성이 가장 높으며, dnsmasqDNS 및 DHCP를 제공(가장 중요하게는 캐시)하는 로컬 데몬입니다. NetworkManager는 다음과 같이 dnsmasq를 실행하지 않도록 구성할 수 있습니다. 파일을 편집하고 줄의 시작 부분에 배치하여 /etc/NetworkManager/NetworkManager.conf줄을 주석 처리합니다 .dns=dnsmasq#

sudo nano /etc/NetworkManager/NetworkManager.conf

이제 네트워크 관리자를 다시 시작하십시오.

sudo service network-manager restart

다음으로 127.0.1.1항목이 라우터에서 사라지고 /etc/resolv.conf라우터에서 얻은 항목으로 대체되었는지 확인합니다.

관련 정보