Назад | Перейти на главную страницу

Как очистить кеш DNS-преобразователя в Linux (и FreeBSD)

Я являюсь администратором нескольких серверов Linux и FreeBSD, и у меня есть проблема:

На серверах работает инструмент, который каждую минуту выполняет множество DNS-запросов для всей сети. Когда он выполняет запрос, результат кешируется в масштабе всей системы. Если запись DNS изменится, это изменение будет принято гораздо позже.

Каким будет способ очистить кеш DNS? Мой босс почти подталкивает меня к тому, чтобы перенести на Windows программное обеспечение, в котором ipconfig /flushdns вызов. Я сказал своему боссу, что решу эту проблему в выходные, и в понедельник все Linux и FreeBSD очистят кеш. Если я этого не сделаю, он заставит меня создать серверы Windows и запускать на них программное обеспечение.

Как очистить кеш DNS в Linux и FreeBSD?

Я не понимаю ваш вопрос, потому что вы говорите чепуху.

Если вы работаете в системе Linux / Unix, на которой не работает DNS-сервер с именем / bind / other, система не кэширует запросы DNS. Приложения (DNS-клиенты) просто каждый раз запрашивают DNS-сервер без кэширования, они каждый раз запрашивают DNS-сервер. Если вы используете DNS-сервер с именем / bind и хотите очистить кеш, просто перезапустите эту службу (Freebsd: /etc/rc.d/named restart) но в этом нет смысла.

Если запись DNS изменится, это изменение будет принято гораздо позже.

Как такое может быть? Вы запускаете DNS-сервер или нет? Если вы запускаете вторичный DNS-сервер, вы просто получаете копию зоны с первичного сервера, и нет смысла очищать кеш. Вы можете отправить зону обновления сервера с первичного сервера, удалив файл зоны и перезапустив службу DNS. Если вы запускаете первичный DNS и хотите обновить информацию о зоне, измените серийный номер в зоне и перезапустите службу:

# /etc/rc.d/named restart (for named)
# rndc (for bind9)

Чтобы обновить информацию о зоне. Чтобы проверить правильность ответа DNS, используйте:

# dig @dns_server example.com

подталкивает меня к переносу программного обеспечения в Windows с ipconfig / flushdns

За что?

Возможно, вы захотите сделать комбинацию из следующего.

Если вы знаете, что различные записи в вашей зоне DNS меняются быстро, установите для этой зоны меньшее значение TTL.

Как правило, существует процесс NameServerCacheDaemon (nscd), который работает в стандартной версии Linux (не уверен в FreeBSD). Быстрый способ очистить кеш - перезапустить этот демон.

Наконец, если вы используете кэширующий DNS-сервер на своих хостах, вы можете легко перезапустить службу DNS, и это очистит кеш. Я думаю, что может быть даже очистка кеша, если вы воспользуетесь командой управления dns.

Предполагая, что вы запускаете демон кэширования службы имен, вы запускаете "nscd -i hosts" от имени пользователя root.

Для FreeBSD вы можете удалить arp с помощью следующей команды

arp -da