Önbellekleme için nscd kullanmayan DNS sorguları


10

Bunu yapmak için Bind kullanmayı bırakabilirsiniz böylece DNS yerel olarak önbellek için nscd (Nameservices Cache Daemon) kullanmaya çalışıyorum. Başladım ve ntpd bunu kullanmaya çalışıyor gibi görünüyor. Ancak ana bilgisayarlar için her şey onu görmezden geliyor gibi görünüyor. Örneğin apache.org'u 3 kez kazarsam hiçbiri önbelleğe ulaşmaz. nscd -gKullanılıp kullanılmadığını belirlemek için önbellek istatistiklerini görüntülüyorum . Ben de isabet görebilirsiniz ve sorguları bile nscd vurmak olmadığını görmek için hata ayıklama günlük düzeyini döndü.

nsswitch.conf

# Begin /etc/nsswitch.conf
passwd: files
group: files
shadow: files

publickey: files

hosts: cache files dns
networks: files

protocols: files
services: files
ethers: files
rpc: files

netgroup: files
# End /etc/nsswitch.confenter code here

nscd.conf

#
# /etc/nscd.conf
#
# An example Name Service Cache config file.  This file is needed by nscd.
#
# Legal entries are:
#
#       logfile                 <file>
#       debug-level             <level>
#       threads                 <initial #threads to use>
#       max-threads             <maximum #threads to use>
#       server-user             <user to run server as instead of root>
#               server-user is ignored if nscd is started with -S parameters
#       stat-user               <user who is allowed to request statistics>
#       reload-count            unlimited|<number>
#       paranoia                <yes|no>
#       restart-interval        <time in seconds>
#
#       enable-cache            <service> <yes|no>
#       positive-time-to-live   <service> <time in seconds>
#       negative-time-to-live   <service> <time in seconds>
#       suggested-size          <service> <prime number>
#       check-files             <service> <yes|no>
#       persistent              <service> <yes|no>
#       shared                  <service> <yes|no>
#       max-db-size             <service> <number bytes>
#       auto-propagate          <service> <yes|no>
#
# Currently supported cache names (services): passwd, group, hosts, services
#

    logfile                 /var/log/nscd.log
    threads                 4
    max-threads             32
    server-user             nobody
#   stat-user               somebody
    debug-level             9
#   reload-count            5
    paranoia                no
#   restart-interval        3600

    enable-cache            passwd          yes
    positive-time-to-live   passwd          600
    negative-time-to-live   passwd          20
    suggested-size          passwd          211
    check-files             passwd          yes
    persistent              passwd          yes
    shared                  passwd          yes
    max-db-size             passwd          33554432
    auto-propagate          passwd          yes

    enable-cache            group           yes
    positive-time-to-live   group           3600
    negative-time-to-live   group           60
    suggested-size          group           211
    check-files             group           yes
    persistent              group           yes
    shared                  group           yes
    max-db-size             group           33554432
    auto-propagate          group           yes

    enable-cache            hosts           yes
    positive-time-to-live   hosts           3600
    negative-time-to-live   hosts           20
    suggested-size          hosts           211
    check-files             hosts           yes
    persistent              hosts           yes
    shared                  hosts           yes
    max-db-size             hosts           33554432

    enable-cache            services        yes
    positive-time-to-live   services        28800
    negative-time-to-live   services        20
    suggested-size          services        211
    check-files             services        yes
    persistent              services        yes
    shared                  services        yes
    max-db-size             services        33554432

resolv.conf

# Generated by dhcpcd from eth0
nameserver 127.0.0.1
domain westell.com
nameserver 192.168.1.1
nameserver 208.67.222.222
nameserver 208.67.220.220

bir yan not olarak Arch Linux kullanıyorum.

Not: Bu iki kez taşındı, kazma hariç uygulamaların nscd önbelleğe, tarayıcılara, IM, IRC'ye neden çarpmadığını hiç anlayamadım, ancak olmadılar


Makineyi ncsd için yeniden başlatmanız gerekmez, yıkayabilir veya hizmeti yeniden başlatabilirsiniz, benim için çalışır.

Yanıtlar:


14

Önbellek isabetlerinin eksik olmasının nedeni, dig'in DNS'yi doğrudan sorgulamasıdır. Önbelleğin getentkomutla çalışıp çalışmadığını görebilirsiniz :

getent hosts host.example.com

Ayrı bir önbellek DNS'si çalıştırmak iyi bir fikirdir, ancak mümkünse ağ düzeyinde çalıştırmayı düşünmelisiniz. Her ana bilgisayar verileri ayrı ayrı önbelleğe alırsa, aynı ana bilgisayarlar için birden çok sorgu çalıştırmaya devam eder. Tek bir önbellek bu soruna geçici bir çözüm bulur.

Nscd'nin kendisi NSS işlevleri için bir önbellek arka plan programıdır. Yani odak yerel önbellekleme ad sunucularından biraz farklı. Bu nedenle, yalnızca bir önbellekleme ad sunucusu istiyorsanız, nscd'den başka bir şey kullanın. Bunun yerine, paylaşılan kullanıcı adları ve ana bilgisayar verileri gibi şeyleri normal DNS sisteminin dışında önbelleğe almak istiyorsanız, nscd'yi seçin.

Ve kayıt için, powerdns çözümleyici (pdns-çözümleyici) oldukça düşkün oldum.


ama dig dışında başka şeyler kullanıyor gibi görünmemeli midir? bu bir masaüstü sistemidir. Bazı yazılımların (paket yöneticim gibi) kendi önbelleğini uygulamadığını biliyorum.
xenoterracide

Ayrıca benim ISS dışında bu ağdaki tek bilgisayar;) Benim bağlantım yavaş olduğundan gecikmeyi önlemek için çalışıyorum.
xenoterracide

2
Diğer yazılımlar gerçekten de nscd önbelleğe çarpmalıdır. Nscd'yi başlattıktan sonra yazılımı yeniden başlattığınızdan emin olun.

Sistemi yeniden başlattım .... görünüşte nscd kullanmaya çalışmak için sadece yazılım ntp oldu.
xenoterracide

3

Nscd.conf dosyasında hosts yapılandırması eksik. Örnek olarak benimkini gönderiyorum:

enable-cache            hosts           yes
positive-time-to-live   hosts           3600
negative-time-to-live   hosts           20
suggested-size          hosts           211
check-files             hosts           yes
persistent              hosts           yes
shared                  hosts           yes
max-db-size             hosts           33554432

Bu bazı şeyleri kıracaktır. Aşağıdaki bilgiler Debian paketinden alınmıştır:

  Since this release, hosts caching in nscd is off by default: for some of the
  libc calls (gethostby* calls) nscd does not respect the DNS TTLs.  It can
  lead to system lockups (e.g. if you are using pam-ldap and change the IP of
  your authentication server) hence is not considered safe.

  See debian bug #335476 and how upstream answered to that in
  http://sourceware.org/bugzilla/show_bug.cgi?id=4428.

 -- Pierre Habouzit <madcoder@debian.org>  Sat, 28 Apr 2007 11:10:56 +0200

2
aslında bu var sadece soruda dosyayı kaydırmak zorunda.
xenoterracide

2

Ben nscd hakkında o kadar çok bilmiyorum, bu yüzden sık sık her zaman devre dışı (veya en azından ana aramalar bir parçası) DNS aramaları ile sorun neden oldu. Nscd, yaşam süresi değerlerini ayarlamanıza olanak tanır ve DNS'in bu değerlere "sahip olması" ve tüm çözümleyicilerin onurlandırmasını beklediğini biliyorum. DNS'deki TTL'lere uyulmazsa, garip sonuçlar elde edebilirsiniz. Benim önerim DNS önbelleğe almak için nscd kullanmak değil. Yerel kutunuzda zaten çalışan bir önbellekleme ad sunucunuz var gibi görünüyor, bu nedenle DNS aramalarını iki kez önbelleğe almanıza gerek yok.


Gerçekten önemli olmasa da, devre dışı bırakmayı umuyordum (kutum önbellekleme için bağlamanın ağırlığı çok güçlü bir sorun değil). Bu kısmen sadece yeni bir şey öğrenmekle ilgilidir. İşe alamamak biraz sinir bozucu.
Nisan'da xenoterracide

1

nscd sadece DNS için değil, her şey için gerçekten güvenilmezdir. Herhangi bir nedenle umutsuzca ihtiyaç duymadıkça kaçınmaya değer. DNS'yi yerel olarak önbelleğe almak istiyorsanız, amaca yönelik yapılmış bir DNS önbellek arka plan programı kullanmalısınız (bu iyi bir fikirdir!).

En sevdiğim iki djbdns dnsmasq ve dnscache vardır .


Nscd'yi kullanmak için önce nasıl çalıştığını, bunun düz bir dns önbellek arka plan programı değil , bir sistem önbellek sistemi olduğunu anlamanız gerekir
higuita

1

Cehennemde DNS önbelleği varsa, nscd tarafından sağlanır. Yapma. Kullanımı. O.

Sadece farklı olmak için: pdnsd aslında çok güzel bir yedek. Veya unscd (varsayılan olarak en azından openSUSE içinde kullanılır).


+1 Bunu. Küçük ağlar NSCD veya korkunç DNS sunucuları olan yerler için bu ciddi bir PITA'dır. Bu, çalıştığım her yerde Linux ve Solaris sunucularını yeniden başlatırken "yeni başlayanların" en sık karşılaşılan nedenlerinden biri olmalı.
Sinyal15

1
bağlantısı pdnsdkesildi. Belki de bu iyi bir bağlantıdır: members.home.nl/parombouts/pdnsd
Ehtesh Choudhury

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.