Как можно просмотреть кеш DNS systemd-resolve?

Вопрос или проблема

Используя sudo systemd-resolve --statistics, я могу увидеть текущую статистику кэша DNS, например:

Кэш                     
  Текущий размер кэша: 68  
          Удары по кэшу: 412 
        Промахи по кэшу: 461

Я хотел бы увидеть все записи в кэше DNS (здесь 68), возможно ли это?

Вы можете использовать следующую команду, чтобы отправить сигнал USR1 (Пользовательский сигнал 1) в systemd-resolved:

sudo pkill -USR1 systemd-resolve

Это НЕ остановит сервис. Это просто прикажет systemd-resolved записать все текущие записи кэша (и некоторую другую информацию) в системный лог.

Затем вы можете экспортировать сообщения лога, записанные systemd-resolved, в текстовый файл с помощью следующей команды:

sudo journalctl -u systemd-resolved > ~/resolved.txt

Откройте созданный таким образом текстовый файл в текстовом редакторе на ваш выбор и найдите CACHE:. После этого будет следовать список записей кэша.

Обратите внимание, что текстовый файл может содержать несколько строк с CACHE:.

С тех пор как systemd 254 (проблема 14796, выпущен в 2023 году), у нас есть

sudo resolvectl show-cache

Из заметок о выпуске v254:

    * resolvectl получил новый глагол "show-cache" для отображения текущего
      содержания кэша systemd-resolved. Этот глагол взаимодействует с демоном
      systemd-resolved и требует привилегий.

Чтобы очистить кэш, используйте resolvectl flush-caches (systemd-resolve --flush-caches в более ранних версиях systemd).

Ответ или решение

Чтобы просмотреть кэш DNS, используемый системой systemd-resolved, вы можете воспользоваться несколькими подходами. Вот подробное руководство по этому процессу.

Использование команды для получения информации о кэше

  1. Статистика кэша: Для начала вы можете проверить общую статистику кэширования, используя следующую команду:

    sudo systemd-resolve --statistics

    Эта команда покажет основные параметры, такие как текущий размер кэша, количество попаданий в кэш и промахов. Например:

    Cache                     
     Current Cache Size: 68  
             Cache Hits: 412 
           Cache Misses: 461

    Однако эта команда не отображает все текущие записи кэша.

Получение подробной информации о записях кэша

Для того чтобы увидеть полный список всех записей в кэше DNS, вы можете отправить сигнал USR1 службе systemd-resolved:

  1. Отправка сигнала USR1:

    sudo pkill -USR1 systemd-resolved

    Этот сигнал не остановит службу, а заставит systemd-resolved записать все текущее содержимое кэша и другую информацию в системный журнал.

  2. Просмотр логов: После отправки сигнала вам необходимо обратиться к системному журналу, чтобы извлечь данные о кэше. Используйте следующую команду:

    sudo journalctl -u systemd-resolved > ~/resolved.txt

    Эта команда сохранит сообщение журнала в текстовый файл resolved.txt в вашем домашнем каталоге. Затем откройте этот файл в текстовом редакторе и выполните поиск по слову CACHE:. В результате вы увидите список записей кэша.

    Обратите внимание: В файле может быть несколько строк с CACHE:, содержащих разные записи кэша.

Прямой просмотр кэша (начиная с версии systemd 254)

С версии systemd 254 добавлена возможность прямого просмотра содержимого кэша с использованием новой команды:

  1. Команда resolvectl show-cache:

    sudo resolvectl show-cache

    Эта команда отправляет запрос к демону systemd-resolved и требует привилегий. Она предоставит полный список текущих записей кэша, что значительно упрощает процесс и избавляет от необходимости просматривать системные логи.

Очистка кэша

Если вам необходимо очистить кэш DNS, выполните следующую команду:

  1. Очистка кэша:

    sudo resolvectl flush-caches

    Либо для более старых версий systemd:

    sudo systemd-resolve --flush-caches

Заключение

Используя описанные выше методы, вы сможете легко просматривать и управлять кэшем DNS в вашей системе. Современные версии systemd предоставляют удобные команды для работы с кэшем, упрощая администрирование и диагностику сетевых проблем.

Оцените материал
Добавить комментарий

Капча загружается...