У меня есть небольшая сеть компьютеров, которые можно перемещать между сайтами.
Эти компьютеры подключены к свитчу, и один из них выступает в роли DHCP-сервера и DNS-сервера через dnsmasq для этой сети, назовем его MAINPC.
DNS используется только для обеспечения разрешения имен между этими компьютерами, и если вы добавите еще один компьютер в локальную сеть, он будет добавлен в DNS через dnsmasq.
Остальные DNS-имена должны обрабатываться вторичным DNS-сервером, вот моя проблема.
Я не хочу жестко кодировать вторичный DNS-сервер, такой как 8.8.8.8, потому что иногда вы будете подключать всю эту сеть к другой сети с собственным DNS-сервером. Я хочу, чтобы dnsmasq предоставил в качестве вторичного DNS DNS, предоставленный NetworkManager.
То, что я сделал, установлено DNS=по умолчанию
в файле conf в /etc/NetworkManager/conf.d/
.
Это приводит к тому, что NetworkManager записывает DNS-запрос DHCP в файл /etc/resolv.conf, который считывается dnsmasq. Это решает большинство проблем.
ПК, которые используют MAINPC в качестве DNS-сервера, работают нормально, они направляют свои запросы на MAINPC, который, если возможно, отвечает из локального домена, а если нет, то перенаправляет на DNS, указанный NetworkManager.
Но сам MAINPC использует только DNS, предписанный NetworkManager, и не может разрешить другие ПК в сети. Короче говоря, он не использует собственный DNS-сервер в качестве основного.
Как этого добиться?
В основном мне просто нужно, чтобы мой файл /etc/resolv.conf выглядел так:
# Генерируется NetworkManager
поиск внутренний_домен другой_домен
сервер имен MAINPC_IP
сервер имен IP_MANDATED_BY_NETWORK_MANAGER
В настоящее время мне удалось это сделать, заставив DNS-сервер MAINPC в /и т.д./сетевой план/
файл:
# Генерируется NetworkManager
поиск внутренний_домен другой_домен
сервер имен IP_MANDATED_BY_NETWORK_MANAGER
сервер имен MAINPC_IP