Ubuntu: Bagaimana cara mengkonfigurasi server DNS di / etc / network / interfaces dengan benar untuk resolvconf?

14

Semua contoh yang saya lihat tentang konfigurasi ( /etc/network/interfaces) menunjukkan bahwa Anda mengkonfigurasi antarmuka dan kemudian di bawahnya memberi dns-*garis-garis seperti:

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

Sekarang saya sadar bahwa protokol DNS tidak tergantung pada mekanisme transportasi. Oleh karena itu seharusnya tidak salah menambahkan alamat IPv6 di dns-nameserverstelepon.

Namun, karena saya juga mengkonfigurasi antarmuka untuk IPv6, masuk akal untuk menambahkan dns-nameserversbaris di sana:

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

... atau melakukannya? Karena ketika resolvconfmenciptakan /etc/resolv.confitu hanya mengabaikan semua server IPv6 DNS. Tampaknya juga mengabaikan dns-searchdan dns-domain. Satu-satunya baris yang tampaknya dihormati adalah dns-nameserversgaris dari konfigurasi IPv4 untuk eth0.

Apa metode konfigurasi server DNS yang benar?


Bukti mendalam lebih lanjut mengapa itu harus menjadi bagian dari setiap ifacebait masing-masing . Kutipan dari man 8 resolvconf:

The ifup(8) program dapat digunakan untuk antarmuka jaringan mengkonfigurasi sesuai dengan pengaturan di /etc/network/interfaces(5). Untuk membuat ifupinformasi server nama push resolvconfketika mengkonfigurasi antarmuka, tambahkan dns-baris ke ifacebait yang relevan di /etc/network/interfaces. Untuk menambahkan alamat server nama, tambahkan baris yang dimulai dengan dns-nameservers.

0xC0000022L
sumber
Jika Anda masih memiliki masalah ini maka silakan posting seluruh file / etc / network / interfaces Anda dan output dari / usr / share / resolvconf / dump-debug-info yang termasuk dalam paket resolvconf di Ubuntu 15.04.
jdthood

Jawaban:

9

Adalah benar untuk menempatkan opsi dns- * di dalam iface eth0 inet staticbait atau iface eth0 inet6 staticbait. Opsi menjadi aktif ketika definisi antarmuka logis yang menjadi miliknya menjadi aktif.

Saya baru saja menguji ini pada mesin Ubuntu 15.04 saya sendiri yang biasanya saya konfigurasikan dengan DHCP. Saya menonaktifkan NetworkManager dan mengedit / etc / network / interfaces sehingga terlihat seperti ini:

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

Saya kemudian melakukannya

$ sudo ifup eth0

Hasil:

$ 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

Perhatikan bahwa alamat, dns-nameserver dan opsi dns-search dari kedua bait sekarang aktif.

[Diperbarui 30 Mei 2015]

jdthood
sumber
1

Pada RPi saya yang menjalankan Ubuntu 16.04.2 LTS, temuan saya adalah sebagai berikut:

Catatan: Saya menghapus NetworkManager dan baru saja meninggalkan resolvconf untuk melakukan tugasnya. (Ini adalah server tetap sehingga hal-hal tidak banyak mengubah jaringan bijaksana.)

JIKA saya memiliki baris dns-search dan dns-nameserver hanya pada SATU antarmuka (yang utama, kabel) tetapi tidak yang lain (wlan0) kemudian di reboot, sekitar 95% dari waktu file /etc/resolv.conf saya akan kosong.

mis. Ketika file antarmuka saya terlihat seperti ini:

# 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

LALU setelah reboot, resolv.conf saya akan terlihat seperti ini:

# 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

Namun, pada satu atau dua reboot saya perhatikan bahwa APA memiliki apa yang saya inginkan, misalnya

# 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

Solusi Ketika saya memberikan KEDUA antarmuka (kabel dan wlan0) garis dns-search dan dns-nameserver, semuanya bekerja dengan baik pada setiap reboot (sejauh ini pula)

yaitu file antarmuka berikut ini berfungsi untuk saya:

# 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

dan memberi saya resolv.conf berikut yang benar setelah setiap reboot (sejauh ini)

# 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

Saya menganggap konfigurasi duplikat ini normal, jika agak berlebihan.

Kesimpulan: Jika sebuah antarmuka (selain lo0) tidak memiliki informasi dns-search dan dns-nameserver, maka resolvconf tidak memasukkan apa pun dalam file resolv.conf Anda. (Seolah-olah ifup melakukan antarmuka wlan0 kedua dan ifup menghapus resolv.conf atau sejenisnya.)

Saya tidak yakin apakah ini bug atau tidak, saya merasa salah.

Akan
sumber
-1

Mengedit antarmuka jaringan untuk menambah penggunaan DNS khusus Anda adalah sebuah cara ... tetapi untuk memodifikasi secara permanen resolv.conf seluruh sistem dengan custom server nama Anda, Anda perlu menginstal paket resolvconf (jika belum diinstal secara default) dan mengisi basisnya file konfigurasi dengan nilai server nama DNS khusus Anda. Semoga panduan singkat ini akan membantu Anda untuk konfigurasi lebih lanjut mengenai entri DNS resolv.conf http://www.bytelinux.com/make-permanent-changes-to-resolv-conf-file-on-ubuntu/

Matei Cezar
sumber
2
Selamat datang di Unix & Linux! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan lebih banyak bagian penting dari panduan itu di sini, dan menyediakan tautan untuk referensi.
Anthon
@MateiCezar: bisakah Anda menjelaskan? Saya tidak yakin Anda bahkan membaca pertanyaan saya sampai akhir. Paket resolvconf yang diinstal. Saya ingin /etc/network/interfacesmengkonfigurasi server DNS saya masing-masing untuk IPv4 dan IPv6.
0xC0000022L
-1

Anda ingin menggunakan server DNS IPv6 di /etc/network/interfaces ... cukup masukkan entri DNS nameserver IPv6 Anda pada antarmuka jaringan tertentu seperti ini:

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

Untuk menambahkan dnsnamesers IPv6 permanen ke resolv.conf gunakan tautan yang sama dengan yang saya tambahkan di bawah ini dan edit file base resolvconf dengan mengisi dengan nameserver DNS IPv6 Anda sendiri:

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

Untuk mengkonfigurasi / etc / network / interfaces dengan IPv6 gunakan panduan ini http://www.bytelinux.com/configure-permanent-static-ip-address-alias-interfaces-debian-based-systems/ dan ganti IPv4 dengan IPv6 sebagai sebagai berikut: 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 
Matei Cezar
sumber
Memperbaiki pemformatan Anda. Sekali lagi, pertanyaan saya dengan jelas menyatakan bahwa ini tidak menghasilkan server DNS untuk IPv6 yang ditambahkan /etc/resolv.conf. Jika ini entah bagaimana bekerja untuk Anda, akan berguna untuk mengetahui versi sistem yang tepat.
0xC0000022L
biarkan saya meluruskan ini ... Anda ingin menggunakan resolver DNS IPv6 dari / etc / network / interfaces dan entah bagaimana menambahkannya dalam file itu tidak berfungsi untuk Anda?
Matei Cezar
Saya bisa menambahkannya ke /etc/network/interfacesbaik - baik saja. Apa yang tidak terjadi adalah mereka dipindahkan ke /etc/resolv.confsebagaimana mestinya. Dan saya mencoba mencari tahu apa yang saya lakukan salah, ya.
0xC0000022L
Masih belum mengerti? Entri DNS dari / etc / network / interfaces akan ditransfer ke /etc/resolv.conf atau tidak? Biasanya, entri namservers dari antarmuka tidak pernah ditransfer atau ditulis ke /etc/resolv.com, mereka bekerja sendiri dari NIC itu dan tidak diterapkan di seluruh sistem. Hanya file DNS /etc/resolv.conf yang digunakan oleh antarmuka yang tidak memiliki entri dnsnameservers.
Matei Cezar
Maaf ... tapi saya masih tidak mengerti apa yang Anda coba capai dengan entri server nama DNS ini.
Matei Cezar
-1

Mengapa Anda tidak mengimplementasikan server nama DNS IPv6 itu secara langsung di file /etc/resolv.conf dengan mengedit file base resolvconf seperti yang disarankan dalam jawaban saya sebelumnya dengan tautan dan masih terus menggunakan file antarmuka jaringan? Anda dapat menambahkan satu set server nama DNS IPv6 di /etc/resolv.conf dan jika Anda ingin menggunakan server nama IPv6 lainnya untuk NIC tertentu, gunakan hanya di / etc / network / interfaces.

bytelinux com
sumber
apa yang Anda sebutkan dalam kalimat terakhir Anda adalah persis alasan mengapa saya tidak ingin menggunakan basis resolvconf config dan itu persis apa yang saya sedang mencoba. Lebih jauh lagi justru itulah yang gagal.
0xC0000022L
OK aku mengerti! Tetapi mengapa Anda ingin mengimplementasikan hal-hal dengan cara ini? Anda hanya perlu server nama DNS agar dapat diakses di seluruh sistem, apakah ada alasan untuk mentransfernya dari jaringan / antarmuka ke resolv.conf, ketika Anda bisa menuliskannya di keduanya file dan Anda selesai !?
bytelinux com
Tidak yakin berapa banyak mesin yang Anda kelola, tetapi bagi saya itu sudah cukup untuk mencoba dan membuat hidup saya lebih mudah. Karena /etc/network/interfacesseharusnya melakukan pekerjaan, saya mencoba mencari tahu apa yang saya lakukan salah.
0xC0000022L