web-dev-qa-db-fra.com

Ubuntu 18.04 systemd-resolution ne lit pas correctement le fichier /etc/resolv.conf

J'ai rencontré un problème étrange avec mon Ubuntu 18.04. J'utilise openfortivpn pour me connecter aux ressources de mon entreprise et cela a bien fonctionné. J'utilise également openvpn pour me connecter à certaines ressources différentes, parfois même simultanément. Aujourd'hui, toutes les ressources derrière le VPN sont devenues inaccessibles et j'ai compris que cela était lié à certains paramètres DNS sur mon PC.

Sans connexion openfortivpn active:

ll /etc/resolv.conf
lrwxrwxrwx 1 root root 37 Jan  9 10:52 /etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf

grep name /run/systemd/resolve/*.conf 
/run/systemd/resolve/resolv.conf:nameserver 192.168.139.2
/run/systemd/resolve/stub-resolv.conf:nameserver 127.0.0.53

Avec openfortivpn actif:

ll /etc/resolv.conf
lrwxrwxrwx 1 root root 37 Jan  9 10:52 /etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf

grep name /run/systemd/resolve/*.conf 
resolv.conf:nameserver 192.168.139.2
stub-resolv.conf:nameserver 10.220.64.161
stub-resolv.conf:nameserver 10.220.64.162

Sudo systemd-resolve --status
Global
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

Link 6 (ppp0)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

Link 2 (ens33)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.139.2
          DNS Domain: localdomain

J'ai donc essayé d'ajouter le DNS manuellement dans la résolution systemd:

Sudo systemd-resolve --set-dns=10.220.64.161 --set-domain=localdomain --set-llmnr=yes --set-mdns=no --set-dnssec=no --interface=ppp0

systemd-resolve --status
Global
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

Link 6 (ppp0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 10.220.64.161
          DNS Domain: localdomain

Link 2 (ens33)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.139.2
          DNS Domain: localdomain

Merci beaucoup pour tout conseil. Michal.

3
MichalD

en utilisant 18.10, j'ai eu un problème similaire. J'ai résolu mon problème en modifiant /etc/systemd/resolved.conf avec le serveur DNS et les informations de domaine de recherche. cela semble être un comportement correct, selon la page de manuel,

Les serveurs DNS contactés sont déterminés à partir des paramètres globaux dans /etc/systemd/resolved.conf, les paramètres statiques par lien dans /etc/systemd/network/*.network (dans le cas où systemd- networkd.service (8) est utilisé), les paramètres dynamiques par lien reçus via DHCP et toutes les informations de serveur DNS mises à disposition par d'autres services système. Voir resolv.conf (5) et systemd.network (5) pour plus de détails sur les propres fichiers de configuration de systemd pour les serveurs DNS. Pour améliorer la compatibilité, /etc/resolv.conf est lu afin de découvrir les serveurs DNS système configurés, mais uniquement s'il ne s'agit pas d'un lien symbolique vers /run/systemd/resolve/stub-resolv.conf ou/run/systemd/resolver/resolv.conf (voir ci-dessous).

ma configuration ressemble à ceci, ajustez-la en fonction de votre environnement

1) 192.168.1.1 est votre DNS privé

2) la syntaxe du domaine est importante, n'oubliez pas le point de fin "."

/etc/systemd/resolved.conf
[Resolve]
DNS=192.168.1.1
#FallbackDNS=
Domains=blah.mydomain.com. blahblah.mydomain.com. 
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=yes
#DNSStubListener=yes

puis redémarrez le service

Sudo systemctl restart systemd-resolved.service

vérifiez que le service est en cours d'exécution. des erreurs de syntaxe peuvent provoquer des problèmes que vous pouvez voir ici.

Sudo systemctl status systemd-resolved.service

essayez de rechercher un domaine local

nslookup blah.mydomain.com

si cela ne fonctionne pas, vérifiez que la requête n'expire pas. spécifier manuellement le serveur DNS

nslookup blah.mydomain.com 192.168.1.1
3
Mark