====== 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;