@Nortvest

Как работает dns в Ubuntu?

Здравствуйте, я пытаюсь разобраться как работает 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
  • Вопрос задан
  • 460 просмотров
Решения вопроса 1
Alex_Geer
@Alex_Geer
System Engineer
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
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы