Hallo
Ich möchte im LAN von einem Linux Rechner aus einen Windows Rechner pingen. Vom Windows Rechner aus funktioniert der Ping sowohl auf die IP, als auch auf den Hostnamen. Von Linux aus kann ich leider nur die IP pingen, beim Hostnamen kommt nämlich die Meldung "unknown host".
Auf meinem D-Link DSL-2740B Router kann ich bei den DNS-Einstellungen nur die DNS-Server des Providers angeben und es gibt leider keine Einstellungen um aus dem Router einen DNS-Server für das LAN zu machen.
Seltsam ist, dass ich bei den DHCP-Einstellungen zum Definieren einer fixen IP einen Hostnamen angeben muss. Deshalb und weil das Pingen vom Windows Rechner aus ohne Eintrag im Hostfile funktioniert, vermute ich, dass die gemachten DHCP Einstellungen "versteckt" auch einen DNS-Server auf dem Router einrichten. Einen anderen Linux Rechner, dem ich über DHCP nicht eine feste IP zugewiesen habe, kann ich von Windows aus übrigens nicht pingen.
Wenn das so ist, wieso kann ich von Linux aus meinen Windows XP PC nicht über den Hostnamen pingen? Der Router ist als DNS Server eingetragen.
Linux 15.070 Themen, 107.540 Beiträge
Für die Namensauflösung im LAN ist die Datei /etc/hosts zuständig.
Beispiel:
cat /etc/hosts
127.0.0.1 localhost
192.168.0.2 Winkler.local Winkler
192.168.0.3 Winkler2.local Winkler2
192.168.0.9 Winkler4.local Winkler4
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Links steht die IP und rechts davon der Name des Rechners.
Ganz früher als das Internet noch jung war gab es noch nicht diese Nameserver, welche die Hostnamen in IP Adressen umwandeln.
Man mußts damals diese hosts Datei von einem zentralen Internetserver herunterladen. In ihr waren alle Rechner eingetragen die im Internet angeschlossen waren.
Das lief damals alles unter Unix.
Das weiss ich, ich würde es aber gerne ohne Hosts Dateien machen.
Irgend eine Art DNS-Server muss ja auf dem Router laufen, sonst könnte ich den Linux Rechner von Windows aus auch nicht pingen.
Auf meiner Fritzbox läuft Linux und ein DNS Forwarder, welcher die DNS Anfragen an den DNS Server des Providers weiterleitet.
Die hosts datei ist die einfache Lösung, aber wenn du willst kannst du dir einen DNS Server mit bind aufbauen:
Mit BIND werden bei den Providern die DNS Server aufgebaut:
http://de.wikipedia.org/wiki/BIND
Ich glaube man kann sich mit telnet auf den D-Link Router einloggen:
telnet 192.168.1.1
Auf diesem Router läuft auch Linux und es gibt dort auch eine Datei /etc/resolv.conf in der die DNS Server des Providers automatisch eingetragen werden.
Mir ist nicht bekannt das BIND auf einem DSL Router läuft.
Mit Windows kenne ich mich nicht aus.
Diese Aussage verstehe ich nicht. Über DHCP wird einem Rechner immer eine dynamische und nie ein feste IP zugewiesen.
Man kann sicherlich einstellen, das die Lease nie abläuft und einige DHCP Server gestatten auch für bestimmte MAC Adressen bestimmte IP's zu reservieren. Aber das Grundprinzip von DHCP ist, dass der DHCP Server, in Deinem Fall der Router sich im Netz zu erkennen gebenden Rechner eine IP aus einem Pool zuweist. Gleichzeitig übergibt er dem Rechner auch solche Sachen wie Standardgateway, DNS-Server, die Netmask ggf. auch noch WinS Server .
Stelle ich meinen Rechner auf DHCP so brauche ich mich um gar nichts zukümmern. Auch brauch ich dem Router keine Hostname zu übergeben, diese ermittelt er bei der IP vergabe selbst.
Vergebe ich jedoch feste IP Adressen von Hand (DHCP ist also ausgeschaltet), dann muss ich natürlich auf dem lokalen Rechner einmal meine IP eingeben mit natürlich richtiger Subnetmask und muss weiterhin die IP meines Routers einmal als Standardgateway und DNS-Server eintragen. Dies dient aber eigentlich nur dazu, dass die DNS Auflösung ins Internet funktioniert. Die jeweiligen Rechnernamen und ihre IP werden dann nicht vom gewöhnlichen Heimrouter aufgelöst.
Dazu sind dann die Einträge in der Hosttabelle notwendig, Es sei denn, ich betreibe eine Domäne mit entsprechender Domänenanmeldung. Nur dort gibt es dann auch einen DNS Server der die Namensauflösung für diese tätigt.
Lies bitte auch hier : http://de.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol
Ja, das was ich meine ist eine Reservierung. Bei der Eingabemaske muss Computername, IP-Adresse und MAC-Adresse angeben werden.
Was mich verwirrt ist die Tatsache, dass ich von den Windows Rechnern aus alle erfassten Systeme mit dem Hostnamen pingen kann und die nicht erfassten nicht, während ich bei Linux weder die erfassten noch die nicht erfassten mit dem Hostnamen pingen kann. Pingen auf die IP klappt überall. Ich habe das von jeweils zwei Windows und Zwei Linux System aus ausprobiert.
Könnt ihr euch das erklären?
Also eine Hostnamenauflösung über DHCP ?
Hm...
Unter Windows gibt es das WINS Protokoll (kenne ich gar nicht da ich kaum Windows nutze):
http://de.wikipedia.org/wiki/Windows_Internet_Naming_Service
WINS
Windows Internet Naming Service
aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Der Windows Internet Naming (oder auch Name) Service (WINS) ist ein von Microsoft entwickeltes System zur dynamischen Auflösung von NetBIOS-Namen.
WINS funktioniert ähnlich wie DNS und ist auch dynamisch. Geht ein neuer Host an das Netz, registriert er seinen Namen automatisch beim WINS-Server, sodass ein manueller Eingriff wie bei Lmhosts- oder Hosts-Dateien nicht nötig ist. Weiterhin registriert der Client beim WINS-Server nicht nur den NetBIOS-Namen des Rechners, sondern auch den der Domäne und der angemeldeten Benutzer und Benutzergruppen. Auch ein Samba- oder Samba-TNG-Server kann einen WINS-Server emulieren.
Auch wenn WINS im lokalen Netz eine ähnliche Funktion wie DNS bietet, gibt es einen Unterschied: WINS arbeitet auf den Ports für NetBIOS (137, 138, 139, 445).
Mit der Einführung von Windows 2000 hat sich Microsoft von WINS abgewandt und strebt nun die Nutzung von DNS und dem Active Directory an. (Aus praktischer Erfahrung ist allerdings ggf. der Einsatz von WINS-Servern weiterhin zu empfehlen, da einige Serverdienste in Microsoft-Netzen weiterhin WINS zur Namensauflösung benutzen, z. B. Exchange-Server, verteiltes Dateisystem DFS, etc.)
WINS hat allerdings ein Problem damit, einmal im Netz registrierte Namen wieder los zu werden, da diese auf allen Stationen gespeichert werden, und es keine dokumentierte Methode gibt, sie definiert zu löschen.
Also wird der Hostname vom DHCP Server unter Windows geholt. Das funktioniert aber nur unter Windows, nicht unter Linux.
Ich nutze keinen DHCP Server unter Linux.
Ich kann auch nur Handbücher lesen ;-).
PS: Ich würde DHCP nur für Notebooks verwenden.Bei deinen 3 oder 4 Rechnern lohnt sich DHCP nicht. Schon ein Printserver hat mit DHCP Probleme.
PPS: Warum es unter Linux nicht funktioniert :
http://de.wikipedia.org/wiki/DHCP
DHCP und DNS
"Einige DHCP-Server können mit dem DNS zusammenarbeiten, indem sie IP-Adresse, Rechnernamen und „lease time“ an den DNS-Server weiterleiten. Damit ist eine Namensauflösung für Arbeitsstationen auch in Netzen mit DHCP bequem möglich. Dies ist allerdings nicht die Regel. Im Normalfall kommuniziert der Client direkt mit dem DNS-Server. Lediglich bei älteren Windows-Betriebssystemen (älter als Windows 2000) muss diese Aufgabe vom DHCP-Server übernommen werden."
Wahrscheinlich kann dein DHCP Server nicht mit DNS zusammenarbeiten.
So weit mir bekannt ist, läuft auf den DSL Routern auch kein DNS Server. Es wird in der Regel nur ein DNS Forwarder laufen der die DNS Anfragen an den Nameserver des Providers weiterleitet.
Du kannst dich ja mal testweise auf dem DSL Router mit telnet einloggen:
telnet 192.168.1.1 (oder dir richtige Adresse des DSL Routers)
Ich hatte früher auch einen DLink Router. Auf diesem DLink Router lief das Programm dproxy
http://dproxy.sourceforge.net/
Ein Caching Only Nameserver speichert die aufgelösten IP Adressen in einem Cache. Dadurch wird eine zweite Anfrage an den Nameserver vermieden und die IP wird aus dem Cache geholt.
Ließ mal diesen Artikel zum DNS System:
http://de.wikipedia.org/wiki/Domain_Name_System
Ich weiß nicht welches Programm auf deinem DSL Router läuft.
Vielen Dank für die ausführliche Antwort!
Es lag tatsächlich an WINS. In den Eigenschaften der Verbindung unter Erweitert kann man im Register WINS die NetBIOS Einstellungen vornehmen.
Die Einstellungen waren auf Standard, dazu steht: "NetBIOS-Einstellung des DHCP-Servers verwenden. Falls die statische IP-Adresse verwendet wird oder der DHCP-Server keine NetBIOS-Einstellungen Anbietet, wird NetBIOS über TCP/IP aktiviert".
In dem Fall mache ich das also jetzt über die Host Dateien...
Wenn der DHCP Server des DSL Routers nicht mit dem DNS Server des Routers zusammenarbeitet, dann wird die Namensauflösung unter Liux auch nicht über DHCP funktionieren.
Bei 3 oder 4 Rechner kann man statische Adressen verwenden und dann editierst du einfach die /etc/hosts Datei unter Linux und unter Windows (?).
Wo ist denn unter Windows die Host Datei?
Ich blicke bei Windows und seinen Konfigurationsdateien überhaupt nicht durch.
C:\WINDOWS\System32\drivers\etc\hosts
