it-swarm.com.de

Wie wählt man einen DNS-Server aus, der mit mehreren Netzwerken verbunden ist?

Ich habe einen Laptop mit Ubuntu 16.04, der mit zwei verschiedenen Netzwerken verbunden ist (in der Tat habe ich 5 verschiedene Laptop-Modelle, die dies alle erleben). Eines ist ein drahtloses Netzwerk, das andere nicht. In diesen beiden Netzwerken habe ich verschiedene DNS-Server.

Ich habe regelmäßig die Erfahrung gemacht, dass beim Versuch, einen Ping-Befehl zu senden oder eine SSH-Verbindung zu einem bekannten Host herzustellen, ein "unbekannter Host" -Fehler auftritt. Ich kann fünf Ping-Befehle im Abstand von einer Sekunde ausführen, und manchmal kommen alle fünf durch, manchmal nur ein oder zwei ( oder keine). Ich erlebe dasselbe, wenn ich 'nslookup' für einen Hostnamen verwende. Bei Verwendung von SSH mit einer IP-Adresse erhalte ich keine Fehler. Dies lässt mich glauben, dass Ubuntu zufällig den zu verwendenden DNS-Server eines Netzwerks auswählt.

Gibt es also eine Möglichkeit, den DNS-Server eines Netzwerks auszuwählen oder Ubuntu nach beiden zu fragen, vorausgesetzt, einer von ihnen kennt den Host nicht?

'IP-Routenliste' listet verschiedene Metriken für die Netzwerke auf, von denen eine auf 100 und eine auf 600 eingestellt ist.

Wenn es weitere relevante Informationen gibt, lassen Sie es mich bitte wissen.

Der Inhalt von /etc/resolv.conf:

Dynamische Datei resolv.conf (5) für den von resolvconf (8) generierten glibc resolver (3) BEARBEITEN SIE DIESE DATEI NICHT VON HAND - IHRE ÄNDERUNGEN WERDEN ÜBERSCHREIBEN
nameserver 127.0.1.1
suche xx.yy.zz

Ausgabe der IP-Routenliste

standard über 10.80.0.1 dev enp0s25 proto static metric 100
Standard über 10.125.64.1 dev wlo1 proto static metric 600
10.80.0.0/24 dev enp0s25 proto kernel scope link src 10.80.0.54 metric 100
10.125.64.0/19 dev wlo1 proto kernel scope link src 10.125.83.244 metric 600
10.220.2.16 über 10.80.0.1 dev enp0s25 proto dhcp metric 100
169.254.0.0/16 dev enp0s25 scope link metric 1000
192.0.2.1 über 10.125.64.1 dev wlo1 proto dhcp metric 600

[email protected]:~$ nmcli dev show enp0s25 | grep DNS
IP4.DNS[1]:                             10.220.2.5

[email protected]:~$ nmcli dev show wlo1 | grep DNS
IP4.DNS[1]:                             10.220.2.24
1
Tobias

Ubuntu selbst verwendet immer alles, was es an DNS gibt. Wenn im ersten DNS keine Adresse gefunden wird, wird die zweite Adresse ausprobiert, die verfügbar ist.

Ihre Lösung ist also, da wir gesehen haben, dass Ihr /etc/resolv.conf leer ist - aber Sie haben die Information geliefert, dass Sie einen DNS-Server haben, der korrekt von Ihrem DHCP verteilt wurde.

Jetzt können Sie entweder NetworkManager deaktivieren und nur die Schnittstellen verwenden, die Ihr Problem sofort beheben würden, oder Sie suchen in Ihrem /etc/NetworkManager/NetworkManager.conf nach der Zeile dns=XXXXXX und löschen diese Zeile oder kommentieren diese Zeile aus.

Starten Sie Ihren NetworkManager Sudo systemctl restart NetworkManager.service neu und jetzt sollte Ihr DNS in /etc/resolv.conf eingestellt sein

2
Ziazis

Ich denke, Sie vermissen das statische Routing auf beiden Netzwerkkarten, da das von Ihnen verwendete Modell ein statisches Routing auf Netzwerkkartenebene erfordert.

Sie können Ihre Netzwerkschnittstellen wie folgt bearbeiten:

auto eth1

iface eth1 inet static

adresse 10.0.0.100

netzmaske 255.255.255.0

post-up route addiere 10.0.0.100 über 10.0.0.1 dev eth1

auto eth2

iface eth2 inet static

adresse 10.0.1.100

netzmaske 255.255.255.0

post-up route addiere 10.0.1.100 über 10.0.1.1 dev eth2

auf diese Weise werden die Abfragen an verschiedene Netzwerke weitergeleitet.

0
azhar buttar