web-dev-qa-db-fra.com

Comment obliger le serveur Ubuntu 18.04 à utiliser des serveurs de noms DNS à partir de / etc / network / interfaces?

Sur le serveur Ubuntu 18.04, j'ai désactivé netplan et utilisé/etc/network/interfaces.

Sudo apt-get -y install ifupdown

cat <<EOM  | Sudo bash -c 'cat > /etc/network/interfaces'
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.5.5
netmask 255.255.255.0
gateway 192.168.5.254
dns-nameservers 192.168.5.53 192.168.5.5
EOM

Sudo ifdown --force eth0 lo && Sudo ifup -a

Sudo systemctl stop networkd-dispatcher
Sudo systemctl disable networkd-dispatcher
Sudo systemctl mask networkd-dispatcher
Sudo apt-get -y purge nplan netplan.io

Mais apparemment, la résolution de systemd ne prend pas en compte le champ dns-nameservers.

Dans le /etc/resolv.conf, il ne met que ceci:

nameserver 127.0.0.53

La sortie de ls -la /etc/resolv.conf est:

lrwxrwxrwx 1 root root 39 Oct  2 15:28 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

La sortie du Sudo systemd-resolve --status | grep -A3 Server est vide.

Je peux définir les serveurs DNS dans /etc/systemd/resolved.conf comme ceci:

[Resolve]
DNS=192.168.5.53 192.168.5.5

Alors la sortie de Sudo systemd-resolve --status | grep -A3 Server est:

     DNS Servers: 192.168.5.53
                  192.168.5.5
      DNSSEC NTA: 10.in-addr.arpa
                  16.172.in-addr.arpa

Et ils sont utilisés correctement et apparaissent dans /etc/resolv.conf.

Comment faire fonctionner la ligne de configuration dns-nameservers?

4
Velkan

Comment faire fonctionner la ligne de configuration dns-nameservers?

Comme vous pouvez le constater avec la commande status, la ligne fonctionne parfaitement:

DNS Servers: 192.168.5.53
              192.168.5.5

Le lien symbolique /etc/resolv.conf indique:

nameserver 127.0.0.53

Cela indique que dnsmasq est exécuté ici: https://help.ubuntu.com/community/Dnsmasq

En bref, cela signifie que les recherches de noms de domaine interrogeront d'abord un cache local pour savoir si le site a déjà été visité. 127.0.0.xx est "local" dans ce contexte. Si tel est le cas, le cache local fournira l'adresse IP. Si le site n'a pas encore été visité et qu'aucune référence n'est disponible dans le cache local, les serveurs de noms DNS répertoriés seront alors les seuls à le faire. 192.168.5.53 et 192.168.5.5, dans votre cas, être utilisés.

Les lectures ci-dessus sont tout à fait normales et attendues.

1
chili555

Vous avez également besoin du package resolvconf.

Donc, pour se débarrasser complètement de netplan:

  1. Configurez /etc/network/interfaces
  2. Installez ifupdown et vos amis: $ Sudo apt install ifupdown resolvconf
  3. Supprimer netplan: $ Sudo apt remove nplan netplan.io
1
aha