Я являюсь администратором нескольких серверов 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