LINUX.ORG.RU

Unbound и systemd-resolved. Вообще для чего нужен локальный DNS резолвер в линуксе и особенно в убунте.

 


2

1

Немного нубский вопрос - но зачем нужен локальнй резолвер в линуксе? Разве все приложения когда резолвят адрес обращаются вначале к 127.0.0.53:53 Или тот же самый браузер сразу лезет на указанный в сетевых настройках адрес?

Как работает если используется SNAT или MASQURADE

Также как лучше и разумнее всего поменять резолвер если используется Unbound.

Или это все появилось только в SystemD и до этого резолвилось все по другому - файл host и если нет то dns который указан в сети? Или это networkmanager виноват?

Локально? Для кеширования.
Я пользуюсь kresd, работает хорошо, но у него есть и свои заморочки.

imul ★★★★★
()

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

Anoxemian ★★★★★
()

systemd-resolved правильнее всего выключать штатным для него способом, выключая DNSSTubListener создав в /etc/systemd/resolved.conf.d/ файлик, например, unbound.conf c содержимым

[Resolve]
DNS=127.0.0.1
DNSStubListener=no

сделав новый симлинк на resolv.conf

sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

и перезапустив systemd-resolved

P.S. и да, использовать надо IMHO не локальный резолвер на каждом тазике, а централизованный для всей сети (домашней, офисной, etc) И не unbound, а blocky или даже adguardHome. последний умеет в DoH/DoT/DNSCrypt апстримы, умеет резолвить (не)нужные рекламные хосты и трекеры в блэкхол или в 127.0.0.1, что резко сокращает количество рекламы. Unbound тоже умеет, в принципе, с изолентингом, костылингом, скриптингом и зачем?

mgdz
()

Локальный резолвер нужен для того, чтобы снизить обращение к DNS-серверам, сэкономить время (не ждать, пока от DNS-сервера поступит ответ) и количество обращений к DNS-серверам в целом.

В Ubuntu это systemd-resloved

Настроить DNS в systemd-resloved можно через этот файл (необходимо будет создать самому):

vodka@vodka-PC:/tmp/firefox_autoupdate$ cat /etc/systemd/resolved.conf.d/resolved.conf 
DNS=192.168.1.1 8.8.8.8
FallbackDNS=8.8.8.8 1.1.1.1
#Domains=
#DNSSEC=no
#DNSOverTLS=no
MulticastDNS=yes
LLMNR=yes
Cache=no-negative
#CacheFromLocalhost=no
DNSStubListener=yes
#DNSStubListenerExtra=
ReadEtcHosts=yes
#ResolveUnicastSingleLabel=no

Для корректной работы необходимо, чтобы resolv.conf смотрел вот на этот файл:

vodka@vodka-PC:/tmp/firefox_autoupdate$ ls -l /etc/resolv.conf 
lrwxrwxrwx 1 root root 37 мар 21 13:19 /etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf

т.е. проделать

rm /etc/resolv.conf
ls -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Далее включить systemd-resolved:

systemctl enable --now systemd-resolved

Только в этом случае будет работать systemd-resolved. Содержимое resolv.conf должен выглядеть вот так (оно само формируется с помощью systemd-resolved):

vodka@vodka-PC:/tmp/firefox_autoupdate$ ls -l /etc/resolv.conf 
lrwxrwxrwx 1 root root 37 мар 21 13:19 /etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf
vodka@vodka-PC:/tmp/firefox_autoupdate$ cat /run/systemd/resolve/stub-resolv.conf

nameserver 127.0.0.53
options edns0 trust-ad
search .

Собственно, видно, что используется локальный DNS-сервер (nameserver 127.0.0.53)

Посмотреть статистику:

vodka@vodka-PC:/tmp/firefox_autoupdate$ systemd-resolve --statistics
DNSSEC supported by current servers: no

Transactions               
Current Transactions: 0
  Total Transactions: 19442
                           
Cache                      
  Current Cache Size: 146
          Cache Hits: 9376
        Cache Misses: 10136
                           
DNSSEC Verdicts            
              Secure: 0
            Insecure: 0
               Bogus: 0
       Indeterminate: 0

Ну и другие опции команды systemd-resolved или resolvedctl

Посмотреть содержимое DNS-кеша: https://askubuntu.com/questions/1257831/how-can-i-see-systemd-resolve-dns-cache

Также обратите внимание, что у браузеров тоже есть свой локальный DNS-кеш. Можно его выключить при наличии своего локального DNS-сервера в случае systemd-resloved: https://www.reddit.com/r/firefox/comments/oia26o/how_to_disable_dns_cache_fully/

iljuase ★★★
()
Последнее исправление: iljuase (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.