CentOS'ta yerel DNS önbelleğini temizleme


20

CentOS 6'da yerel DNS önbelleğini temizlemenin bir yolunu arıyorum.

Sistem herhangi bir DNS sunucusu veya herhangi bir şey çalıştırmıyor ve her DNS sorgusunun, yinelenen olanlar için bile yapılandırılmış ad sunucusuna gitmesine izin vermek istiyorum.

Çevrimiçi bulduğum şeylerin çoğu bana yapmamı service nscd restart, yeniden yüklememi veya yapmamı söylüyor nscd -i hosts. Ancak, hiçbiri önbelleği temizlemiyor gibi görünüyor.

Bu yüzden, bunu nasıl yapabileceğime dair bir fikrin olup olmadığını merak ediyorum. Çekirdekte çevirmem gereken bir tür anahtar var mı? Her türlü çalışma da gayet iyi.


Önbelleğin temizlendiğini kontrol etmek için ne yapıyorsunuz?
John

Tamam biraz karmaşık, sistemimde bağlantı noktası 53 üzerinde dinleme ve DNS sorguları belirli bir şekilde iletmek için bir program var ve ayrıca bir http proxy 'DNS sunucusu' olarak localhost kullanarak; ilk sorgu (demek wget -e 'http_proxy=localhost:3128' xxx.com) sorguyu doğru yönlendirildiğini görebilirsiniz, ancak sonraki tüm değildir. Eğer yeterince beklersem (önbellek sona erer), o zaman tekrar çalışır.
zee

Ve ayrıca proxy'yi (kalamar) herhangi bir nesneyi önbelleğe almayacak şekilde yapılandırdım, bu yüzden sistemin hala bir şekilde cevabı önbelleğe aldığını varsayıyorum
zee

1
nscd -i hosts -> her zaman çalışır. Nscd'yi arka arkaya 3 kez yeniden başlattım ve önbelleği temizlemek istemedi.
Danie

nscd, CentOS 7 minimalde bir şey gibi görünmüyor. Sorunun CentOS 6'yı çağırdığını biliyorum, ancak başlık genel olarak CentOS'u çağırıyor. CentOS 7 yolu nedir?
duct_tape_coder

Yanıtlar:


11

DNS isteklerini önbelleğe alan yerel kutunuz değil, önbelleğe aldığınız kişide kullandığınız DNS çözümleyicisidir /etc/resolv.conf.

Bu önbelleğe alınmış sorguların yanıtlanmasını önlemek için:

  1. Çözümleyiciyi değiştirin.

    $ dig @<resolve-ip> www.google.com

  2. DNS sunucusuna erişebiliyorsanız, çözümleyicideki DNS önbelleğini temizleyin.

    $ sudo /etc/init.d/bind restart


Hmm ama dns_nameservers 127.0.0.1proxy yapılandırma dosyasında ayarladım , ve dinleyici sadece önceden yapılandırılmış ad sunucusuna sorgu iletir, resolv.conf bile danışılmaması durumunda değil mi?
zee

4
"bash: /etc/init.d/bind: Böyle bir dosya veya dizin yok" Ve OP yöntemi "nscd.service yeniden başlatılamadı: Birim nscd.service yüklenemedi: Böyle bir dosya veya dizin yok." Sanırım bunlar taşındı / değiştirildi. Neden sadece işe yarayan şeyleri terk edemiyorlar ya da en azından takma adları koruyamıyorlar? Bir Linux kutusunu kullanmak için OS uzmanı olmak için yeterince kötü. Her sürümde işletim sistemini yeniden öğrenmeniz gerektiğinde daha da kötüsü.
JosephK

3

İstemci makinede DNS önbelleğinin yenilenmesinden veya temizlenmesinden sonra bile, çalışmazsa sunucunuza veya istemci makinenize herhangi bir NIS sunucusuna bağlı olup olmadığına bakın. /etc/nsswitch.conf dosyasına girin ve ayrıca NIS ana sunucusu ana bilgisayarlar listesindeki ip adresini değiştirmeniz gerekir.


Bu benim çözümüme yol açtı. / Etc / hosts içinde daha önce statik olarak yapılandırılmış eski ip adresi vardı. Bir süre önce yaptığım bir şey. Bu satırı silmek (veya yeni ip ile değiştirmek) sorunu çözdü ve makine adını ana bilgisayar adını kullanarak pinglememe izin verdi.
Paul

3

Yanıtın önbelleğe alındığı sistem olmadığından neredeyse eminim - bu bölüm (sistem önbelleğe alma) yalnızca nscdarka plan programı tarafından ele alınır . Bu arka plan programının yeniden başlatılması (veya tamamen durdurulması), ad hizmeti isteği yanıtlarının işletim sisteminin önbelleğe alınmasını sıfırlar veya ortadan kaldırır.

İki olasılık sunacağım, ancak 53 numaralı bağlantı noktasına kurduğunuz özel dinleyici suları önemli ölçüde çamurluyor:

  • C) Sisteminiz yukarı akışta sorgular yayınlıyor, ancak hemen yukarı akış adı çözümleyicisi yanıtı ayarlarına veya kaydın TTL'sine göre önbelleğe alıyor.
  • B) Özel dinleyiciniz yanıtları dahili olarak önbelleğe alıyor ve sadece önbellek süresi dolmadan tekrar sorulduğunda bu yanıtı sisteme geri veriyor.

Giriş için teşekkürler, ancak dinleyici sorguyu ve yanıtı iletmekten başka bir şey yapmaz, sonuçta sadece 200 kod satırı gibi. Yani ikinci durum olmamalı; Ayrıca dinleyici aldığı her şeyi yazdırıyor, bu yüzden gerçekten bir şey elde emin değilim: |
zee
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.