====== Il file /etc/resolv.conf in cloud ======
Su un server virtuale in cloud (ad esempio presso Hetzner) generalmente il file **/etc/resolv.conf** viene generato automaticamente, ed eventualmente anche aggiornato ad ogni reboot.
Poiché il server in questione offre il servizio di **DNS server**, si vuole indicare //localhost// come prima scelta di nameserver:
nameserver 127.0.0.1
Invece l'host ad ogni riavvio presentava l'elenco dei DNS server del provider cloud.
===== Causa del problema =====
La modifica del file **/etc/resolv.conf** può dipendere da vari sottosistemi:
* **cloud-init**
* **systemd-resolved**
* **ifupdown** o **NetworkManager**
* **DHCP client**
Si è provveduto a verificare che alcuni sottosistemi **NON sono attivi**, quindi non sono responsabili del problema:
dpkg --list | grep cloud-init
systemctl is-active systemd-resolved
systemctl is-active NetworkManager
Il sottosistema di **ifupdown** invece è attivo:
systemctl is-active networking
active
I comandi **ifup** e **ifdown** leggono il file di configurazione in **/etc/netword/**, nel nostro caso avevamo il file **/etc/network/interfaces.d/50-cloud-init.cfg** che conteneva:
auto eth0
iface eth0 inet dhcp
dns-nameservers 213.133.99.99 213.133.98.98 213.133.100.100
Tuttavia le impostazioni **dns-nameservers** non corrispondevano a quanto si trovava in /etc/resolv.conf.
Il motivo è che le impostazioni ricevute via **DHCP client** hanno la precedenza e venivano impostate su di esso.
Per ovviare al problema è necessario modificare il file **/etc/dhcp/dhclient.conf**, aggiungendo una riga
supersede domain-name-servers 127.0.0.1, 8.8.8.8, 185.12.64.1;