Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:debian:bookworm:configuring-systemd-resolved-caching-dns-client-on-debian-12

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
unix-linux:debian:bookworm:configuring-systemd-resolved-caching-dns-client-on-debian-12 [20.06.2023 20:52] Алексей Максимовunix-linux:debian:bookworm:configuring-systemd-resolved-caching-dns-client-on-debian-12 [21.06.2023 10:25] (текущий) Алексей Максимов
Строка 53: Строка 53:
 Cache=yes Cache=yes
 #CacheFromLocalhost=no #CacheFromLocalhost=no
-DNSStubListener=no+#DNSStubListener=yes
 #DNSStubListenerExtra= #DNSStubListenerExtra=
 #ReadEtcHosts=yes #ReadEtcHosts=yes
Строка 66: Строка 66:
  
  
-Для совместимости с приложениями, которые не используют библиотечные вызовы, а обращаются к DNS серверам напрямую, получая их из ''/etc/resolv.conf'', нам потребуется символическая ссылка на файл ''/run/systemd/resolve/resolv.conf'',  +----
-контент которого автоматически генерируется исходя из настроек, заданных нами в ''/etc/systemd/resolved.conf''.+
  
-Однако, здесь стоит обратить внимание на то, что в конфигурации по умолчанию текущая реализация пакета **systemd-resolved** в Debian Bookworm при установке заменяет реальный файл ''/etc/resolv.conf'' на ссылку к другому файлу: ''/run/systemd/resolve/stub-resolv.conf''. Но такая ссылка допустима лишь в том случае, если используется конфигурация ''/etc/systemd/resolved.conf'' по умолчанию, в которой активирован интерфейс ''DNSStubListener'' (отдельный прослушиватель на 127.0.0.54:53). В  нашем примере интерфейс ''DNSStubListener'' выключен, поэтому нам потребуется заменить символическую ссылку:  +Для совместимости с приложениями, которые не используют библиотечные вызовы, а обращаются к DNS серверам напрямую, получая их из ''/etc/resolv.conf''нам потребуется символическая ссылка на файл **resolv.conf**, контент которого автоматически генерируется исходя из настроек, заданных нами в ''/etc/systemd/resolved.conf''
  
 +В конфигурации по умолчанию текущая реализация пакета **systemd-resolved** в Debian Bookworm при установке заменяет реальный файл ''/etc/resolv.conf'' на ссылку к автоматически генерируемому файлу: ''/run/systemd/resolve/stub-resolv.conf''.
  
-<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># ln -svi /run/systemd/resolve/resolv.conf /etc/resolv.conf</div><div style="background:#5a5a62;color:#B2B2B2;padding:10px;">ln: replace '/etc/resolv.conf'? <b>y</b> +<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># ls -la /etc/resolv.conf
-'/etc/resolv.conf' -> '/run/systemd/resolve/resolv.conf'+
 </div></pre></HTML> </div></pre></HTML>
  
-Проверим линковку:+{{ :unix-linux:debian:bookworm:pasted:20230621-091117.png }} 
 + 
 +Если мы заглянем в этот самый, автоматически генерируемый, конфиг ''/run/systemd/resolve/stub-resolv.conf'', то увидим там отсылку на локальный псевдо-сервер DNS с адресом **127.0.0.53**. 
 + 
 +{{ :unix-linux:debian:bookworm:pasted:20230621-093006.png }} 
 + 
 +Отсылка на локальный псевдо-сервер DNS связана с тем, что в конфигурации по умолчанию в ''/etc/systemd/resolved.conf'' активирован механизм **DNSStubListener** (''DNSStubListener=yes''), который запускает отдельные TCP/UDP-прослушиватели на 127.0.0.53%lo:53 и 127.0.0.54:53: 
 + 
 +{{ :unix-linux:debian:bookworm:pasted:20230621-092159.png }}  
 + 
 +Согласно [[https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html|man systemd-resolved.service]] такой режим работы является рекомендуемым для systemd-resolved, так как позвляет пропустить весь поток DNS-запросов ото всех типов локальных приложений через внутренний кеширующий резолвер systemd-resolved. 
 + 
 + 
 +Если же по какой-то причине работа **DNSStubListener** вас не устроит и вы решите отказаться от его использования , то его также легко можно будет отключить в конфигурации ''/etc/systemd/resolved.conf'' (''DNSStubListener=no'') с последующим перезапуском службы **systemd-resolved**. В этом случае после перезапуска службы в генерируемом конфиге ''/run/systemd/resolve/stub-resolv.conf'' отсылка на DNS серверы будет автоматически изменена: 
 + 
 +{{ :unix-linux:debian:bookworm:pasted:20230621-100205.png }} 
 + 
 +При этом, само собой разумеется, в системе пропадут TCP/UPD-прослушиватели локального псевдо-сервера DNS: 
 + 
 +{{ :unix-linux:debian:bookworm:pasted:20230621-100649.png }}  
  
-<HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># ls -la /etc/resolv.conf</div><div style="background:#5a5a62;color:#B2B2B2;padding:10px;">lrwxrwxrwx 1 root root 32 Jun 20 19:09 /etc/resolv.conf -> /run/systemd/resolve/resolv.conf 
-</div></pre></HTML> 
  
 +----
  
-{{ :unix-linux:debian:bookworm:pasted:20230620-192731.png }} 
  
-Есть некоторые опасения, что при каком-то из следующих обновлений пакета **systemd-resolved** перенастроенная нами линковка ''/etc/resolv.conf -> /run/systemd/resolve/resolv.conf'' может вернуться к исходному состоянию и это потребует повторной перелинковки. Но это уже, как говорится, время покажет. 
  
 +После проведённой настройки и запуска **systemd-resolved** можно отключить настройки DNS в таких местах, как, например, в классическом для Debian конфигурационном файле ''/etc/network/interfaces''
  
-После запуска **systemd-resolved** можно отключить настройки DNS в таких местах, как, например, в классическом для Debian конфигурационном файле ''/etc/network/interfaces''+При этом следует помнить про то, что если настройка сетевой подсистемы сервера выполняется с помощью конфигурационных файлов [[unix-linux:debian:bookworm:how-to-setup-network-configuration-with-systemd-networkd-on-debian-linux-12|systemd-networkd]], и в файлах ''/etc/systemd/network/*.network'' тоже указаны настройки DNSто эти настройки также попадут в результирующую конфигурацию systemd-resolved (и, как следствиев тот же resolv.conf).  Поэтому важно сразу выбрать стратегию того, в каком именно месте вы будете редактировать конфигурацию DNS серверов (в файлах ''/etc/systemd/network/*.network'' или в файле ''/etc/systemd/resolved.conf''). На мой взгляд, указание DNS серверов и доменных суффиксов представляется более логичным в файлах ''/etc/systemd/network/*.network'', так как это даёт дополнительную гибкость настройки, особенно в конфигурациях с несколькими сетевыми интерфейсами, каждый из которых должен использовать собственные DNS серверы.
  
-При этом следует помнить про то, что если настройка сетевой подсистемы сервера выполняется с помощью конфигурационных файлов [[unix-linux:debian:bookworm:how-to-setup-network-configuration-with-systemd-networkd-on-debian-linux-12|systemd-networkd]], и в файлах ''/etc/systemd/network/*.network'' тоже указаны настройки DNS, то эти настройки также попадут в результирующую конфигурацию systemd-resolved (и, как следствие, в тот же ''/run/systemd/resolve/resolv.conf'').  Поэтому важно сразу выбрать стратегию того, в каком именно месте вы будете редактировать конфигурацию DNS серверов (в файлах ''/etc/systemd/network/*.network'' или в файле ''/etc/systemd/resolved.conf''). 
  
 +----
  
 Проверить текущий статус результирующих настроек **systemd-resolved** можем с помощью утилиты **resolvectl**: Проверить текущий статус результирующих настроек **systemd-resolved** можем с помощью утилиты **resolvectl**:
Строка 96: Строка 113:
 <HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># resolvectl status</div></pre></HTML> <HTML><pre style="padding:3px;"><div style="background:#5a5a62;color:#ffffff;padding:10px;"># resolvectl status</div></pre></HTML>
  
-{{ :unix-linux:debian:bookworm:pasted:20230620-203456.png }}+{{ :unix-linux:debian:bookworm:pasted:20230621-102524.png }}
  
 С помощью этой же полезной утилиты можно сделать много дополнительных вещей, типа включения и выключения режима отладки, просмотра статистики использования кеша, очистки кеша, мониторинга запросов и ответов в реальном режиме времени и т.д. С помощью этой же полезной утилиты можно сделать много дополнительных вещей, типа включения и выключения режима отладки, просмотра статистики использования кеша, очистки кеша, мониторинга запросов и ответов в реальном режиме времени и т.д.
unix-linux/debian/bookworm/configuring-systemd-resolved-caching-dns-client-on-debian-12.1687283548.txt.gz · Последнее изменение: 20.06.2023 20:52 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki