Truy vấn DNS không sử dụng nscd để lưu trữ


10

Tôi đang cố gắng sử dụng nscd (Tên dịch vụ bộ nhớ cache) để lưu trữ cục bộ DNS để tôi có thể ngừng sử dụng Bind để thực hiện. Tôi đã nhận được nó bắt đầu và ntpd dường như cố gắng sử dụng nó. Nhưng mọi thứ khác cho máy chủ dường như bỏ qua nó. ví dụ: nếu tôi đào apache.org 3 lần thì không ai trong số họ sẽ nhấn cache. Tôi đang xem số liệu thống kê bộ đệm bằng cách sử dụng nscd -gđể xác định xem nó có được sử dụng hay không. Tôi cũng đã bật mức nhật ký gỡ lỗi lên để xem liệu tôi có thể thấy nó nhấn hay không và các truy vấn thậm chí không đạt nscd.

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

độ phân giải

# 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

như một lưu ý phụ tôi đang sử dụng Arch Linux.

lưu ý: điều này đã được di chuyển hai lần, tôi chưa bao giờ tìm ra lý do tại sao các ứng dụng, ngoại trừ đào, không nhấn bộ đệm nscd, trình duyệt, IM, IRC, tất cả nên có, nhưng chúng không


Bạn không phải khởi động lại máy cho ncsd, bạn có thể xóa nó hoặc khởi động lại dịch vụ, hoạt động với tôi.

Câu trả lời:


14

Lý do tại sao bạn thiếu các lần truy cập bộ đệm là do truy vấn DNS trực tiếp. Bạn có thể thử và xem liệu bộ đệm có hoạt động với getentlệnh không:

getent hosts host.example.com

Chạy một DNS bộ nhớ đệm riêng là một ý tưởng tốt, nhưng bạn nên xem xét việc chạy nó ở cấp độ mạng nếu có thể. Nếu mỗi máy chủ lưu trữ dữ liệu riêng biệt, chúng sẽ vẫn chạy nhiều truy vấn cho cùng một máy chủ. Bộ nhớ cache duy nhất hoạt động xung quanh vấn đề này.

Bản thân Nscd là một trình nền bộ đệm cho các hàm NSS. Vì vậy, trọng tâm là một chút khác nhau so với máy chủ tên bộ nhớ đệm gốc. Vì vậy, nếu bạn chỉ muốn một máy chủ tên bộ đệm, hãy sử dụng cái gì đó ngoài nscd. Nếu thay vào đó, bạn muốn lưu trữ những thứ như tên người dùng và hostdata được chia sẻ bên ngoài hệ thống DNS thông thường, hãy truy cập nscd.

Và đối với hồ sơ, tôi đã phát triển khá thích bộ giải quyết powerdns (pdns-decver).


Nhưng không phải những thứ khác ngoài đào dường như đang sử dụng nó? đây là một hệ thống máy tính để bàn. Tôi biết rằng một số phần mềm (như trình quản lý gói của tôi) không triển khai bộ đệm riêng.
xenoterracide

Ngoài ra bên ngoài ISP của tôi, đây là máy tính duy nhất trên mạng;) Tôi chỉ cố gắng tránh độ trễ do kết nối của tôi chậm.
xenoterracide

2
Các phần mềm khác thực sự sẽ nhấn bộ đệm nscd. Chỉ cần chắc chắn rằng bạn khởi động lại phần mềm sau khi bắt đầu nscd.

Tôi đã khởi động lại hệ thống .... chỉ phần mềm để dường như cố gắng sử dụng nscd là ntp.
xenoterracide

3

Bạn đang thiếu cấu hình máy chủ trong nscd.conf. Tôi đang đăng bài của tôi làm ví dụ:

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

Điều này sẽ phá vỡ một số điều. Thông tin sau đây là từ gói Debian:

  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
thực sự tôi có cái này bạn chỉ cần cuộn tập tin trong câu hỏi.
xenoterracide

2

Tôi không biết nhiều về nscd ngoại trừ việc nó thường gây rắc rối với việc tra cứu DNS mà tôi luôn vô hiệu hóa nó (hoặc ít nhất là phần tra cứu máy chủ của nó). Nscd cho phép bạn đặt các giá trị thời gian tồn tại và tôi biết DNS mong muốn "sở hữu" các giá trị đó và có tất cả các trình phân giải tôn vinh chúng. Bạn có thể kết thúc với kết quả kỳ lạ nếu các TTL trong DNS không được vinh danh. Đề nghị của tôi là không sử dụng nscd cho bộ nhớ cache DNS. Có vẻ như bạn đã có một máy chủ tên bộ đệm đang chạy trên hộp cục bộ của bạn, vì vậy không cần phải lưu bộ đệm tra cứu DNS hai lần.


Tôi đã hy vọng vô hiệu hóa nó, mặc dù nó không thực sự quan trọng (hộp của tôi rất mạnh, trọng lượng của liên kết cho bộ nhớ đệm không phải là vấn đề). Đây là một phần của vấn đề bây giờ chỉ là học một cái gì đó mới. Không thể làm cho nó hoạt động là một chút khó chịu.
xenoterracide

1

nscd thực sự không đáng tin cậy cho mọi thứ, không chỉ DNS. Nó cũng đáng để tránh trừ khi bạn rất cần nó vì một số lý do. Bạn nên sử dụng trình nền bộ đệm ẩn DNS được tạo mục đích nếu bạn muốn lưu trữ cục bộ DNS cục bộ (đó là một ý tưởng hay!).

Hai trong số yêu thích của tôi là dnsmasqdnscache từ djbdns .


Để sử dụng nscd, trước tiên bạn cần hiểu cách thức hoạt động của nó, đó là hệ thống bộ đệm của hệ thống, không phải là trình nền bộ nhớ cache dns đơn giản
higuita

1

Nếu có bộ nhớ đệm DNS trong Địa ngục, nó được cung cấp bởi nscd. Đừng. Sử dụng. Nó.

Chỉ cần khác biệt: pdnsd thực sự là một sự thay thế rất tốt đẹp. Hoặc unscd (được sử dụng theo mặc định ít nhất là trong openSUSE).


+1 này. Đối với các mạng nhỏ NSCD hoặc các địa điểm có máy chủ DNS khủng khiếp, đây là một PITA nghiêm trọng. Đây phải là một trong những lý do thường xuyên nhất mà tôi thấy "người mới" khởi động lại máy chủ Linux & Solaris ở bất kỳ nơi nào tôi từng làm việc.
Tín hiệu15

1
liên kết đến pdnsdlà xuống. Có lẽ đây là một liên kết tốt thay thế: thành
viên.home.nl / parouts / pdnsd

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.