CentOS'ta döndürme, zaman aşımı gibi resolv.conf seçenekleri nasıl devam ettirilir?


9

CentOS, /etc/resolv.confperiyodik olarak yapılan tüm manuel değişiklikleri silecektir. Linux'taki varsayılanlar, makul bir süre içinde başarısız olma açısından zayıftır (her seferinde aynı sırada sorgu adı sunucuları, 5 saniyelik zaman aşımı, 2 yeniden deneme).

Bu nedenle, içinizdeki ilk DNS resolv.confaslında kritik bir yoldur. Başarısız olursa, başarısız olmadan önce 10 saniyeye bakabilirsiniz.

Bu varsayılanlar (bkz tweakable olan resolv.conf adam sayfası), ama nasıl herhangi bir değişiklik CentOS kalıcı hale getirilebilir ve yeniden başlar vs. yoluyla devam?

Yanıtlar:


12

Cevap şu adreste bulunabilir /sbin/dhclient-script:

if [ -n "${RES_OPTIONS}" ]; then
    echo "options ${RES_OPTIONS}" >> ${rscf}
fi

Ancak, RES_OPTIONSkomut dosyasının almasını sağlamak için ayarlayabileceğiniz çok açık değildir - arama etki alanı gibi bazı şeyler ifcfg-ethXdosyada ayarlanabilir , ancak çözümleyici seçenekleri başka bir yerde ayarlanır. İstediğiniz dosya aslında /etc/sysconfig/network. İlgili seçenekleri ayarlamak için bu dosyaya böyle bir şey ekleyin:

RES_OPTIONS="rotate timeout:1 retries:1"

Bu, zaman aşımını 1 saniyeye ayarlayacak, tek bir yeniden deneme kullanacak ve istemciye her seferinde sırayla listede dolaşmak yerine çözümleyicileri istek başına döndürmesini söyleyecektir.

Değişikliklerin hemen yürürlüğe girmesini istiyorsanız, bir service network restartkomut verin ve /etc/resolv.confyenisini tüm ihtişamıyla kontrol edin . Bunu test ederken benimki gibi görünüyordu:

# cat /etc/resolv.conf 
; generated by /sbin/dhclient-script
search example.com
options rotate timeout:1 retries:1
nameserver 10.1.1.2
nameserver 10.1.1.1

1

Kabul edilen cevap eski ağ komut dosyalarını kullanırken. NetworkManager kullanıyorsanız bile olmayabilir /etc/sysconfig/networkve NetworkManager tarafından yönetilen bağlantılar için kullanılmayacaktır .

Eğer kullanırsanız NetworkManagerın :

Seçenekler eklemek rotateiçin , ex bond0:

nmcli con mod bond0 +ipv4.dns-options rotate

Bu seçeneği kaldırmak için:

nmcli con mod bond0 -ipv4.dns-options rotate

+Çok değişiklik seçeneklerine iyidir; NetworkManager mevcut seçenekleri algılayacak ve güncelleyecek kadar akıllıdır. Örneğin, zaman aşımı değerini değiştirme:

root@debian:~# nmcli con show bond0 |grep ipv4.dns-options
ipv4.dns-options:                       "rotate,timeout:5"
root@debian:~# nmcli con mod bond0 +ipv4.dns-options timeout:3
root@debian:~# nmcli con show bond0 |grep ipv4.dns-options
ipv4.dns-options:                       "rotate,timeout:3"

Bu, değerin kaldırılması için yok sayıldığı ve hatta gerekmediği anlamına gelir. Zaman aşımını kaldırmak için:

nmcli con mod bond0 -ipv4.dns-options timeout

Zaman aşımı değeriyle de çalışır, ancak bu değer yok sayılır , bu nedenle kaldırıldığında timeout:5diğer zaman aşımı değerleri de kaldırılır.

Not: Bu I bakarak bir rastladım iken , ilgili hata giderilmiştir ağ yöneticisi v1.14.6 , v1.15.2-dev ve V1.16 . Herhangi bir sorunla karşılaşırsanız, önce ağ yöneticisi sürümünüzü kontrol edin .


1
Eski bir kabul edilen cevaba yeni bir cevap eklerken, bir sorunun ve cevabın kaç yaşında olduğunu not etmek iyi bir fikirdir. Şimdi miras olarak kabul edilen şey, sorunun sorulduğu 4+ yıl önce mutlaka böyle değildi. Eski olarak etiketlemek yerine, varsayılanların ne zaman değiştiğini (ne CentOS sürüm - 8 olabilir?) Ve daha sonra bilgilerinizi eklemeye devam ettiyseniz, çok daha yararlı bir yanıt olacaktır. Alternatif olarak kendi sürümünüzü yeniden isteyin ve yanıtlayın (daha yeni CentOS sürümleri için veya örneğin Ağ Yöneticisi'ni kullanırken) ve referans olması için bu eski sürümle bağlantı kurun.
Adam C

Eski yol yine de geçerli olabilir ... NetworkManager uzun zamandır var ama yine de eski yolu Debian ve CentOS'ta yapılandırabilirsiniz.
Thomas Guyot-Sionnest

0

Bunu nmclikomutlar yerine düz dosyalarla ( gerekirse bir yapılandırma yönetim aracıyla) yapmanız gerekiyorsa Red Hat başka bir çözüm sunar.

/etc/NetworkManager/dispatcher.d/15-resolvBir özel /etc/resolv.conföğeyi yerine kopyalayan bir komut dosyası oluşturun .

#!/bin/bash
#
# Description : script to override default resolv.conf file
# with customized file.
cp -f /etc/resolv.conf.custom /etc/resolv.conf

NetworkManager yeniden başlatıldıktan sonra, bu komut dosyası yürütülür ve dosyayı kendi kodunuzla değiştirir.

https://access.redhat.com/solutions/61921


0

NetworkManager'a /etc/resolv.confdosyayı hep birlikte yönetmemesini söyleyebilirsiniz .

  1. Oluşturmak /etc/NetworkManager/conf.d/90-dns-none.confaşağıdaki içeriği dosyayı:

    [main]
    dns=none
    
  2. NetworkManager hizmetini yeniden yükleyin:

    systemctl reload NetworkManager
    

Bunun geldiği dokümantasyon /etc/resolv.conf, dosyanızın sembolik bağlantısını değiştirmeyi içeren ikinci bir çözüme sahiptir .

Bunu bir okuma: 22. /etc/resolv.conf dosyasını el ile yapılandırma


-1

sadece ekle

resolv_conf_options=rotate\ timeout:1\ retries:1

senin resolvconf.conf


Bunun CentOS'ta bir seçenek olduğundan emin misiniz (gösterilecek dokümanlara / bir şeye bağlantı var)? Bir FreeBSD seçeneği ve Ubuntu olarak görüyorum ama CentOS'ta bulamıyorum
Adam C

Openresolv paketinin bir parçası
Evgeny F

1
başka bir yerde olsa özellikle kontrollü ortamlarda CentOS için bu yüzden gerçekten bir seçenek, değil kötü bir seçenek, standart bir paket olarak görünmüyor
Adam C

-3

Aynı sorunla yeni abone olan linux VPS'imle son kez karşılaştım. Nasıl çözüldü dosyayı değiştirilemez hale getirmek için chattr + i komutunu kullanmak oldu. / Etc klasörüne gidin ve resolv.conf dosyasında gerekli değişiklikleri yaptıktan sonra bunu çalıştırın:

chattr + i resolv.conf

Ayarı geri almak istiyorsanız, şunu yapın:

chattr -i resolv.conf

Referansınız için tam kılavuz: http://boxtutor.com/fix-etcresolv-conf-is-not-saving-after-server-reboot/


Burada potansiyel bir sorun olurdu çünkü daha sonra DHCP'den ad sunucularındaki değişiklikleri alamazdı - sık sık değişmez ama yine de çalışmasını isterdim
Adam C
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.