ubuntuusers.de

Ein Hostname für zwei IP Adressen?

Status: Gelöst | Ubuntu-Version: Kubuntu 13.10 (Saucy Salamander)
Antworten |

Cordess

Anmeldungsdatum:
14. Mai 2006

Beiträge: 466

Ich habe einen Rechner, der sowohl über ein kabelgebundenes Ethernet als auch via WLAN erreichbar ist.

Der Router weißt diesem Rechner für das WLAN Gerät eine niedrige IP zu, z.B. 192.168.0.10 und für das kabelgebundene Ethernet Gerät eine hohe IP z.B. 192.168.0.11.

Über WLAN wird allerdings erst dann eine Verbindung aufgebaut, wenn der Benutzer sich in KDE einloggt. Diese Aufgabe übernimmt nämlich die KDE Netzwerkverwaltung, die erst nach dem Login zum tragen kommt. Über die kabelgebundene Netzwerschnittstelle ist der Rechner stattdessen immer nach dem Booten erreichbar.

So weit so gut, damit kann ich nämlich leben.

Das Problem ist aber nun, dass der Rechner nur einen Hostnamen hat und wenn ich nun einen ping durchführe und anstatt einer IP Adresse den Hostnamen angebe, dann geht der Ping an die WLAN Schnittstelle. Da der Rechner aber ohne Login in KDE noch nicht mit dem Netzwerk verbunden ist, meldet die Ping Software, dass der Rechner nicht erreichbar sei, es wird nämlich leider nur eine IP Adresse die für den Hostnamen verknüpft ist, getestet und das ist die niedrigere an der normalerweise das WLAN Gerät hängt.

Beispiel:

ping rechnername

schlägt fehl, weil auch

ping 192.168.0.10

fehl schlägt, mit dem der Rechnername verknüpft ist.

Allerdings ist der Rechnername auch mit 192.168.0.11 verknüpft, nur prüft das der ping Befehl nicht, weil der Ping ausschließlich an 192.168.0.10 geht und nicht an 192.168.0.11.

Ein

ping 192.168.0.11

funktioniert dagegen erwartungsgemäß sofort, aber was ich nun möchte ist, dass es auch einfach über den Hostnamen geht.

Prinzipiell könnte ich das Problem zwar durch einen Trick umgehen, in dem ich dem kabelgebundenen Netzwerkgerät eine niedrigere IP Adresse zuteile, aber das ist nur eine Notlösung. Es sollte auch irgendwie anders gehen.

Auch wäre es natürlich machbar, dass sich der Rechner auch ohne dass man sich in KDE einloggen muss, global automatisch in das WLAN Netz einloggt, aber das wollte ich jetzt auch nicht.

Wie kann man also obiges Problem lösen, dass ein Hostname n* IP Adressen haben kann und ping dann trotzdem alle durchtestet ob wenigstens ein Ethernet Device erreichbar ist?

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14388

Cordess schrieb:

Das Problem ist aber nun, dass der Rechner nur einen Hostnamen hat und wenn ich nun einen ping durchführe und anstatt einer IP Adresse den Hostnamen angebe, dann geht der Ping an die WLAN Schnittstelle. Da der Rechner aber ohne Login in KDE noch nicht mit dem Netzwerk verbunden ist, meldet die Ping Software, dass der Rechner nicht erreichbar sei, es wird nämlich leider nur eine IP Adresse die für den Hostnamen verknüpft ist, getestet und das ist die niedrigere an der normalerweise das WLAN Gerät hängt.

Wie sind die Ausgaben für:

route -n
hostname -i
hostname --all-ip-addresses
dig $(hostname) +short

?

EDIT:

Wie bzw. wo erfolgt im (W)LAN die Namensauflösung für "rechnername"?

Cordess

(Themenstarter)

Anmeldungsdatum:
14. Mai 2006

Beiträge: 466

lubux

Wie sind die Ausgaben für:

route -n
hostname -i
hostname --all-ip-addresses
dig $(hostname) +short

Auf dem betroffenen Rechner sieht es, wenn der Rechner nur via Kabel, aber noch nicht via WLAN verbunden ist, so aus:

route -n                                                                                         
Kernel-IP-Routentabelle                                                                                             
Ziel            Router          Genmask         Flags Metric Ref    Use Iface                                       
0.0.0.0         192.168.0.1   0.0.0.0         UG    0      0        0 eth0                                        
192.168.0.0   0.0.0.0         255.255.255.0   U     1      0        0 eth0  
hostname -i
127.0.1.1
hostname --all-ip-addresses
192.168.0.11
dig $(hostname) +short
192.168.0.10
192.168.0.11

Wie bzw. wo erfolgt im (W)LAN die Namensauflösung für "rechnername"?

Der Router teilt die IP Adressen via DHCP zu. Ich schätze mal, dass er auch die Namensauflösung übernimmt. Statische IP Adressen habe ich keine eingerichtet, ansonsten ist das ganze LAN ist ein reines IPv4 Netz, IPv6 habe ich ausgeschaltet. Der Router ist eine Fritz!Box 6360.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14388

Cordess schrieb:

Auf dem betroffenen Rechner sieht es, wenn der Rechner nur via Kabel, aber noch nicht via WLAN verbunden ist, so aus:

Und wie sind die Ausgaben, wenn der Rechner via Kabel und via WLAN verbunden ist? BTW: Warum ist es für dich wichtig, dass dein Rechner, per Kabel und per WLAN mit der FB6360 verbunden ist?

EDIT:

Das lookup macht deine FB6360. Obwohl dein Rechner nur per Kabel mit der FB6360 verbunden ist und evtl. noch gar keine IP-Adresse für das WLAN-Interface hat, zeigt dig:

Cordess schrieb:

dig $(hostname) +short
192.168.0.10
192.168.0.11

EDIT 2:

Evtl. ist das ein Bug in der Firmware der FB6360. Die Box sollte keine Namensauflösung (ins W/LAN) machen für ein Gerät/IP-Adresse (hier das per WLAN angeschlossene), das nicht aktiv ist.

... und genau das macht die FB6360. Hier ein Beispiel:

:~$ host android-###### 192.168.178.1
Using domain server:
Name: 192.168.178.1
Address: 192.168.178.1#53
Aliases: 

android-######.fritz.box has address 192.168.178.23

Cordess

(Themenstarter)

Anmeldungsdatum:
14. Mai 2006

Beiträge: 466

lubux schrieb:

Cordess schrieb:

Auf dem betroffenen Rechner sieht es, wenn der Rechner nur via Kabel, aber noch nicht via WLAN verbunden ist, so aus:

Und wie sind die Ausgaben, wenn der Rechner via Kabel und via WLAN verbunden ist?

Genauso.

BTW: Warum ist es für dich wichtig, dass dein Rechner, per Kabel und per WLAN mit der FB6360 verbunden ist?

Erstmal weil es geht und natürlich auch, weil man so in Fällen wo man viel übertragen muss, mehr Daten/s übertragen kann. Mehrere Netzwerkschnittstellen kann man nämlich kombinieren, das geht automatisch.

Das lookup macht deine FB6360.

Ja, der Router, sagte ich ja. Aber trotzdem Danke für die Bestätigung.

EDIT 2:

Evtl. ist das ein Bug in der Firmware der FB6360. Die Box sollte keine Namensauflösung (ins W/LAN) machen für ein Gerät/IP-Adresse (hier das per WLAN angeschlossene), das nicht aktiv ist.

... und genau das macht die FB6360. Hier ein Beispiel:

:~$ host android-###### 192.168.178.1
Using domain server:
Name: 192.168.178.1
Address: 192.168.178.1#53
Aliases: 

android-######.fritz.box has address 192.168.178.23

Hast du die gleiche FB? Die Erklärung leuchtet ein und würde auch Sinn machen.

Falls das aber bewusst so ist, dann könnte es auch an den Programmen wie ping liegen. Denn ssh kommt damit klar und nimmt sich dann die andere IP die geht, also die kabelgebundene. Ping tut dies nicht und bleibt bei der ersten IP die es für den Hostnamen erhalten hat. SMB via Dolphin macht hier leider die gleichen Probleme.

Am besten wäre es, wenn man das irgendwie von der FB aus lösen könnte, also das die nur IPs von Hostnamen übermittelt, die auch online sind. Allerdings habe ich gerade festgestellt, dass auch uralte Hostnamen, die einmal mit der FB verbunden waren noch gespeichert sind und für

dig uralter_host

auch noch ein Ergebnis liefern und das bei einem Rechner, den ich schon seit > 8 Monaten nicht mehr im LAN habe und eigentlich ausrangiert habe. Es wäre denkbar, dass das also vielleicht doch so erwünscht ist. Denn dadurch kann man abfragen, ob ein bestimmter Host, von dem man nur den Hostnamen kennt, gerade online ist. Würde die FB sich diese Einträge nicht merken, dann würde er den Hostnamen nicht kennen.

Fehlerhaft könnte aber dennoch sein, dass die FB die Hostnamen nicht zuerst nach den funktionierenden IPs durchfiltert und diese zuerst durchreicht. Das wäre IMO das sinnvollste.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14388

Cordess schrieb:

Genauso.

Ist die Ausgabe auch bei

route -n

genau so? Wie ist mit einem und mit beiden aktiven Interfaces, die Ausgabe von:

arp -av

?

Cordess schrieb:

Erstmal weil es geht und natürlich auch, weil man so in Fällen wo man viel übertragen muss, mehr Daten/s übertragen kann. Mehrere Netzwerkschnittstellen kann man nämlich kombinieren, das geht automatisch.

Naja, wie man sieht geht es nicht richtig. Ich denke, da braucht man eine (richtig konfigurierte) Software, die "load balancing" macht.

Cordess schrieb:

Aber trotzdem Danke für die Bestätigung.

Das war nicht als Bestätigung gemeint, sondern als zusätzlicher Hinweis, dass das "Problem" bei der FB6360 liegt.

Cordess schrieb:

Hast du die gleiche FB?

Ja.

Cordess schrieb:

Denn ssh kommt damit klar und nimmt sich dann die andere IP die geht, also die kabelgebundene.

Das wird daran liegen, dass der sshd-Server an allen Interfaces lauscht. Siehe die Ausgabe von:

sudo ss -inputeam | grep -i ssh

Cordess schrieb:

... bei einem Rechner, den ich schon seit > 8 Monaten nicht mehr im LAN habe und eigentlich ausrangiert habe.

Was meinst Du mit "ausrangiert"? Hast Du diesen Rechner auch in deiner FB6360 gelöscht? Für die bereits gelöschten Rechner, macht meine FB6360 keine Namensauflösung mehr.

Cordess schrieb:

Würde die FB sich diese Einträge nicht merken, dann würde er den Hostnamen nicht kennen.

Genau, und das wäre auch ein Hinweis, dass der Rechner (Host) nicht online ist. Die FritzBox könnte sich m. E. die Namen schon merken (auch zwecks DHCP), aber für Rechner die nicht online sind, keine Namensauflösung machen, denn man kann sich auf diese Namensauflösung sowieso nicht verlassen.

Cordess schrieb:

..., dass die FB die Hostnamen nicht zuerst nach den funktionierenden IPs durchfiltert und diese zuerst durchreicht. Das wäre IMO das sinnvollste.

Das wäre ein Verbesserungsvorschlag für AVM.

EDIT:

Als möglicher workaround könntest Du, auf dem Rechner von dem aus Du den ping machst, einen Eintrag in die "/etc/hosts"-Datei machen. Denn wegen dem Eintrag "hosts: files dns" in der "/etc/nsswitch.conf"-Datei, macht ping die 1. Namensauflösung gemäß den Eintragungen in der "/etc/hosts"-Datei (... und danach wenn die 1. kein Ergebnis "liefert", die 2. vom dns-Server). D. h. dort eine Zeile mit:

192.168.0.11    <hostname>

eintragen. Dann sollte für den ping auf <hostname>, immer die IP-Adresse 192.168.0.11 verwendet werden.

Cordess schrieb:

Allerdings ist der Rechnername auch mit 192.168.0.11 verknüpft, nur prüft das der ping Befehl nicht, weil der Ping ausschließlich an 192.168.0.10 geht und nicht an 192.168.0.11.

EDIT 2:

Wie bzw. wo ist der Rechnername mit der IP-Adresse 192.168.0.11 verknüpft?

Antworten |