web-dev-qa-db-fra.com

La liaison Ubuntu 19.04 ne se résout pas localement

J'essaye juste le dernier Ubuntu 19.04 et il a quelques différences avec resolv.conf lors de l'exécution de ma propre liaison localement. Précédemment dans 18.04 resolv.conf ressemble à ceci

nameserver 127.0.0.1
nameserver 127.0.0.53

alors qu'en 19.04, il a changé pour

nameserver 127.0.0.53
options edns0

Si j'utilise Dig ou nslookup pour rechercher une recherche DNS, il n'utilise pas la configuration de liaison locale et obtient un fichier introuvable.

Si je mets

Dig www.example.com @127.0.0.1

vs la valeur par défaut Dig www.example.com

Dig www.example.com @127.0.0.53 

il fonctionne et obtient une réponse appropriée à la recherche.

J'ai essayé d'ajouter un fichier netplan yaml /etc/netplan/00-private-nameservers.yaml

network:
    version: 2
    ethernets:
        enp0s3:
            nameservers:
                addresses:
                - 127.0.0.1
                - 1.1.1.1
                - 1.0.0.1
                - 8.8.8.8
                - 4.4.4.4
                #search: [ nyc3.example.com ]

mais cela ne change pas resolv.conf pour faire la recherche locale comme je le pense.

Cette version est nouvelle pour moi et je ne sais pas s'il s'agit d'un bug ou quoi? Encore une fois, j'exécute bind localement et je m'attends à ce qu'il résolve les recherches de domaines localement.

[J'ai ajouté ceci en ce qui concerne le commentaire ci-dessous.]

root@server:/tmp# systemd-resolve --status
Global
       LLMNR setting: no
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
          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 2 (enp0s3)
      Current Scopes: DNS
DefaultRoute setting: yes
       LLMNR setting: yes
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 127.0.0.1
                      1.1.1.1
                      1.0.0.1
                      8.8.8.8
                      4.4.4.4
                      192.168.2.1
                      2001:569:7552:3900:4a5f:38ee:fe29:130

Sans les serveurs de noms privés, il apparaît

Link 2 (enp0s3)
      Current Scopes: DNS
DefaultRoute setting: yes
       LLMNR setting: yes
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.2.1
                      2001:569:7552:3900:4a5f:38ee:fe29:130
2
Master James

Vous pouvez éditer /etc/systemd /olved.conf

et définissez le DNS sur la liaison en cours d'exécution alias DNS Server via

[Resolve]
DNS=127.0.0.1

redémarrer avec

systemctl restart systemd-resolved.service

et lorsque vous creusez (ou recherchez comme expliqué ci-dessus), vous obtenez (juste) un www.example.com Un enregistrement avec un fichier IP de fichiers de zone servis localement le résultat IP approprié mais il n'affiche pas autant d'informations que ce que vous obtenez si vous ajoutez @ 127.0.0.1 ou le resolv.conf a 127.0.0.1 devant 127.0.0.53

Ceci est une réponse partielle provenant de l'aide dans les commentaires et doit être conservée et non supprimée comme toutes les autres réponses que j'ai ajoutées qui ont été supprimées au motif qu'elles n'étaient pas déclarées comme celle-ci comme réponse valide/utile ou réponses partielles, mais elles probablement utile dans certaines situations. Dans mon cas, je fais DNSSEC etc. et j'ai besoin de voir des résultats plus substantiels comme ceux de @ 127.0.0.1 ou du moins c'est pourquoi je n'ai pas mis plus de clarté sur le fait qu'il soit correct dans certains cas. Je m'attendais bien sûr à la réponse complète que vous obtenez lorsque le resolv.conf pointe directement vers le DNS s'exécutant sur le système à 127.0.0.1 et non chaîné via 127.0.0.53 à la passerelle de routeur fournie par DHCP (généralement).

[Veuillez également noter que les maigres commentaires sont insuffisants pour montrer le travail avec les blocs de code et les résultats, d'où l'importance de ne pas supprimer la discussion des communautés sur la résolution de ces problèmes ensemble. Veuillez considérer plusieurs drapeaux d'utilisateurs pour l'état de suppression.]

2
Master James

Ouais, ça me rend aussi fou. Et franchement, je n'ai pas eu assez de patience pour l'analyser en profondeur donc je ne répondrai pas à votre question de manière directe.

Mais fondamentalement, il y a cette unité systemd-encore-anoher-crazy-nommée résolue par systemd , qui se lie à 127.0.0.53:53 à la fois tcp et udp. Voilà pourquoi vous voyez nameserver 127.0.0.53 dans ton /etc/resolv.conf.

Plus que ça /etc/resolv.conf est laissé pour compatibilité par systemd-resolu comme lien symbolique vers /run/systemd/resolve/stub-resolv.conf.

Et c'est la partie que je ne comprends pas complètement, mais même si je configure mes serveurs DNS dans /etc/systemd/resolved.conf, qui semble être un fichier de configuration résolu par systemd, certains programmes ne l'utilisent tout simplement pas. Pourquoi? Aucun indice pour l'instant.

Comment je vis avec ça? J'ai également défini mes serveurs DNS dans NetworkManager. Ensuite, avec mes serveurs DNS définis à l'intérieur /etc/systemd/resolved.conf et dans NetworkManager je l'ai vraiment réglé.

Qu'en est-il de netplan.io? Je ne comprends pas encore. Mais en ce qui concerne les serveurs DNS, cela ne semble rien faire pour moi pour le moment.

0
Comar

D'accord, merci. Je résistais à l'évidence car elle n'était pas incluse. Je suis à peu près sûr que c'est un bug de façon réaliste, mais les attentes des développeurs de systèmes d'exploitation et l'utilisation imaginée doivent être différentes ou changeantes. Je pense qu'ils pensent que si vous exécutez un DNS, il ne recherche rien d'irréaliste à mon avis. Il me semblait bizarre qu'ils aient supprimé la façon dont cela fonctionnait auparavant et ne couvraient pas correctement leurs bases. (Encore une fois, j'essaierai de signaler les bogues, car il semble peut-être un oubli ou une différence d'opinions essayant d'être maigre, etc. J'avais espéré (et il y a encore une chance) que quelqu'un a trouvé une meilleure façon (et commentera ici), puis de restaurer les fonctionnalités précédentes manuellement pour qu'elles fonctionnent réellement. Quoi qu'il en soit, jusqu'à ce qu'elles reviennent dans Ubuntu 20.04 ou quoi que ce soit d'autre.

apt install resolvconf

puis modifiez ou ajoutez le fichier de configuration du démon du service resolvconf pour pointer vers l'ip locale 127.0.0.1

pico /etc/resolvconf/resolv.conf.d/head

comme ça il ressemblera

nameserver 127.0.0.1

puis redémarrez cette partie

service resolvconf restart

et voila le Dig www.example.com reviendra et le /etc/resolve.conf sera restauré à son état approprié de

nameserver 127.0.0.1
nameserver 127.0.0.53
options edns0

Eh bien, les options edns0 ont été récemment ajoutées à Ubuntu 19.04 alors que cela n'existait pas en 18.04 et comme vous le savez, car nous ajoutons le package bind9, je suppose que vous devez également ajouter/restaurer ce package resolveconf si vous utilisez la machine locale être en mesure de résoudre les enregistrements DNS qu'il fournit. Je suppose que s'ils sont correctement encordés dans le système mondial, vous pourriez également ne pas en avoir besoin, alors peut-être que vous/nous avons besoin de plus de foi le resolveconf mais il faut tester qu'il fonctionne localement je pense et oui je veux qu'il fonctionne localement sans dire à chaque commande comment pour trouver le serveur local en premier, etc.

0
Master James