1) Примерами программ, которые используют "библиотечные вызовы" для обращения к DNS-серверам, являются браузеры, почтовые клиенты, FTP-клиенты и любые другие программы, которые требуют разрешения доменных имен для установки сетевого соединения или выполнения сетевых операций. Эти программы используют библиотеки, такие как glibc или libc, для работы с DNS-серверами.
Программы, которые обращаются к DNS-серверам напрямую, не используя "библиотечные вызовы", могут быть скриптами или инструментами командной строки, такими как dig или nslookup. Эти программы отправляют запросы к DNS-серверам, используя протокол DNS, без использования библиотеки или интерфейса операционной системы.
2) В Ubuntu настройка DNS осуществляется через различные компоненты системы, такие как NetworkManager, systemd-resolved, netplan и /etc/resolv.conf.
- NetworkManager является стандартным инструментом для управления сетевыми подключениями в Ubuntu. Он может настраивать DNS-серверы для каждого подключения в файле /etc/NetworkManager/system-connections/<connection-name>. Он также может получать DNS-серверы от DHCP-сервера, если они определены в сети.
- systemd-resolved является системным демоном, ответственным за разрешение доменных имен в системе. Он может использовать информацию от NetworkManager или netplan для настройки DNS. Его настройки хранятся в файле /etc/systemd/resolved.conf.
- Netplan является инструментом для настройки сетевых интерфейсов Ubuntu. Он может определить DNS-серверы для интерфейсов в файле конфигурации /etc/netplan/<configuration-file>.yaml.
- Файл /etc/resolv.conf является символической ссылкой на файл, управляемый системным демоном. Если systemd-resolved активен, он управляет этим файлом и автоматически обновляет его на основе своих настроек. Однако, если вы отключили systemd-resolved, вы можете вручную настроить DNS-серверы в этом файле.
3) Если вы отключили systemd-resolved и удалили файл /etc/resolv.conf, а также не указали DNS-серверы в настройках netplan, Ubuntu будет искать DNS-серверы по умолчанию в файле /etc/resolv.conf из информации, полученной от сетевых интерфейсов или DHCP-сервера. Он также может использовать информацию от системных библиотек (например, glibc) или других конфигурационных файлов для определения DNS-серверов по умолчанию.
4) Если ваш интернет-провайдер настроил свои собственные DNS-серверы на сервере и они автоматически появляются в файле /run/systemd/resolve/resolv.conf, это означает, что systemd-resolved получает информацию о DNS-серверах от DHCP-сервера или других источников информации о сети. Чтобы удалить эти DNS-серверы, вам может потребоваться изменить настройки DHCP или отключить автоматическую конфигурацию сети от своего провайдера.