우분투 : resolvconf에 대해 / etc / network / interfaces에서 DNS 서버를 올바르게 구성하는 방법은 무엇입니까?


14

내가 본 구성 ( /etc/network/interfaces) 의 모든 예 는 인터페이스를 구성한 다음 그 아래에 다음 dns-*과 같은 줄을 보여줍니다.

auto eth0
iface eth0 inet static
        ...
        dns-nameservers 127.0.0.2
        dns-search example.com my.example.com

이제 DNS 프로토콜이 전송 메커니즘과 무관하다는 것을 알고 있습니다. 따라서 dns-nameservers회선 에 IPv6 주소를 추가하는 것은 잘못된 일이 아닙니다 .

그러나 어쨌든 IPv6에 대한 인터페이스도 구성하고 있으므로 여기에 dns-nameservers줄 을 추가하는 것이 좋습니다 .

iface eth0 inet6 static
        ...
        dns-nameservers ::2
        dns-search example.com my.example.com

... 아니면 했습니까? resolvconf생성 시 /etc/resolv.conf모든 IPv6 DNS 서버를 무시하기 때문입니다. 또한 무시하는 것 dns-search하고 dns-domain. 유일하게 존중하는 dns-nameservers줄은의 IPv4 구성 의 줄입니다 eth0.

DNS 서버를 구성하는 올바른 방법은 무엇입니까?


iface스탠자의 일부 여야하는 이유에 대한 추가 상황 증거 . 인용 man 8 resolvconf:

ifup(8) 프로그램의 설정에 따라 구성 네트워크 인터페이스로 사용할 수 있습니다 /etc/network/interfaces(5). 인터페이스를 구성 ifupresolvconf때 이름 서버 정보를 푸시 하려면 dns-에서 관련 iface스탠자에 행을 추가하십시오 /etc/network/interfaces. 네임 서버 주소를 추가하려면로 시작하는 줄을 추가하십시오 dns-nameservers.


여전히이 문제가 발생하면 전체 / etc / network / interfaces 파일과 Ubuntu 15.04의 resolvconf 패키지에 포함 된 / usr / share / resolvconf / dump-debug-info의 출력을 게시하십시오.
jdthood

답변:


9

iface eth0 inet static스탠자 또는 스탠자 에 dns- * 옵션을 넣는 것이 iface eth0 inet6 static좋습니다. 해당 옵션이 속한 논리적 인터페이스 정의가 활성화되면 옵션이 활성화됩니다.

방금 DHCP로 구성하는 내 자신의 Ubuntu 15.04 시스템에서 이것을 테스트했습니다. NetworkManager를 비활성화하고 / etc / network / interfaces를 다음과 같이 편집했습니다.

iface eth0 inet static
        address 192.168.178.22
        netmask 255.255.255.0
        dns-nameservers 8.8.8.8
        dns-search foo

iface eth0 inet6 static
        address fe80::390:f5ff:fef7:96b9/64
        dns-nameservers ::2
        dns-search bar

나는 그때했다

$ sudo ifup eth0

결과 :

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:90:f5:f7:96:b9  
      inet addr:192.168.178.22  Bcast:192.168.178.255  Mask:255.255.255.0
      inet6 addr: fe80::390:f5ff:fef7:96b9/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2114609 errors:0 dropped:1 overruns:0 frame:0
      TX packets:1757693 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:2033346950 (2.0 GB)  TX bytes:1318685445 (1.3 GB)
      Interrupt:20 Memory:f7e00000-f7e20000 

$ 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 ::2
nameserver 8.8.8.8
search bar foo

두 스탠자의 address, dns-nameservers 및 dns-search 옵션이 이제 활성화되었습니다.

[2015 년 5 월 30 일 업데이트]


1

Ubuntu 16.04.2 LTS를 실행하는 RPi에서 결과는 다음과 같습니다.

참고 : NetworkManager를 제거하고 resolvconf를 그대로 두었습니다. (이것은 고정 된 서버이므로 네트워크를 많이 바꾸지 않습니다.)

IF 내 /etc/resolv.conf 파일이 될 것이다 시간의 95 %에 대해, 다음 재부팅 만 ONE 인터페이스 (기본, 유선 하나)가 아닌 다른 (wlan0)에서 DNS 검색 및 DNS-네임 서버 라인을했다 빈.

예를 들어 인터페이스 파일이 다음과 같은 경우

# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
    address 192.168.1.16
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1

# end stanza with clear line+

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0 
iface wlan0 inet static
    address 192.168.1.17
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1 
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

그런 다음 재부팅 후 내 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

그러나 한두 번의 재부팅으로 나는 그것이 원하는 것을 가지고 있음을 알았습니다.

# 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 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn

해결 방법 dns-search 및 dns-nameserver 줄 모두 인터페이스 (유선 및 wlan0)를 제공했을 때 모든 재부팅시 (지금까지) 잘 작동했습니다.

즉 다음 인터페이스 파일이 저에게 효과적입니다.

# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
    address 192.168.1.16
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1

# end stanza with clear line+

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0 
iface wlan0 inet static
    address 192.168.1.17
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

재부팅 할 때마다 (지금까지) 다음과 같은 올바른 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 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn

다소 중복되는 경우이 중복 구성이 정상이라고 가정합니다.

결론 : lo0 이외의 인터페이스에 dns-search 및 dns-nameserver 정보가없는 경우 resolvconf는 resolv.conf 파일에 아무것도 넣지 않습니다. (ifup이 wlan0 인터페이스를 두 번째로 수행하고 ifup이 resolv.conf 등을 지운 것처럼 보입니다.)

이것이 버그인지 확실하지 않지만 나에게 기분이 좋지 않습니다.


-1

사용자 정의 DNS 사용을 추가하기 위해 네트워크 인터페이스를 편집하는 방법입니다 ...하지만 사용자 정의 dnsnameserver로 시스템 전체 resolv.conf를 영구적으로 수정하려면 resolvconf 패키지를 설치하고 (기본적으로 설치되어 있지 않은 경우) 기본을 채워야합니다. 사용자 정의 DNS 이름 서버 값이있는 구성 파일. 이 간단한 안내서가 resolv.conf DNS 항목에 대한 추가 구성에 도움이되기를 바랍니다. http://www.bytelinux.com/make-permanent-changes-to-resolv-conf-file-on-ubuntu/


2
유닉스 및 리눅스에 오신 것을 환영합니다! 이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 것 여기에 가이드의 필수적인 부분을 더 포함하고, 참조에 대한 링크를 제공합니다.
Anthon

@MateiCezar : 정교하게 설명해 주시겠습니까? 나는 당신이 내 질문을 끝까지 읽지 못할 것이라고 확신합니다. 패키지 resolvconf 설치되었습니다. /etc/network/interfacesIPv4 IPv6에 대해 각각 DNS 서버를 구성 하고 싶습니다 .
0xC0000022L

-1

/ etc / network / interfaces에서 IPv6 DNS 서버를 사용하려고합니다. IPv6 DNS 이름 지정 항목을 다음과 같이 특정 네트워크 인터페이스에 두십시오.

dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888. 

resolv.conf에 IPv6 dnsnamesers를 영구적으로 추가하려면 아래에 추가 한 것과 동일한 링크를 사용하고 자신의 IPv6 DNS 이름으로 채워서 resolvconf 기본 파일을 편집하십시오.

nameserver 2001:4860:4860::8844
nameserver 2001:4860:4860::8888 

IPv6을 사용하여 / etc / network / interfaces를 구성하려면이 안내서 http://www.bytelinux.com/configure-permanent-static-ip-address-alias-interfaces-debian-based-systems/를 사용 하고 IPv4를 IPv6으로 바꾸십시오. 다음과 같습니다. auto eth0

iface eth0 inet6 static
        address 2800:210:0:1::3
        netmask 64
        gateway 2800:210:0:1::1
        dns-nameservers 2001:4860:4860::8844 

서식을 수정했습니다. 다시 한 번, 내 질문에 이것이 IPv6에 대한 DNS 서버가에 추가되지 않는다는 것이 분명합니다 /etc/resolv.conf. 이것이 어떻게 든 작동한다면 정확한 시스템 버전을 아는 것이 도움이 될 것입니다.
0xC0000022L

이 문제를 바로 잡겠습니다. / etc / network / interfaces에서 IPv6 DNS 리졸버를 사용하려고하는데 어떻게 든 해당 파일에 추가해도 작동하지 않습니까?
Matei Cezar

/etc/network/interfaces벌금에 추가 할 수 있습니다 . 일어나지 않는 것은 그들이 원하는대로 옮겨진다는 것 /etc/resolv.conf입니다. 그리고 내가 뭘 잘못하고 있는지 알아 내려고 노력하고 있습니다.
0xC0000022L

아직도 얻지 못했습니까? / etc / network / interfaces의 DNS 항목은 /etc/resolv.conf로 전송됩니까? 인터페이스의 해당 namservers 항목은 /etc/resolv.com으로 전송되거나 쓰여지지 않으며 해당 NIC에서 자체적으로 작동하며 시스템 전체에서 구현되지 않습니다. dnsnameservers 항목이없는 인터페이스는 /etc/resolv.conf 파일 DNS 만 사용합니다.
Matei Cezar

죄송합니다 ...하지만 여전히이 DNS 네임 서버 항목으로 달성하려는 것을 이해하지 못합니다.
Matei Cezar

-1

링크에 대한 이전 답변에서 제안한대로 resolvconf 기본 파일을 편집하여 /etc/resolv.conf 시스템 전체 파일에서 직접 IPv6 DNS 이름 서버를 구현하고 여전히 네트워크 인터페이스 파일을 사용하지 않는 이유는 무엇입니까? /etc/resolv.conf에 DNS IPv6 네임 서버 세트를 추가 할 수 있으며 특정 NIC에 다른 IPv6 네임 서버를 사용하려면 / etc / network / interfaces에서만 사용하십시오.


당신이 당신의 마지막 문장에서 언급 정확히 내가 resolvconf 기본 설정을 사용하지 않는 이유입니다 그리고 내가 정확히 무엇을 하고 노력. 또한 그것은 정확히 실패한 것입니다.
0xC0000022L

알았어. 알았어! 그러나 이러한 방식으로 구현하려는 이유는 무엇이든 시스템 전체에서 액세스 할 수있는 DNS 이름 서버 만 필요하면 네트워크 / 인터페이스에서 resolv.conf로 전송할 수있는 이유가 있습니까? 파일이 완성되었습니다!?
bytelinux com

몇 대의 컴퓨터를 관리하는지 확실하지 않지만 저의 삶을 더 편하게 만들어도 충분합니다. /etc/network/interfaces일을해야하기 때문에 내가 뭘 잘못하고 있는지 알아 내려고 노력하고 있습니다.
0xC0000022L
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.