Am o mică rețea de computere care pot fi mutate între site-uri.
Aceste computere sunt conectate la un comutator, iar unul dintre ele acționează ca server DHCP și server DNS prin dnsmasq pentru această rețea, să-l numim MAINPC.
DNS-ul este folosit doar pentru a oferi rezoluție de nume între aceste computere, iar dacă adăugați un alt computer la LAN, acesta va fi adăugat la DNS prin dnsmasq.
Restul numelor DNS trebuie să fie gestionate de serverul DNS secundar, aici vine problema mea.
Nu vreau să codific un server DNS secundar precum 8.8.8.8, pentru că uneori vei conecta toată această rețea într-o altă rețea, cu propriul server DNS. Vreau ca dnsmasq să ofere ca DNS secundar DNS-ul furnizat de NetworkManager.
Ceea ce am făcut este setat dns=implicit
într-un fișier conf în /etc/NetworkManager/conf.d/
.
Acest lucru face ca NetworkManager să scrie DNS-ul mandatat DHCP în /etc/resolv.conf, care este citit de dnsmasq. Acest lucru rezolvă majoritatea problemelor.
PC-urile care folosesc MAINPC ca server DNS funcționează bine, își direcționează interogările către MAINPC, care răspunde din domeniul local dacă este posibil și, dacă nu, redirecționează către DNS-ul mandatat de NetworkManager.
Dar MAINPC în sine folosește doar DNS-ul mandatat de NetworkManager și nu poate rezolva celelalte PC-uri din rețea. Pe scurt, nu folosește propriul server DNS ca principal.
Cum se poate realiza acest lucru?
Practic, am nevoie doar ca /etc/resolv.conf meu să arate așa:
# Generat de NetworkManager
caută domeniul_intern alt_domeniu
serverul de nume MAINPC_IP
serverul de nume IP_MANDATED_BY_NETWORK_MANAGER
Momentan am reușit să-l am ca, forțând serverul MAINPC DNS într-un /etc/netplan/
fişier:
# Generat de NetworkManager
caută domeniul_intern alt_domeniu
serverul de nume IP_MANDATED_BY_NETWORK_MANAGER
serverul de nume MAINPC_IP