PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ping <ip-adresse> funktioniert, ping "hostname" nicht



Seiten : [1] 2

marama
29.09.06, 21:00
Hi,

ich habe ein Problemchen, vor dem ich mich vor einigen Monaten schon mal gedrückt habe (damals habe ich dann mein Linux/Windowsnetzwerk vom Router mit statischen ip-tables versorgen lassen).

Jetzt habe ich in YAST den Router als DHCP-Server und DNS eingetragen. Jetzt habe ich das Problem, dass ich die anderen Rechner im Netz nur über IP-Adresse erreichen kann, nicht aber per Hostname:

Vom Linux-Rechner aus:
ping google.de geht
ping <ip-Adresse zweiter Linux-Rechner> geht
ping <Name_zweiter_Linux_Rechner> geht NICHT
ping <Name_windows_rechner> geht NICHT
ping <Name_selber> geht

Vom Windows-Rechner aus geht JEDE der oberen Varianten.

Das heisst doch, dass windoof braf den Router nach den LAN-internen Adressen abfragt und dass der Router tut was er soll.
Warum machen das die Linux-Maschinen nicht, obwohl sie (in YAST) denselben Router als DNS eingetragen haben???

Any help???

Danke,

Udo

tschloss
29.09.06, 21:33
Woher kennt dein "DNS-Server" die Hostnamen?


Greetz
Thomas

marama
29.09.06, 22:15
Hmmm.... DNS ist ja der Router. Ich hätte mal angenommen, dass das ein Teil des DHCP-Prozesses ist: Gib mir Deinen Hostnamen und ich geb Dir eine IP.

Jepp: Wenn ich in den Status des Routers schaue finde ich die drei momentan beteiligten Rechner:
ip=192.168.2.2 mac=xx-xx-xx-23-37-F7 name=marama_nb
ip=192.168.2.3 mac=xx-xx-xx-25-BD-4E name=Linux-2
ip=192.168.2.4 mac=xx-xx-xx-51-FD-8C name=Linux-1

tschloss
29.09.06, 22:30
Ich glaub, meiner macht das nicht. Habe aber nur einen PC an, deswegen kein sinnvoller Test möglich. Würde aber Sinn machen.

Also am eintragen läge es dann ja nicht, sondern an der Abfrage.
Vielleicht hat das damit zu tun, dass entweder beim Bilden der Anfrage oder bei der Beantwortung Namen um den Default-Domain-Namen ergänzt werden (FQDN) und durch einen Fehlkonfiguration keine Treffer enstehen.(Spekulation)

Statt ping frage doch mit "host <name>" oder "host <name> <DNS-Server" mal die Adressen der Nachbarn ab. Vielleicht sieht man da mehr.

Greetz
Thomas

marama
30.09.06, 07:51
Ich bin mir nicht sicher, ob die Parameter für host so richtig getippt sind. Jedenfalls der output hängt unten. Keine Info über andere Rechner...

# host -v Linux-1 192.168.2.1
Trying "Linux-1.marama"
Trying "Linux-1"
Using domain server:
Name: 192.168.2.1
Address: 192.168.2.1#53
Aliases:

Host Linux-1 not found: 3(NXDOMAIN)
Received 100 bytes from 192.168.2.1#53 in 2102 ms

tschloss
30.09.06, 08:16
Moin,
da hier niemand einsteigt, der sich auskennt, kann ich gerne fernab von Fachgebieten, in denen ich mich wohler fühle, ein wenig mitspekulieren.

<SPEKULATIONEN>
Die Antwort

Host Linux-1 not found: 3(NXDOMAIN)
könnte ein Hinweis darauf sein, dass er die Domain (a) "" und b) "marama") nicht auflösen kann, also erst gar nicht zum Hostnamen kommt.

Es wäre mal interessant herauszufinden, was Windows anfragt (i.e. welche Domain) und das dann dem Linux beizubringen. Vielleicht gibt es unter Windows ein ähnliches Tool, sonst würde ich mal rasch den Sniffer anwerfen (ethereal) und einfach nachsehen.

(Wenn hier mal jmd beispringen könnte, der sich auskennt - ich denke dass das Standard Know-How sein müßte)

---
Nachtrag:
der Befehl unter Windows heisst "nslookup".
Bei mir daheim habe ich dasselbe Verhalten: der Windows ping löst den Hostnamen eines Linux-Servers "homesrv" (über meinen Linksys Router) richtig auf.
Aber: der Befehl "nslookup homesrv" bringt einen Fehler!!!

Sollte der Windows Ping andere Mechanismen zur Namensauflösung benutzen (ich denke da an WINS oÄ)?
Wenn ich mehr Interesse daran hätte, würde ich den ethereal jetzt anwerfen...
</SPEKULATIONEN>
Geetz
Thomas

bla!zilla
30.09.06, 11:08
Bitte mal die verwendete Distribution posten. Auf der Linux Maschine sollte keine Firewall aktiviert sein. Poste bitte auch mal den Inhalt deiner hosts von jedem Rechner und den Inhalt der /etc/resolv.conf auf deinen Linux-Maschinen.

tschloss
30.09.06, 12:01
Ergänzung zu meiner eigenen Situation: Bei mir ist es ja wie oben geschrieben genauso. Der Linuxrechner ist von Windows per ping hostname erreichbar. Jedoch hat der Linux-Server keine dynamische IP, d.h. der Linksys Router scheint den Hostnamen zu kennen ohne eine IP bereitsgestellt zu haben. Ich habe in keiner hosts Datei irgendwelche Hosts eingetragen. Alle Rechner haben den lokalen Router als primären DNS-S.

Ich wußte nicht, dass das geht. Bin gespannt, ob sich Linux das auch beibringen läßt.

Greetz
Thomas

stefan-tiger
30.09.06, 12:17
Windows macht seine namesauflösung gemeinsam mit dem was unter Linux nmblookup kann.

Wenn du kein DNS-Server hast, aber alle Linuxrechner Samba drauf haben, kannst du damit das selbe machen. Ich hab dazu mal ein Script geschrieben. welches per nmblookup die Namen rausbekommt und dann die /etc/hosts anpasst. Funktioniert einfach und zuverlässig. Keine Ahnung warums nicht längt ein Daemon für sowas gibt, wer will sich schon IP-Adressen merken :)

Such mal hier im Forum anch dem Script.

stefan-tiger
30.09.06, 12:21
http://www.linuxforen.de/forums/showthread.php?t=203879

tschloss
30.09.06, 12:28
http://www.linuxforen.de/forums/showthread.php?t=203879

Supi. Na dann war eine meiner Vermutungen -nämlich dass Win hier einen anderen Mechanismus nutzt- wenigstens richtig.

Werde das Skript mal testen. Danke.


Greetz
Thomas

bla!zilla
30.09.06, 13:21
Wenn auf dem Linux Rechner kein Samba läuft, geht auch nmblookup bzw. ein Ping seitens Windows über den NetBIOS Name nicht. Um das ganz sauber zu haben würde ich einfach per DHCP reservierte IPs, oder gleich statische IPs vergeben und die Namen in der hosts auf allen Rechnern eintragen. Besser als einen nicht benötigten Dienst laufen zu lassen. Samba nur für die Namensauflösung zu "missbrauchen" ist etwas oversized. ;)

marama
30.09.06, 18:03
Also hier mal der Inhalt meiner /etc/hosts und /etc/resolv.conf. Oder muss ich die letzten 3 posts so verstehen, dass es nur per Notnagel script geht? Ich hatte ja vorher die Konfiguration mit statischen IPs vom Router und auf *JEDEM* Rechner eine ausgefüllte hosts Datei. Aber das ist so unhandlich zu pflegen... ein neuer Rechner, eine LAN-Festplatte und du musst jeden Rechner wieder anfassen...

/etc/hosts:


# special IPv6 addresses
::1 localhost ipv6-localhost ipv6-loopback

fe00::0 ipv6-localnet

ff00::0 ipv6-mcastprefix
ff02::1 ipv6-allnodes
ff02::2 ipv6-allrouters
ff02::3 ipv6-allhosts
127.0.0.1 localhost
127.0.0.2 Linux-2.WORKGROUP Linux-2
(habe inzwischen in meiner Fehlersuche die domain in "WORKGROUP" geändert)

und /etc/resolv.conf

#
search WORKGROUP
nameserver 192.168.2.1
(die ganzen kommentierten Zeilen mal weggelassen... domain marama inzwischen durch WORKGROUP ersetzt, gleicher Effekt

Vielen Dank für Euren Support!!!

Udo

bla!zilla
30.09.06, 18:40
Der Domainname "WORKGROUP" macht keinen Sinn, sofern deine Arbeitsgruppe "WORKGROUP" heißt. NetBIOS hat nichts mit hosts oder DNS zu tun. Das sind völlig verschiedene Dinge. Zudem macht deise Zeile

127.0.0.2 Linux-2.WORKGROUP Linux-2

keinen Sinn, da es sich dabei um ein Loopback Interface handelt (seihe 127.0.0.1).

Läuft Samba auf deinen Linux-Rechnern? Wenn ja, dann weißt du warum Windows sie per Ping ansprechen kann. NetBIOS ist das Zauberwort. Du hast kein Netzwerkproblem, deine gesamte Umgebung für die Namensauflösung ist nur unsauber und fehlerhaft. Also entweder zentralen DNS oder hosts pflegen. Zudem solltest du dich mit NetBIOS und DNS auseinandersetzen. Dann klappts sicherlich auch bald mit den Namen. ;)

marama
30.09.06, 18:58
ok, ich versuche mal zu verstehen:

Der Domainname "WORKGROUP" macht keinen Sinn, sofern deine Arbeitsgruppe "WORKGROUP" heißt. NetBIOS hat nichts mit hosts oder DNS zu tun. Das sind völlig verschiedene Dinge.
Hatte ich vermutet, danke. Solche Dinge wachsen per Fehlersuche in Dateien rein :-)


127.0.0.2 Linux-2.WORKGROUP Linux-2
WORKGROUP stammt von mir. Den Rest hat möglicherweise apache reingeschrieben. Wenns nicht stört lasse ich es einfach drin?


Läuft Samba auf deinen Linux-Rechnern?
Ja, dann holt sich der Windows Rechner die Info per Netbios?


Also entweder zentralen DNS oder hosts pflegen. Zudem solltest du dich mit NetBIOS und DNS auseinandersetzen. Dann klappts sicherlich auch bald mit den Namen.
Ich versuche nochmal zu verstehen:
1.)zentraler DNS heißt einen Rechner als DNS aufzusetzen und die LAN-internen Adressen damit zu vergeben. Bedeutet dass der DNS Rechner immer laufen muss :-(
2.)Hosts pflegen... Unhandlich weil ich eine faule Socke bin. Gleiche Info auf mehreren Rechner eintippen und pflegen :-(
3.)NetBIOS und DNS auseinandersetzen... Habe ich nicht komplett verstanden... Kannst Du mir einen näheren Hinweis geben?

Vielen Dank übrigens!!!

Udo

bla!zilla
30.09.06, 19:06
Der Eintrag "127.0.0.2" stammt nicht vom Apache. Auf jeden Fall sollte das korrigiert werden. Wenn Samba auf deinen Kisten läuft, holt sich Windows die Infos über NetBIOS - dafür ist die NetBIOS Name Resolution verantwortlich. Deine Linux Clients greifen aber auf hosts und DNS zurück. Wenn der DNS am Router nicht sauber ist (er trägt natürlich nur die Hosts ein, für die er auch DHCP Leases vergeben und hat und die ihren Namen zurückgeben), dann hast du solche Probleme. Hosts ist nicht unhandlich. Wieviele Rechner hast? Drei? Vier? Ich bitte dich - früher hat man das teilweise auf hunderten von Rechnern gemacht.

DHCP vergibt IPs, DNS ist für die Namensauflösung zuständig. Beides kann miteinander interagieren, also DHCP gibt vergebene IPs, samt Namen, an den DNS weiter und der trägt sie in die Zonen ein. Dafür muss der Rechner mit DHCP und DNS aber immer laufen. Natürlich können die Dienste auch auf unterschiedlichen Maschinen laufen, geht trotzdem. Schau dir mal folgende RFCs an:

DHCP (http://www.ietf.org/rfc/rfc2131.txt)
DNS (http://www.ietf.org/rfc/rfc1035.txt)
NetBIOS over TCP/IP (http://www.ietf.org/rfc/rfc1001.txt)

tschloss
01.10.06, 08:31
Ach, also ein ordentlicher DHCP/DNS-Server aktualisiert den DNS bei der Vergabe von Leases? D.h. eigentlich liegt das Problem darin, dass der Homeoffice Router nur zu doof ist (er kennt die Hostnamen, macht aber DNS-technisch nichts damit), sonst sollte das gehen?
Greetz
Thomas

bla!zilla
01.10.06, 10:41
Jap. Ein ordentliche DHCP sollte den DNS aktualisieren. Ist zwar nicht Aufgabe des DHCP, machen aber eigentlich alle DHCP Server. :)

stefan-tiger
01.10.06, 19:17
Jap. Ein ordentliche DHCP sollte den DNS aktualisieren. Ist zwar nicht Aufgabe des DHCP, machen aber eigentlich alle DHCP Server. :)

Aber welcher Harware Router der einen DHCP-Server hat macht das schon?

By the way: Wie soll man sonst auf einer LAN-Party oder anderen temporären Netzwerken ohne Router/DNS/DHCP/Wins... etc - Server die anderen Rechner komfortabel erkennen anzeigen und "browsen" können?

Achja, die ganze DNS Geschichte (ohne DHCP) erfordert "Arbeit", während die Windows (Samba) - Variante automatisch geht.

Wenn ich zwei Rechner hab will ich diese einfach über ihre Namen ansprechen können, ohne mich auf niedrigeren Softwareebenen darum kümmern zu müssen wie sich die Rechner über Namen finden, das soll automatisch passieren.
Das Script für nmblookup macht zusammen mit cron genau das.

Wenn es eine elegantere, oder Linux-mäßigere, Version gibt die das selbe leistet nur her damit.

Sollte LISA nicht genau das leisten? Es funktioniert jedenfalls bei mir nicht mit LISA. Im Konqueror (unter lan:/) werden zwar Windows-Namen angezeigt, aber wenn man draufklickt steht in der Adresszeile der Rechnername und die Verbindung klappt nicht weil dann "plötzlich" versucht wird den Windows-Namen als DNS-Namen zu verwenden.

bla!zilla
01.10.06, 19:31
Aber welcher Harware Router der einen DHCP-Server hat macht das schon?

Linksys Router und noch ein paar andere. Netgear und D-Link machen das AFAIK auch.



By the way: Wie soll man sonst auf einer LAN-Party oder anderen temporären Netzwerken ohne Router/DNS/DHCP/Wins... etc - Server die anderen Rechner komfortabel erkennen anzeigen und "browsen" können?


Die Aufgabe von DNS ist es nicht Rechner komfortabel erkennen und anzuzeigen.



Achja, die ganze DNS Geschichte (ohne DHCP) erfordert "Arbeit", während die Windows (Samba) - Variante automatisch geht.


Dafür weniger Fehleranfällig und sicherheitskritisch. Und auch ressourcenschonender.



Wenn ich zwei Rechner hab will ich diese einfach über ihre Namen ansprechen können, ohne mich auf niedrigeren Softwareebenen darum kümmern zu müssen wie sich die Rechner über Namen finden, das soll automatisch passieren.


Dann immst du die hosts.



Das Script für nmblookup macht zusammen mit cron genau das.

Wenn es eine elegantere, oder Linux-mäßigere, Version gibt die das selbe leistet nur her damit.

Sollte LISA nicht genau das leisten? Es funktioniert jedenfalls bei mir nicht mit LISA. Im Konqueror (unter lan:/) werden zwar Windows-Namen angezeigt, aber wenn man draufklickt steht in der Adresszeile der Rechnername und die Verbindung klappt nicht weil dann "plötzlich" versucht wird den Windows-Namen als DNS-Namen zu verwenden.

Mag ja sein das nmblookup das macht, aber es gibt nun mal Anwendungen udn Dienste die sich auf DNS und hosts stützten und NetBIOS _nicht_ nutzen. Du "missbrauchst" NetBIOS für etwas, für was es nicht gedacht ist. Auch wenn es funktioniert.

stefan-tiger
01.10.06, 20:27
...

Mag ja sein das nmblookup das macht, aber es gibt nun mal Anwendungen udn Dienste die sich auf DNS und hosts stützten und NetBIOS _nicht_ nutzen. Du "missbrauchst" NetBIOS für etwas, für was es nicht gedacht ist. Auch wenn es funktioniert.

Die hosts zu editieren macht auch Arbeit.

Natürlich sind Windows-Namen nicht das selbe wie Domainnamen, aber es geht hier ja um die Zuordnung von Namen zu IP, so daß man Namen statt IPs in Progammen verwenden kann.

Ob es nun DNS-Namen oder andere Namen sind ist dabei egal. Die darunterliegende Techniken und Mechanismen sollen ja gerade verborgen werden.
Wichtig ist nur, daß soviel wie möglich automatisch geschieht.

Wenn ein Prorgamm TCP/IP unterstützt, warum soll dann nicht, falls die Namensauflösung über hosts und DNS-Server fehlschlägt, zusätzlich versucht werden die IP-Adresse über NetBIOS zu bekommen?
In vielen Netzwerken ist das die einzige (und gangbarste) Möglichkeit.

bla!zilla
01.10.06, 21:01
Wenn ein Prorgamm TCP/IP unterstützt, warum soll dann nicht, falls die Namensauflösung über hosts und DNS-Server fehlschlägt, zusätzlich versucht werden die IP-Adresse über NetBIOS zu bekommen? In vielen Netzwerken ist das die einzige (und gangbarste) Möglichkeit.

Weil DNS bzw. die Hosts direkt mit TCP/IP in Verbindung stehen. NetBIOS ist nur ein Aufsatz auf TCP/IP. NetBIOS kann man auch über IPX/SPX fahren. Wenn eine Anwendung TCP/IP nutzt, dann löst sie namen über Hosts oder DNS auf, nicht über NetBIOS.

marama
02.10.06, 07:56
Danke...

... für die fundierten Antworten bla!zilla !!!

Ich hatte bis vor ein paar Tagen einen Netgear Router, der fixe IPs zu den MAC-Adressen verteilt hat. So habe ich DHCP genutzt und trotzdem die hosts auf jedem Rechner gepflegt. Ich dachte halt _ich_ wäre nur zu doof, DNS und DHCP (beim H/W-Router) komfortabel zu verheiraten.

Router ist gestorben, der neue Router (Siemens Gigaset) bietet die Möglichkeit von fixen IP-Adressen eben nicht. Also bin ich gestern eben 13(!, nicht drei/vier) Rechner durchgegangen und habe /etc/hosts bzw. c:/windows/system32/drivers/etc/hosts bearbeitet... Hoffentlich bleibt meine Infrastruktur eine zeitlang stabil :-(

Nochmals vielen Dank,

Udo

bla!zilla
02.10.06, 08:40
Bastel dir doch ein kleines Skript und leg es auf einen der Rechner (evtl. hast du ja einen Server der immer läuft). Pflege das File dort zentral und kopiere z.B. über ein Skript mittels scp die hosts auf die ganzen Rechner. Alternativ kannst du dieses zentrale Hosts-File über ein Skript bei jedem Start von dem Rechner holen (FTP, SMB/CIFS, scp in Verbindung mit Batch im Autostart, Init-Skript). So habe ich das schon vor Jahren in Novell / UNIX Netzen ohne zentralen DNS gemacht.

marama
02.10.06, 10:19
Hatte ich mir auch überlegt. Ich habe aber eigentlich nur einen PC, der zu 99% läuft... und das ist der VDR (video-recorder). Und ich möchte ungern alle anderen -produktiven- Rechner im System von einem gadget abhängen lassen :-). Egal: jetzt ist statisch konfiguriert, beim nächsten Zu-/Abgang im lokalen Netz ist eben wieder Handarbeit angesagt.

bla!zilla
02.10.06, 10:30
Ich habe auf meinem Router (Linksys WRT54GS) DD-WRT laufen und der dortige DHCP interagiert sehr gut mit dem DNS.

stefan-tiger
02.10.06, 15:48
Weil DNS bzw. die Hosts direkt mit TCP/IP in Verbindung stehen. NetBIOS ist nur ein Aufsatz auf TCP/IP. NetBIOS kann man auch über IPX/SPX fahren....

Für mich ist das Kein Grund weil es

- es keine Alternative gibt die direkt mit TCP/IP in Verbindung steht
- Windows auch so macht, und alle kommen klar damit
- dezentral und automatisch funktioniert

Natürlich verwenden TCP-/IP Programme die hosts, aber die Namen müssen dort erstmal rein. Ob ich die Namen händisch eintrag oder ein Script hab, daß dies für mich macht, kommt dann aus selbe raus.

Die DNS und hosts Variante ist eben histerisch gewachsen, und mag für zentral organisierte Netzwerke und sehr große Netzwerke super sein, aber fürs Jedermanns-Heimnetz find ich die NetBIOS-Variante besser.

fuffy
02.10.06, 17:06
Hi!


Die DNS und hosts Variante ist eben histerisch gewachsen, und mag für zentral organisierte Netzwerke und sehr große Netzwerke super sein, aber fürs Jedermanns-Heimnetz find ich die NetBIOS-Variante besser.
Fürs "Jedermann-Heimnetz" finde ich Zeroconf (http://de.wikipedia.org/wiki/Zeroconf) wesentlich angenehmer.

Gruß
fuffy

bla!zilla
03.10.06, 10:55
- Windows auch so macht, und alle kommen klar damit
- dezentral und automatisch funktioniert


Die beiden Dinge stimmen so nicht ganz. NetBIOS ist etwas was man nicht so gerne hat, oft wird bei Netzen ab einer bestimmten Clientanzahl NetBIOS over TCP/IP abgeschaltet. Oder es werden zentrale WINS Maschinen aufgestellt. Aber gut, da haben wir sicherlich unterschiedliche Ansichten, ich nutze selbt bei meinen zwei, drei Clients DNS und DHCP, weil es standardkonformer und sauberer ist.

sik
10.10.06, 09:26
Moin,

möchte mich hier der Diskussion anschließen.
Ich sitze mit meinem Suse 10.0 in einer Windowsdomäne, und versuche verzweifelt eine DNS-Auflösung von meinem Linux aus zu bekommen. Und es will nicht! :mad:

Ich habe hier einen echten DNS-Server, und auch einen echten DHCP-Server stehen. Die beiden reden auch fleißig miteinander. Nur mein Suse scheint dort nicht mitreden zu wollen. Die Windowsrechner hingegen zeigen sich sehr kommunikative. DNS funktioniert unter den Windowsrechnern einwandfrei. (Ich meine auch echtes DNS, Auflösung der Adresse nach hostname.domain.name --- nicht Hostdatei, und nicht Netbios und auch nicht per lokalen Cache auf den Windowsrechnern selber).

Dem DNS-Sever ist meine Linuxmaschine auch bekannt. In der entsprechenden Zone findet sich der korrekt Eintrag, und alle Windosen könne meine Adresse auch vernünftig auflösen. Nur umgekehrt bekomme ich keine Auflösung der Namen im Netzwerk, ausser der Eigenen.

Spannend hingegen ist die Tatsache das ich mit dem Befehl: host -l <domain.name>
Alle, wirklich alle Namen und Adressen dieses Netzwerkes angzeigt bekomme.

Und an dieser Stelle meine Frage: an euch. Warum kann host alle Adressen abfragegen, und ping nicht? Macht doch keinen Sinn. Die eine Anwendung findet den DNS-Server die andere nicht?

Hoffentlich habt Ihr eine Idee dazu!

Gruß sik