Cách xóa bộ đệm DNS cục bộ trong CentOS


20

Tôi đang tìm cách xóa bộ đệm DNS cục bộ trên CentOS 6.

Hệ thống không chạy bất kỳ máy chủ DNS hay bất cứ thứ gì và tôi muốn để mọi truy vấn DNS đi ra máy chủ tên được cấu hình, ngay cả đối với các máy chủ trùng lặp.

Hầu hết những gì tôi tìm thấy trên mạng đều bảo tôi làm service nscd restart, tải lại hoặc làm nscd -i hosts. Tuy nhiên, không ai có thể xóa bộ nhớ cache.

Vì vậy, tôi tự hỏi nếu có ai có ý tưởng về cách tôi có thể làm điều này. Có một số loại chuyển đổi trong kernel tôi cần phải lật? Bất kỳ loại công việc xung quanh cũng tốt.


Bạn đang làm gì để kiểm tra xem bộ đệm có bị xóa hay không?
John

ok hơi phức tạp một chút, tôi có một chương trình trên hệ thống của mình nghe trên cổng 53 và chuyển tiếp các truy vấn DNS theo cách nhất định và cũng là một proxy http sử dụng localhost làm 'máy chủ DNS'; trên truy vấn đầu tiên (giả sử wget -e 'http_proxy=localhost:3128' xxx.com) tôi có thể thấy truy vấn đang được chuyển tiếp chính xác, nhưng tất cả các truy vấn tiếp theo thì không. Nếu tôi đợi đủ lâu (bộ nhớ cache hết hạn), thì nó sẽ hoạt động trở lại.
zee

Và tôi cũng đã cấu hình proxy (mực) để không lưu trữ bất kỳ đối tượng nào, vì vậy tôi cho rằng hệ thống vẫn lưu bộ đệm câu trả lời bằng cách nào đó
zee

1
máy chủ nscd -i -> hoạt động mọi lúc. Tôi đã khởi động lại nscd 3 lần liên tiếp và nó không muốn xóa bộ nhớ cache.
Danie

nscd dường như không phải là một điều trong CentOS 7 tối thiểu. Tôi biết câu hỏi gọi ra CentOS 6, nhưng tiêu đề gọi ra CentOS nói chung. Cách 7 của CentOS là gì?
duct_tape_coder

Câu trả lời:


11

Đây không phải là hộp cục bộ của bạn đang lưu các yêu cầu DNS mà là trình phân giải DNS mà bạn đang sử dụng trong /etc/resolv.confbộ nhớ đệm của bạn .

Để ngăn chặn để có được những truy vấn lưu trữ trả lời:

  1. Thay đổi bộ giải.

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

  2. Xóa bộ đệm DNS trên trình phân giải, nếu bạn có thể truy cập máy chủ DNS.

    $ sudo /etc/init.d/bind restart


Hmm nhưng tôi đã thiết lập dns_nameservers 127.0.0.1trong tập tin cấu hình proxy và người nghe chỉ chuyển tiếp các truy vấn đến máy chủ tên được cấu hình sẵn, liệu có nên giải quyết vấn đề không?
zee

4
"bash: /etc/init.d/bind: Không có tệp hoặc thư mục như vậy" Và phương thức của OP bị "Không thể khởi động lại nscd.service: Đơn vị nscd.service không tải được: Không có tệp hoặc thư mục như vậy." Tôi đoán những điều này đã được di chuyển / thay đổi. Tại sao họ không thể để những thứ hoạt động tại chỗ, hoặc ít nhất là duy trì bí danh? Đủ tệ để trở thành một chuyên gia hệ điều hành chỉ đơn giản là sử dụng hộp Linux. Tệ hơn khi bạn phải học lại HĐH với mỗi bản phát hành.
JosephK

3

Ngay cả sau khi làm mới hoặc xóa bộ đệm DNS trên máy khách nếu nó không hoạt động thì hãy xem máy chủ hoặc máy khách của bạn bị ràng buộc với bất kỳ máy chủ NIS nào nếu có, sau đó thay đổi "hosts: files nis dns" thành "hosts: files dns nis" nhập vào tập tin /etc/nsswitch.conf và bạn cũng cần thay đổi địa chỉ IP trong danh sách máy chủ chính của NIS.


Điều này dẫn đến giải pháp của tôi. Bên trong / etc / hosts là địa chỉ IP cũ được cấu hình tĩnh trước đó. Một cái gì đó tôi đã làm một thời gian trở lại. Xóa dòng đó (hoặc thay thế bằng ip mới) đã giải quyết vấn đề và cho phép tôi ping máy của mình bằng tên máy chủ của nó.
Paul

3

Tôi gần như chắc chắn đó không phải là hệ thống lưu vào bộ đệm phản hồi - phần đó (bộ nhớ đệm hệ thống) chỉ được xử lý bởi nscdtrình nền. Khởi động lại (hoặc dừng hoàn toàn) mà daemon đặt lại hoặc loại bỏ bộ đệm của hệ điều hành các phản hồi yêu cầu dịch vụ tên.

Tôi sẽ cung cấp hai khả năng, mặc dù trình nghe tùy chỉnh mà bạn đã thiết lập trên cổng 53 làm vẩn đục vùng nước đáng kể:

  • A) Hệ thống của bạn đang đưa ra các truy vấn ngược dòng, nhưng trình phân giải tên ngược dòng ngay lập tức đang lưu trữ phản hồi dựa trên các cài đặt của nó hoặc TTL của bản ghi.
  • B) Trình nghe tùy chỉnh của bạn đang lưu các phản hồi trong bộ nhớ cache và chỉ đưa phản hồi đó trở lại hệ thống khi nó được hỏi lại trước khi hết thời gian bộ đệm.

Cảm ơn về đầu vào, nhưng người nghe không làm gì ngoài việc chuyển tiếp truy vấn và phản hồi, nó chỉ giống như 200 dòng mã. Vì vậy, không nên là trường hợp thứ hai; Ngoài ra, người nghe đang in ra tất cả những gì nó nhận được, vì vậy tôi chắc chắn rằng nó thực sự không nhận được gì: |
zee
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.