외부 DNS를 사용할 때 dig가 DNS 서버를 127.0.0.1로 보고하는 이유는 무엇입니까?

외부 DNS를 사용할 때 dig가 DNS 서버를 127.0.0.1로 보고하는 이유는 무엇입니까?

나는 DNS 서버로 언바운드 및 일반적으로 openDNS를 사용합니다.

내가 달릴 때 dig google.com그것을 얻는다고 말해라 SERVER: 127.0.0.1#53(127.0.0.1). 포트 53에서 수신 대기하는 것은 정확히 무엇입니까? 이것은 언바운드입니까 아니면 dnsmasq와 관련이 있습니까? ( dnsmasq.conf없는 것 같아서 dnsmasq를 설치했습니까 /etc?)

resolv.conf에는 있지만 nameserver 127.0.0.1네트워크 관리자에서는 DNS 서버를 두 개의 openDNS 주소로 지정합니다. 그래서 무슨 일이야? 로컬 네임서버가 dnsmasq를 가리킨 다음 네트워크 관리자의 값을 사용합니까? 아니면 실제로 구속되지 않고 듣고 있는 걸까요?

답변1

기본적으로 NetworkManager는 Dnsmasq를 DNS 확인자로 사용합니다(설치된 경우). 이는 Debian 기반 시스템의 기본 설정이므로 Dnsmasq는 기본 구성으로 실행되며 /etc/hosts명령줄 옵션에 지정된 업스트림 서버(및 무엇이든)에 대해서만 이름을 확인합니다. /etc/dnsmasq.conf파일은 선택적 패키지에만 존재하기 때문에 그렇지 않습니다 .DNS.

시스템이 현재 DNS 쿼리에 Dnsmasq 또는 Unbound를 사용하는지 확인하려면 를 실행하세요 netstat -ulnp | grep ":53 ".

Ubuntu 12.04에서 NetworkManager는 다른 DNS 확인자와 잘 작동하지 않습니다(참조:오류 959037Thomas Hood의 요약거의 모든 것을 다룹니다). NetworkManager를 사용하여 Unbound를 계속 실행하려면 NetworkManager에 Dnsmasq를 실행하지 않도록 지시하는 것이 가장 좋습니다(NetworkManager가 사용하지 않는 Dnsmasq 기능을 사용하지 않는 한 필요하지 않은 Unbound 제외). 이 작업을 수행할 수 있어야 합니다.

  1. /etc/NetworkManager/NetworkManager.conf포함된 줄을 주석 처리하려면 편집하세요 ( dns=dnsmasq줄 시작 부분에 하나 추가).#
  2. NetworkManager 다시 시작을 사용하세요 service network-manager restart.

답변2

network-managerUbuntu 12.04에서는 dnsmasq가 데스크톱 설치에서 기본적으로 로컬 확인자로 사용되도록 하드 코딩되어 이제 기본적으로 실행됩니다 . 이는 이번 릴리스의 두 번째 주요 변경 사항입니다. 데스크탑 설치에서 DNS 서버는 NetworkManager가 관리하는 dnsmasq 서버를 가리키는 "127.0.0.1"입니다.

SERVER: 127.0.0.1#53(127.0.0.1)

이는 로컬 DNS(예: DNSMASQ)에서 쿼리에 대한 답변을 받고 있음을 의미합니다.

로컬 확인자가 필요하지 않은 경우 다음 절차를 사용하여 DNSMASQ를 끌 수 있습니다.

/etc/NetworkManager/NetworkManager.conf파일을 편집해야 합니다.

gksudo gedit /etc/NetworkManager/NetworkManager.conf

그리고 다음 줄을 주석 처리하세요.

dns=dnsmasq

도착하다

#dns=dnsmasq

파일을 저장하고 종료합니다.

network-manager이제 다음 명령을 사용하여 다시 시작 해야 합니다.

sudo systemctl restart network-manager

인용하다협회

답변3

주소를 확인하는 데 실제로 어떤 DNS 서버가 사용되는지 확인하려면 DNSMasq를 사용할 때 보고 DIG만 하기 때문에 사용할 수 없습니다 127.0.0.1. 대신:

DNSMasq에서 로그인을 활성화합니다.

sed -i 's/\#log-queries/log-queries/' /etc/dnsmasq.conf
systemctl restart dnsmasq

DNSMasq를 기록하고 출력을 모니터링합니다.

journalctl --unit dnsmasq.service -f

핑 호스트:

ping google.ca

그러면 내 업스트림 DNS 서버(192.168.1.1)가 이를 해결하는 것을 볼 수 있습니다.

: query[A] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: query[AAAA] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: reply google.ca is 172.217.1.3
: reply google.ca is 2607:f8b0:400b:80f::2003
: query[PTR] 3.1.217.172.in-addr.arpa from 127.0.0.1
: forwarded 3.1.217.172.in-addr.arpa to 192.168.1.1
: reply 172.217.1.3 is iad23s25-in-f3.1e100.net
: reply 172.217.1.3 is yyz10s14-in-f3.1e100.net

*.company.com 기업 VPN 뒤에 있는 호스트를 핑합니다(분할 터널링 중).

ping box.company.com

결과:

: query[A] box.company.com from 127.0.0.1
: forwarded box.company.com to vpn.ser.ver.ip
: query[AAAA] box.company.com from 127.0.0.1

관련 정보