Ubuntu: / etc / network / arabirimindeki DNS sunucularını resolvconf için nasıl doğru şekilde yapılandırırım?


14

Ben configurations ( /etc/network/interfaces) gördüğüm tüm örnekler bir arayüz yapılandırmak ve sonra altında dns-*gibi satırları verdi gösterdi :

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

Şimdi DNS protokolünün taşıma mekanizmasından bağımsız olduğunu biliyorum. Bu nedenle, dns-nameservershatta bir IPv6 adresi eklemek her zaman yanlış olmamalıdır .

Yine de, IPv6 için arabirimi yine de yapılandırdığımdan, dns-nameserversoradaki satırı eklemek mantıklıydı :

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

... ya da yaptı mı? Çünkü resolvconfoluşturulduğunda /etc/resolv.conf, tüm IPv6 DNS sunucularını yok sayar. Ayrıca görmezden geliyor dns-searchve dns-domain. Onur duyduğu tek satır dns-nameserversIPv4 yapılandırmasından gelen satır eth0.

DNS sunucularını yapılandırmanın doğru yöntemi nedir?


Neden ilgili her bir ifacestanza'nın bir parçası olması gerektiğine dair ilave durum kanıtı . Alıntı man 8 resolvconf:

ifup(8) Program içinde ayarlara göre yapılandırmak ağ arayüzleri için kullanılabilir /etc/network/interfaces(5). ifupPush ad sunucusu bilgilerini resolvconfbir arabirimi yapılandırdığında yapmak dns-için, ilgili ifacestanzadaki satırları ekleyin /etc/network/interfaces. Ad sunucusu adresleri eklemek için ile başlayan bir satır ekleyin dns-nameservers.


Hala bu sorunla karşılaşıyorsanız, lütfen tüm / etc / network / interfaces dosyanızı ve / usr / share / resolvconf / dump-debug-info çıktılarınızı Ubuntu 15.04'teki resolvconf paketine ekleyin.
jdthood

Yanıtlar:


9

Dns- * seçeneklerini iface eth0 inet staticstanza veya stanza'ya koymak doğrudur iface eth0 inet6 static. Ait oldukları mantıksal arayüz tanımı aktif olduğunda seçenekler aktif hale gelir.

Bunu sadece normalde DHCP ile yapılandırdığım kendi Ubuntu 15.04 makinemde test ettim. NetworkManager'ı devre dışı bıraktım ve / etc / network / arayüzlerini şu şekilde görünecek şekilde düzenledim:

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

Sonra yaptım

$ sudo ifup eth0

Sonuçlar:

$ 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

Her iki stanzadaki adreslerin, dns-ad sunucularının ve dns-arama seçeneklerinin artık etkin olduğunu unutmayın.

[30 Mayıs 2015'te güncellenmiştir]


1

Ubuntu 16.04.2 LTS çalıştıran RPi'mde bulgularım şöyleydi:

Not: NetworkManager'ı kaldırdım ve işlerini yapmak için resolvconf'u bıraktım. (Bu sabit bir sunucudur, bu yüzden işler çok fazla ağ açısından değişmez.)

Eğer dns-search ve dns-nameserver satırlarını yalnızca ONE arabiriminde (birincil, kablolu olan), ancak diğeri (wlan0) sonra yeniden başlatmasaydım, /etc/resolv.conf dosyamın yaklaşık% 95'i boş.

Örneğin, arayüzlerim dosyası şöyle gözüktüğünde:

# 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

O zaman bir yeniden başlatmadan sonra benim resolv.conf şöyle görünecektir:

# 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

Ancak, bir veya iki yeniden başlatmada, istediğim gibi olduğunu fark ettim, örn.

# 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

Çözüm Dns-search ve dns-nameserver hatlarını İKİ arayüzlere (kablolu ve wlan0) verdiğimde, her yeniden başlatmada hepsi iyi çalıştı (şimdiye kadar)

yani aşağıdaki arayüzler dosyası benim için çalışıyor:

# 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

ve her yeniden başlatmadan sonra bana aşağıdaki doğru resolv.conf dosyasını veriyor (şimdiye kadar)

# 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

Biraz gereksiz olursa, bu yinelenen yapılandırmanın normal olduğunu varsayıyorum.

Sonuç: (lo0 dışında) bir arabirimde dns-search ve dns-nameserver bilgileri yoksa, resolvconf resolv.conf dosyanıza hiçbir şey koymaz. (Sanki ifup wlan0 arayüzünü ikinci yaptı ve ifup resolv.conf ya da benzeri gibi sildi.)

Bunun bir hata olup olmadığından emin değilim, ama bana yanlış geliyor.


-1

Özel DNS'nizi kullanmak için ağ arabirimlerini düzenlemek bir yoldur ... ancak sistem genelinde resolv.conf'u özel dnsnameserver'ınızla kalıcı olarak değiştirmek için resolvconf paketini yüklemeniz (varsayılan olarak önceden yüklenmemişse) ve tabanını doldurmanız gerekir. özel DNS ad sunucuları değerlerinizle yapılandırma dosyası. Umarım bu kısa kılavuz, resolv.conf DNS girişleriyle ilgili diğer yapılandırmalar için size yardımcı olacaktır. Http://www.bytelinux.com/make-permanent-changes-to-resolv-conf-file-on-ubuntu/


2
Unix ve Linux'a hoş geldiniz! Bu teorik olarak soruya cevap görülebilir fakat tercih edildiğini burada o kılavuzun temel parçaların daha dahil etmek ve başvuru için bağlantı sağlar.
Anthon

@MateiCezar: Lütfen biraz ayrıntı verebilir misiniz? Soruyu sonuna kadar okuduğuna emin değilim. Paket resolvconf edilir yüklü. İsterdim /etc/network/interfacesIPv4 için benim DNS sunucularını yapılandırmak ve sırasıyla IPv6.
0xC0000022L

-1

IPv6 DNS sunucularını /etc/network/interfaces... adresinde kullanmak istiyorsunuz.

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

Resolv.conf'a kalıcı olarak IPv6 dnsnamesers eklemek için aşağıda eklediğim bağlantıyı kullanın ve kendi IPv6 DNS adlarınızla doldurarak resolvconf temel dosyasını düzenleyin:

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

/ Etc / network / arayüzlerini IPv6 ile yapılandırmak için bu kılavuzu http://www.bytelinux.com/configure-permanent-static-ip-address-alias-interfaces-debian-based-systems/ kullanın ve IPv4'ü IPv6 ile değiştirin şöyle: oto 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 

Biçimlendirmeniz düzeltildi. Yine, sorum açıkça bunun IPv6 için DNS sunucularının eklenmesine neden olmadığını açıkça belirtiyor /etc/resolv.conf. Bu bir şekilde sizin için işe yararsa, tam sistem sürümünü bilmek yararlı olacaktır.
0xC0000022L

Bunu düz yapmama izin verin ... / etc / network / arabirimlerinden IPv6 DNS çözümleyicilerini kullanmak ve bunları bir şekilde bu dosyaya eklemek sizin için uygun değil mi?
Matei Cezar

Onları /etc/network/interfacespara cezasına ekleyebilirim . Olan şey, olması /etc/resolv.confgerektiği gibi aktarılmalarıdır . Ve neyi yanlış yaptığımı anlamaya çalışıyorum, evet.
0xC0000022L

Hala anlamadýn mý? / Etc / network / interfaces içindeki bu DNS girdileri /etc/resolv.conf dosyasına aktarılıyor mu aktarılmıyor mu? Arabirimlerdeki bu ad sunucularının girişlerini hiçbir zaman /etc/resolv.com'a aktarılmaz veya yazılmaz, bu NIC'den kendi başlarına çalışır ve sistem genelinde uygulanmaz. Yalnızca /etc/resolv.conf dosya DNS'si, dnsnameservers girişleri olmayan arabirimler tarafından kullanılır.
Matei Cezar

Üzgünüm ... ama yine de ben bu DNS ad sunucuları girişleri ile elde etmeye çalıştığınız anlamıyorum.
Matei Cezar

-1

Neden bu IPv6 DNS ad sunucularını, bağlantı ile önceki cevabımda önerildiği gibi resolvconf temel dosyasını düzenleyerek ve hala ağ arayüzleri dosyasını kullanmaya devam ederek doğrudan /etc/resolv.conf sistem genelindeki dosyaya uygulamıyorsunuz? /Etc/resolv.conf dosyasına bir dizi DNS IPv6 ad sunucusu ekleyebilirsiniz ve belirli bir NIC için diğer IPv6 ad sunucularını kullanmak istiyorsanız, bunları yalnızca / etc / network / arabirimlerinde kullanın.


ne son cümlede söz tam olarak resolvconf taban yapılandırma kullanmak istemiyorum nedeni budur ve ben aynen böyle am çalışıyor. Dahası, tam olarak başarısız olan şeydir.
0xC0000022L

tamam anladım! Ancak neden bu şekilde uygulamak istiyorsunuz? Her iki şekilde de yalnızca bu DNS ad sunucularının sistem çapında erişilebilir olması gerekir, bunları ağ / arabirimlerden resolv.conf dosyasına aktarmak için her ikisine de yazabileceğiniz herhangi bir neden var mı? ve bitirdiniz !?
bytelinux com

Kaç makineyi yönettiğinizden emin değilim, ama benim için hayatımı kolaylaştırmak için yeterli. Yana /etc/network/interfacesiş yapmak gerekiyordu, ben yanlış yapıyorum anlamaya çalışıyorum.
0xC0000022L
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.