IAM appliance - iam-dns

RPM balíček s konfigurací DNS serveru na úrovni OS appliance.

Build probíhá standardním způsobem v bcv-rpmbuild kontejneru.

Služba

Balíček obsahuje konfiguraci pro službu NetworkManager. Konfiguruje ji tak, aby pod sebou spustila DNS server dnsmasq a operační systém namířila na něj (v /etc/resolv.conf).

Samotný dnsmasq slouží jako rekurzivní DNS server. Konfiguraci jeho upstream serverů zajišťuje NetworkManager přes DBUS. DNS servery se konfigurují pomocí NetworkManageru při konfiguraci sítě. Pokud se používá konfigurace DNS z DHCP, ručně není žádná konfigurace vedena.

Adresáře na disku appliance

Balíček nevlastní žádné adresáře.

Konfigurační soubory

  • /etc/NetworkManager/conf.d/01_use-dnsmasq.conf - konfigurace NM, aby startoval a ovládal dnsmasq

  • /etc/NetworkManager/dnsmasq.d/01_use-hosts.conf - konfigurace dnsmasqu v NM, aby bral v úvahu soubor /etc/hosts

  • /usr/lib/systemd/system/iam-dns-reload.service - služba pro snadný reload dnsmasq

Ovládání

Běh DNS serveru se nijak explicitně neovládá, vše si řeší NM sám.

  • Při přidání záznamu do /etc/hosts se změna na operačním systému projeví okamžitě, ale v dnsmasqu až po jeho reloadu.

  • Při změně záznamu do /etc/hosts se změna na operačním systému projeví okamžitě, ale v dnsmasqu až po jeho reloadu.

  • Při odebrání záznamu z /etc/hosts se změna na operačním systému projeví až po reloadu dnsmasqu. Operační systém totiž sice nenajde záznam v hosts souboru, ale pak se zeptá dnsmasqu, který záznam stále zná.

Reloadem dnsmasq se změny v hosts souboru v operačním systému appliance zpropagují i do Docker kontejnerů. Tyto kontejnery začnou z DNS resolvovat nové záznamy. Reload dnsmasq lze provést pomocí SIGHUP na jeho proces, balíček ale obsahuje i předpřipravenou systemd unitu na provedení reloadu.

Reload dnsmasq
systemctl start iam-dns-reload