Nach dem Ändern des Netzwerks schlägt die DNS-Suche für lokale Domänen fehl

7

Ich habe kürzlich ein Upgrade von 16.04 auf 17.10 durchgeführt und einige Domain-Namen können jetzt nicht mehr aufgelöst werden systemd-resolved, obwohl mein Heim-DNS-Server die Domain-Namen einwandfrei auflöst.

Meine Arbeitsplatzdomäne ist *.cs.bham.ac.uk(Informatik innerhalb einer Uni), und diese Domänen lösen sich gut auf, wenn ich bei der Arbeit bin. Aber wenn ich nach Hause gehe, werden diese Domänen nicht mehr aufgelöst. Der Ort, an dem ich jetzt bin, hat zu nichts eine Beziehung .bham.ac.uk.

bgeron@tinker ~> systemd-resolve git.cs.bham.ac.uk
git.cs.bham.ac.uk: resolve call failed: No appropriate name servers or networks for name found
bgeron@tinker ~> host git.cs.bham.ac.uk
Host git.cs.bham.ac.uk not found: 2(SERVFAIL)
bgeron@tinker ~> host git.cs.bham.ac.uk 192.168.1.254
Using domain server:
Name: 192.168.1.254
Address: 192.168.1.254#53
Aliases: 

git.cs.bham.ac.uk has address 147.188.203.99
bgeron@tinker ~> systemd-resolve --status
Global
          DNS Domain: lan
                      adf.bham.ac.uk
                      bham.ac.uk
                      cs.bham.ac.uk
          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 4 (docker0)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

Link 3 (wlp4s0)
      Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.254
          DNS Domain: lan

Link 2 (enp0s31f6)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

Ich habe keine Ahnung, warum diese DNS-Domänen dort aufgelistet sind. Es sieht aus wie ein veralteter Cache. Die Ausführung systemd-resolve --flush-cachesals Root scheint keine Auswirkungen zu haben.

Inhalt von /etc/resolv.conf:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
search lan adf.bham.ac.uk bham.ac.uk cs.bham.ac.uk

Wenn ich die searchZeile entferne , funktionieren die Suchvorgänge wieder. Dies ist jedoch offensichtlich keine dauerhafte Lösung.

Ich glaube, ich benutze so ziemlich nur Vanilla NetworkManager. Ich habe ein Bluetooth-PAN-Gerät eingerichtet, aber nicht aktiviert.

In der Vergangenheit gab es an der Uni ein Problem mit nicht aufgelösten lokalen Hostnamen: Ich glaube, es *.cs.bham.ac.ukwürde sich lösen (wie von Host (1) festgelegt), aber nicht *.bham.ac.uk. Ich kann mich nicht erinnern, was systemd-resolvefür diese Situationen sagen würde. Um das Problem zu beheben, habe ich /etc/nsswitch.confdie folgenden Inhalte, die ich irgendwo online gefunden habe, mit Atomwaffen versehen :

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          dns [!UNAVAIL=return] files
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Einige Protokolleinträge in meinem Tagebuch, die möglicherweise verwandt sind oder nicht:

  • wpa_supplicant: Schnittstelle p2p-dev-wlp4s0-Flags konnten nicht gelesen werden: Kein solches Gerät
  • Mein GPU-Treiber gibt einige Warnungen aus.

Mehr:

Nov 05 22:39:59 tinker systemd[1]: Starting Network Name Resolution...
-- Subject: Unit systemd-resolved.service has begun start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Unit systemd-resolved.service has begun starting up.
Nov 05 22:39:59 tinker systemd-resolved[11818]: Positive Trust Anchors:
Nov 05 22:39:59 tinker systemd-resolved[11818]: . IN DS 19036 8 2 49aac11d7b6f6446702e54a1607371607a1a41855200fd2ce1cdde32f24e8fb5
Nov 05 22:39:59 tinker systemd-resolved[11818]: . IN DS 20326 8 2 e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d
Nov 05 22:39:59 tinker systemd-resolved[11818]: Negative trust anchors: 10.in-addr.arpa 16.172.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 168.192.in-addr.arpa d.f.ip6.arpa corp home internal intranet lan local private test
Nov 05 22:39:59 tinker systemd-resolved[11818]: Using system hostname 'tinker'.
Nov 05 22:39:59 tinker systemd[1]: Started Network Name Resolution.
-- Subject: Unit systemd-resolved.service has finished start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Unit systemd-resolved.service has finished starting up.
-- 
-- The start-up result is done.
Nov 05 22:50:52 tinker systemd-resolved[11818]: Flushed all caches.

Irgendwelche Ideen wären sehr willkommen!

Klarstellung bearbeiten : Der Versuch, einen dieser Hostnamen aufzulösen, führt zu keinem Netzwerkverkehr, sondern führt sofort zu einem negativen Ergebnis.

Bram Geron
quelle
1
Ein Problem, das ich fand, war, dass git.cs.bham.ac.uk für die SOA von cs.bham.ac.uk, dns0.cs.bham.ac.uk, NICHT maßgeblich ist. Es könnte sein, dass es bei Ihrer Arbeit irgendwie maßgeblich ist. Ich habe es auch mit den anderen NS versucht und keiner von ihnen ist maßgeblich. Dies kann passieren, wenn es irgendwie intern gelöst wird, was erklären würde, warum es bei Ihrer Arbeit funktioniert, aber nicht zu Hause.
JDWolf
Vielen Dank, dass Sie sich damit befasst haben! Wenn ich benutze dig, scheint das AUTHORITY-Flag in der Tat nicht auf die Antwort gesetzt zu sein. (Gleiches bei der Arbeit.) Gleiches scheint jedoch für www.google.com zu gelten. Denkst du, das könnte ein Problem sein?
Bram Geron
1
Nein. Das sagt Ihnen nur, dass der DNS-Server für die von Ihnen gestellten Anforderungen nicht autorisierend ist. Versuchen Sie Folgendes: dig www.google.com Ein dns-admin.google.com-Berechtigungsflag wird gesetzt, da dies der SOA-Server ist. Mindestens einer der SOA-Server sollte autorisierend sein. In Ihrer SOA ist keiner von ihnen maßgebend. Einige DNS-Weiterleitungen funktionieren nur, wenn sie eine autorisierende Antwort erhalten.
JDWolf
1
seltsam, dass ich dies zuvor überprüft habe und dns0.cs.bham.ac.uk mir kein maßgebliches Ergebnis für git.cs.bham.ac.uk geben würde. Entschuldigung für die Irreführung
JDWolf
1
@bgeron Ich habe genau das gleiche Problem (aber in einer anderen CS-Abteilung - Cardiff!). Ich denke, dies wird verursacht durch: bugs.launchpad.net/ubuntu/+source/network-manager/+bug/1713457 . Ich habe gerade resolvconf deinstalliert (als Fix in diesem Kommentarthread vorgeschlagen) und werde hier das nächste Mal berichten, wenn ich das Netzwerk wechsle ...
Joseph Redfern

Antworten:

3

Laut Vorschlag von Joseph Redfern scheint das resolvconfnicht gut zu funktionieren systemd-resolved. Das Entfernen des resolvconfPakets hat das Problem für mich behoben.

Bram Geron
quelle