Як змити локальний кеш DNS у CentOS


20

Я шукаю спосіб очистити локальний кеш DNS на CentOS 6.

У системі не працює жоден DNS-сервер чи будь-що інше, і я хочу дозволити кожному запиту DNS виходити на налаштований сервер імен, навіть для дублікатів.

Більшість того, що я знайшов в Інтернеті, кажуть мені робити service nscd restart, перезавантажувати чи робити nscd -i hosts. Однак, схоже, жоден не змиває кеш.

Тож мені цікаво, чи має хтось уявлення про те, як я можу це зробити. Чи є якийсь комутатор у ядрі, який мені потрібно перевернути? Будь-яка робота навколо теж добре.


Що ви робите, щоб перевірити, чи кеш розмитий чи ні?
Іоанн

ок, це трохи складніше, у мене на моїй системі прослуховування на порт 53 і певним чином пересилає запити DNS, а також проксі-сервер http, що використовує localhost як "DNS-сервер"; у першому запиті (скажіть wget -e 'http_proxy=localhost:3128' xxx.com) я бачу, що запит пересилається правильно, але всі наступні - ні. Якщо я зачекаю досить довго (термін дії кешу закінчується), то він запрацює знову.
zee

А також я налаштував проксі (squid), щоб не кешувати жоден об'єкт, тому я припускаю, що система все ще кеширує відповідь якось
zee

1
nscd -i хости -> працює щоразу. Я перезапустив nscd 3 рази поспіль, і він не хотів очищати кеш.
Дані

nscd здається, що річ у CentOS 7 мінімальна. Я знаю, що питання викликає CentOS 6, але назва загалом називає CentOS. Який спосіб CentOS 7?
duct_tape_coder

Відповіді:


11

Це не ваша локальна скринька, яка кешує запити DNS, але це DNS-розв’язник, який ви використовуєте у вашому /etc/resolv.confкешуванні.

Щоб не отримати відповіді на кешовані запити:

  1. Змініть роздільну здатність.

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

  2. Очистіть кеш DNS на роздільній здатності, якщо ви маєте доступ до DNS-сервера.

    $ sudo /etc/init.d/bind restart


Хм, але я встановив dns_nameservers 127.0.0.1проксі-файл конфігурації, і слухач лише пересилає запити на заздалегідь налаштований сервер імен, чи не так, з разрешенням.conf навіть не звертаються?
zee

4
"bash: /etc/init.d/bind: Немає такого файлу чи каталогу" І метод OP отримує "Не вдалося перезапустити nscd.service: Не вдалося завантажити nscd.service: Немає такого файлу чи каталогу." Я думаю, вони переміщені / змінені. Чому вони не можуть просто залишити речі, які працюють на місці, або хоча б зберегти псевдоніми? Досить погано, щоб стати спеціалістом з ОС, щоб просто використовувати Linux-box. Гірше, коли вам доведеться повторно вивчати ОС з кожним випуском.
ДжозефК

3

Навіть після оновлення або промивання кешу DNS на клієнтській машині, якщо він не працює, тоді подивіться, що ваш сервер або клієнтська машина прив’язаний до будь-якого сервера NIS, якщо так, то змініть "hosts: файли nis dns" на "hosts: файли dns nis" запис у /etc/nsswitch.conf файл, а також вам потрібно змінити IP-адресу в списку хостів головного сервера NIS.


Це призвело до мого рішення. Всередині / etc / hosts була раніше статично налаштована стара IP-адреса. Щось я зробив за деякий час назад. Видалення цього рядка (або заміна на новий ip) вирішило проблему і дозволило мені пінг моєї машини, використовуючи її ім'я хоста.
Поль,

3

Я майже впевнений, що це не система кешування відповіді - цю частину (кешування системи) обробляє лише nscdдемон. Перезапуск (або повністю припинення) цього демона скидає або виключає кешування ОС відповідей на запит служби імен.

Я запропоную дві можливості, хоча користувальницький слухач, який ви створили на порту 53, значно замулює води:

  • A) Ваша система надсилає запити вгору за потоком, але негайний вирішувач імені висхідного потоку кешує відповідь на основі налаштувань або TTL запису.
  • B) Ваш користувальницький слухач кешує відповіді внутрішньо і просто повертає цю відповідь назад до системи, коли її знову запитують до закінчення часу кешу.

Дякую за вклад, але слухач не робить нічого, крім переадресації запиту та відповіді, адже це як 200 рядків коду. Так не повинно бути другим випадком; також слухач роздруковує все, що отримує, тому я впевнений, що насправді нічого не отримує: |
zee
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.