내가 본 모든 구성() 예제는 /etc/network/interfaces
인터페이스를 구성하고 다음 dns-*
과 같은 줄을 제공하는 것을 보여줍니다.
auto eth0
iface eth0 inet static
...
dns-nameservers 127.0.0.2
dns-search example.com my.example.com
이제 나는 DNS 프로토콜이 전송 메커니즘과 독립적이라는 것을 알고 있습니다. 따라서 유선으로 IPv6 주소를 추가하는 것 자체가 오류가 되어서는 안 됩니다 dns-nameservers
.
그러나 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)
. 인터페이스 구성 시ifup
네임서버 정보를 푸시 하려면 해당 섹션에 줄을 추가하세요. 네임서버 주소를 추가하려면 로 시작하는 줄을 추가하세요.resolvconf
dns-
iface
/etc/network/interfaces
dns-nameservers
답변1
iface eth0 inet static
stanza 또는 stanza 에 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
이제 주소, dns-nameservers 및 dns-search 옵션이 두 스탠자 모두에서 활성화되어 있습니다.
[2015년 5월 30일 업데이트]
답변2
Ubuntu 16.04.2 LTS를 실행하는 RPi에서 내가 찾은 내용은 다음과 같습니다.
참고: NetworkManager를 제거하고 resolvconf만 작업을 수행하도록 남겨 두었습니다. (이것은 고정 서버이므로 네트워킹 측면에서는 많은 변화가 없습니다.)
만약에한 인터페이스(기본 유선 인터페이스)에는 dns-search 및 dns-nameserver 행만 있고 다른 인터페이스(wlan0)에는 없습니다. 그런 다음 재부팅 시 약 95%의 시간 동안 내 /etc/resolv .conf 파일 비어있을 것입니다.
예를 들어 내 인터페이스 파일이 다음과 같을 때:
# 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
해결책 두 인터페이스(유선 및 wlan0)에 대해 dns-search 및 dns-nameserver 행을 제공하면 재부팅할 때마다 모든 것이 (지금까지) 제대로 작동합니다.
즉, 다음 인터페이스 파일이 저에게 효과적이었습니다.
# 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 등을 지우는 것과 같습니다.)
이것이 버그인지는 확실하지 않지만 나에게는 맞지 않는 것 같습니다.
답변3
/etc/network/interfaces에서 IPv6 DNS 서버를 사용하려면... 다음과 같이 특정 네트워크 인터페이스에 IPv6 DNS 이름 지정 항목을 입력하면 됩니다.
dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888.
resolv.conf에 IPv6 dnsnameser를 영구적으로 추가하려면 아래에 추가한 것과 동일한 링크를 사용하고 고유한 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
답변4
이전 답변의 링크에서 제안한 대로 resolvconf 기본 파일을 편집하고 이러한 IPv6 DNS 이름 서버를 /etc/resolv.conf 시스템 전체 파일에 직접 구현하고 네트워크 인터페이스 파일을 계속 사용하는 것은 어떨까요? 특정 NIC에 대해 추가 IPv6 이름 서버를 사용하려는 경우 /etc/resolv.conf에 DNS IPv6 이름 서버 세트를 추가하고 /etc/network/interfaces에서만 사용할 수 있습니다.