Здравствуйте, я пытаюсь разобраться как работает dns в ubuntu и мне нужна помощь.
У меня виртуальная машина ubuntu server 22.04, установлен Adguardhome (фильтрующий dns-сервер) слушающий на всех ip на 53 порту и unbound (на 127.0.0.1:13000), выполняющий запросы от Adguardhome.
Я знаю, что бывают два типа программ
Те, которые используют "библиотечные вызовы"
И те, которые обращаются напрямую к /etc/resolve.conf
Мои вопросы:
1) Можно пример программ которые используют "библиотечные вызовы" и которые обращаются к dns серверам напрямую?
Как именно работают эти "библиотечные вызовы", куда обращаются эти программы для разрешения доменного имени?
2) Какие есть способы прописать dns в Ubuntu и как они взаимодействует между собой? (Какие настройки главные, какие второстепенные, какие от каких зависят?) Чем ubuntu руководствуется когда ему нужно получить ip из домена? (Где ищет dns сервера, что проверяет сначала, что потом)
3) Я выключил systemd-resolved и удалил /etc/resolve.conf, в netplan dns серверов нет. И при все при этом система каким то образом узнает (проверял через dig), что нужно отправить запросы на [::1]:53 (Adguardhome).
Кто ей об этом сказал?
4) Мой провайдер настроил на этом сервере какие-то свои dns и я не понимаю как их убрать - они вылезают в /run/systemd/resolve/resolv.conf
1. Веб-браузеры, клиенты электронной почты и другие приложения, которые используют сетевые ресурсы. Эти программы обращаются к библиотеке glibc для выполнения запросов DNS. Когда программа запрашивает IP-адрес для доменного имени, glibc выполняет запрос DNS через файл /etc/resolv.conf. Программы, которые обращаются к DNS-серверу напрямую - dig или nslookup.
2. Добавление записей DNS в файл /etc/resolv.conf. Другой способ - это использование NetworkManager или systemd-resolved
3. Система будет использовать файл /run/systemd/resolve/stub-resolv.conf для получения информации о DNS-серверах. Этот файл содержит список DNS-серверов, которые были настроены в NetworkManager или systemd-resolved.
4. Скорее всего сервер получает параметры через DHCP