Wie kommuniziere ich mit einem Gerät, dem die IP-Adresse "0.0.0.0" zugewiesen wurde?

20

Ich habe ein Stück Industrieausrüstung, die auf einem ziemlich einfachen Betriebssystem namens VxWorks läuft . Normalerweise kommuniziere ich zur Fehlerbehebung mit dem System, indem ich meine IPv4-IP auf den gleichen Bereich wie die lokale IP einstelle und dann Diagnosesoftware ausführe.

Vor ein paar Wochen habe ich festgestellt, dass sich die lokale IP-Adresse des Systems aus irgendeinem Grund selbst auf eingestellt hat 0.0.0.0. Jetzt möchte ich mich mit der Diagnose befassen, um sie zu ändern, aber mein PC lässt das Festlegen einer IP ab nicht zu 0.

Gibt es eine andere Möglichkeit, mit einem Gerät mit einer lokalen IP-Adresse 0.0.0.0über einen Windows-PC zu kommunizieren ?

Es ist nicht möglich, das Gerät auf die werkseitigen Standardeinstellungen zurückzusetzen, ohne es an den Hersteller zurückzusenden.

Pablo Gonzalez
quelle
14
Wie andere Staaten 0.0.0.0ist keine routingfähige Adresse. Viele Softwareteile binden an 0.0.0.0, damit diese Software an die IP-Adresse gebunden werden kann, die der Netzwerkschnittstelle zugewiesen ist. Dies macht es beispielsweise einfacher, das Gerät in eine DHCP-Einstellung zu versetzen, und Sie stellen lediglich eine Verbindung her, indem Sie die IP-Adresse des Geräts abrufen. Meine große Frage an Sie ist, warum Sie die IPv4-IP Ihres Computers auf den gleichen Bereich wie die lokale IP einstellen, um dann Diagnosesoftware auszuführen. Macht keinen Sinn. Sie sollten nur die IP-Adresse des Geräts abrufen und eine Verbindung dazu herstellen. Das heißt, ich habe eine Idee. Eine Antwort schreiben.
JakeGould
VX Works führt möglicherweise kein DHCP aus und benötigt daher möglicherweise eine statische IP-Adresse, was Sie intern in VX Works tun müssten. Darüber hinaus muss jede Software oder Schnittstelle auf Ihrem PC, die mit diesem VX Works-Computer kommuniziert, diese IP-Adresse kennen. Sie müssen sicherstellen, dass alle Computer, die mit Ihrem VX Works-Computer kommunizieren müssen, dessen IP-Adresse kennen. Möglicherweise wird es automatisch ausgefüllt, oder Sie müssen es manuell eingeben. Die Adresse all-0s fungiert als Standardgateway. Wenn Ihr VX Works-Computer und Ihr Host jedoch mit beiden kommunizieren möchten, haben sie dieses Gateway gemeinsam.
Shankensteinium
7
Wie konnten Sie feststellen, dass das Gerät eine IP-Adresse von 0.0.0.0 verwendet? Haben Sie eine Software verwendet, die über das Netzwerk mit dem Gerät kommunizieren konnte, oder verfügt das Gerät über eine grundlegende Mensch-Maschine-Schnittstelle (HMI), um die IP-Adresse anzuzeigen? Um die offensichtliche Frage aus dem Weg zu räumen, haben Sie versucht, sie aus- und wieder einzuschalten, um festzustellen, ob sie eine vernünftige Adresse enthält?
Sam Skuce
5
Es 0.0.0.0ist nicht möglich , sich selbst eine Adresse zuzuweisen, wenn es einen standardkonformen IP-Stack gibt. Hierfür stehen einige Optionen zur Verfügung: 1. Zeigt 0.0.0.0an, dass die Zuweisung einer IP-Adresse fehlgeschlagen ist. 2. Es hat einen kaputten IP-Stack, der sich irgendwie selbst zugewiesen hat 0.0.0.0. Ich weiß nicht genug über VxWorks, um zu sagen, welcher der beiden am wahrscheinlichsten ist. Wenn die Adresse wirklich zugewiesen wurde 0.0.0.0, benötigen Sie einen gehackten IP-Stack, um mit ihm zu kommunizieren. Aber das hilft nicht viel, wenn es überhaupt keine Adresse hat.
Kasperd
4
Wie haben Sie festgestellt, dass die IP-Adresse 0.0.0.0 lautet? Wenn Sie sich an einem Terminal befinden, können Sie damit die IP einstellen.
CramerTV

Antworten:

23

0.0.0.0ist keine gültige IP-Adresse. RFC1700 (a) gibt an, dass 0.0.0.0/8( 0.anything.anything.anything) nur als Quelladresse reserviert ist.

Normalerweise sehen Sie, dass Systeme und Anwendungen Ports binden, 0.0.0.0was bedeutet, dass der Port von jeder Schnittstelle aus zugänglich ist.

Ich kenne VxWrks nicht, gehe aber davon aus, dass es eine Möglichkeit gibt, eine lokale IP-Adresse für die Verbindung mit anderen Computergeräten anzugeben.

WindRiver bietet eine Vielzahl von Handbüchern zur Konfiguration des IP-Setups.

Hogstrom
quelle
Wenn 0.0.0.0nur als Quelle gültig ist , wie sind die Ports dann überhaupt 0.0.0.0zugänglich? Ich bin mir sicher, dass mir ein Detail fehlt, aber das klingt nach einem Widerspruch.
Captain Man
20
@CaptainMan: Sie verwechseln einen Aspekt der Sockets-API mit einem Aspekt des IP-Protokolls . Das Binden 0.0.0.0ist eine API-Ebene, um Pakete / Verbindungen zu akzeptieren, die an eine lokal konfigurierte Adresse adressiert sind. Es handelt sich nicht um Pakete, die an eine 0.0.0.0beliebige Stelle auf Protokollebene gesendet werden.
R ..
1
@CaptainMan: 0.0.0.0wird als leere Zeichenfolge behandelt. Wenn Sie Ihren Server so einrichten, dass Verbindungen von 0.0.0.0diesem Server akzeptiert werden, akzeptiert er Verbindungen von jeder IP-Adresse - das 0.0.0.0bedeutet. Wenn Sie keine Bindung herstellen, 0.0.0.0akzeptiert Ihr Server NUR Verbindungen von einer einzelnen IP-Adresse und lehnt Verbindungen von anderen Computern im Netzwerk ab. Stellen Sie sich eine Bindung ohne 0.0.0.0 als eine Art integrierte Firewall vor
slebetman
13

Sie können Ihren PC täuschen, dass das Gerät eine echte IP-Adresse hat. Sie benötigen aber die physikalische Adresse (auch als MAC-Adresse bekannt), das Ding mit 6 zweistelligen Feldern. Sie tun dies, indem Sie es zu Ihrer Arp-Auflösungstabelle hinzufügen. Öffnen Sie unter Windows ein Cmd-Terminal und verwenden Sie arp.

arp -s <IP address> <physical address>

Natürlich benötigen Sie eine eindeutige IP-Adresse in Ihrem Netzwerk. Andernfalls wird der Stapel an eine andere Stelle umgeleitet. Wenn Sie an diesem Punkt angelangt sind, sollten Sie auf das Gerät zugreifen können. Die Netzwerkinfrastruktur wird gemäß der physischen Adresse weitergeleitet.

Unter Linux ist das so ziemlich das Gleiche. Öffne ein Terminal, benutze arp.

Es kann nicht funktionieren !! Einige Geräte antworten nur auf ihre eigene IP. Aber ich schätze, es ist nicht dein Fall.

Gabe Mizuka
quelle
1
Ich bin interessiert zu wissen, ob das funktioniert. Auf jeden Fall ein cooler Trick.
Trognanders
@ BaileyS oh es funktioniert alles in Ordnung unter normalen Umständen. Sie fügen einfach eine manuelle Überschreibung für die Adressauflösung in eine automatische Tabelle ein. Ob es op helfen wird, ist eine andere Frage
Gnudiff
2
Wenn Sie jetzt etwas an diese Adresse senden können, heißt das nicht immer, dass Sie die ANTWORT korrekt behandeln können, wenn es eine gibt ...
rackandboneman
1
Die meisten iptables befinden sich über der Routing-Maschine der untersten Ebene, daher haben Sie möglicherweise nur eingeschränkten Zugriff auf diese Art von Arbeiten ...
rackandboneman
1
@ BaileyS Es funktioniert und es funktioniert nicht. Ein Gerät mit einem normalen IP-Stack sollte dies nicht tun. Die Routing-Tabelle ignoriert Paketadressen an andere als ihre eigenen IP-Nummern oder weiß nicht, wie sie weitergeleitet werden soll. In diesem Fall fragt das OP nach einem kleinen Industriegerät. Höchstwahrscheinlich ist kein IP-Stack implementiert. Es beantwortet nur jedes Paket, das es erreicht. Ich weiß es, weil ich so viele gesehen und benutzt habe. Um Kosten zu sparen, haben sie kein Panel oder keine Schnittstelle für die Konfiguration. Es reicht aus, ihnen ein Paket mit einer "vorgeschlagenen" IP-Adresse zu senden, die mit der MAC-Adresse übereinstimmt.
Gabe Mizuka
12

Die 0.0.0.0IP-Adresse ist in Ordnung, aber ich würde vermuten, dass sich auf dem Netzwerk, in dem sich das Gerät befindet, etwas anderes geändert hat, um zu verhindern, dass sich Ihre Diagnosesoftware problemlos mit diesem Gerät verbindet.

Wie bei anderen ist der Status in ihrer Antwort 0.0.0.0eine nicht routbare IP-Adresse, die häufig von Software verwendet wird, um eine IP-Adresse an allen Netzwerkschnittstellen eines Geräts zu binden. Dies bedeutet im Wesentlichen:

"Hey, ich bin eine Software und akzeptiere jede Verbindung zu einer zugewiesenen IP-Adresse auf dem Computer, auf dem ich ausgeführt werde."

Wenn das Gerät DHCP verwendet, um seine eigene IP-Adresse für die verbundenen Schnittstellen zu erhalten, und eine zugewiesene Adresse von erhält 1.2.3.4, können Sie eine Verbindung zu diesem Gerät unter herstellen 1.2.3.4. Und wenn sich diese Adresse auf 5.6.7.8dem Gerät ändert, können Sie problemlos eine Verbindung herstellen 5.6.7.8.

Das 0.0.0.0scheint etwas zu sein, was Sie entdeckt haben, ist aber nicht die Ursache des Problems. Ich bin eher der Meinung, dass das Problem, das Sie haben, aufgedeckt wird, wenn Sie Folgendes angeben:

„Normalerweise kommuniziere ich zur Fehlerbehebung mit dem System, indem ich meine IPv4-IP auf den gleichen Bereich wie die lokale IP einstelle und dann Diagnosesoftware ausführe.“

Erstens scheint das seltsam. Warum müssen Sie die lokale IP-Adresse Ihres Computers ändern, um eine Verbindung zum VxWorks-Gerät herzustellen? Sollten Sie sich nicht direkt mit der IP-Adresse des Geräts verbinden?

Nun, wenn Sie dies angeben, kann ich mir nur vorstellen, dass das Gerät - und die Diagnosesoftware - möglicherweise mit einer Art Netzwerkkonfiguration ohne Konfiguration arbeiten . Dies bedeutet, dass das Gerät im Netzwerk sendet und die Diagnosesoftware diese Geräte-Broadcasts sucht, um die Verbindung zum Gerät zu erleichtern, ohne die genaue IP-Adresse zu kennen.

Diese Art von „selbstkonfigurierendem“ Netzwerkmaterial ohne Konfiguration ist praktisch, bis es Kopfschmerzen bereitet.

Meine erste Vermutung ist, dass Sie sich direkt mit dem Gerät verbinden können, wenn Sie feststellen können, welche IP-Adresse ihm zugewiesen wurde. Und wenn Sie noch mehr darüber nachdenken, ich wette, dass der Grund, warum Sie in der Vergangenheit - aber nicht jetzt - eine Verbindung herstellen konnten, möglicherweise mit einer Netzwerkänderung zu tun hat, die die Ports blockiert hat, an denen das konfigurationsfreie Netzwerk- Setup des Geräts sendet. Welcher Hafen kann das sein? Unsicher. Wenn jedoch kein konfigurationsfreier Datenverkehr über das Netzwerk geleitet wird, können Sie keine Verbindung zum Gerät herstellen, und die 0.0.0.0IP-Adresse hat nichts damit zu tun.

JakeGould
quelle
6

0.0.0.0ist eine nicht routbare Adresse. Es gibt keine Möglichkeit, dorthin zu gelangen, weil "es nicht wirklich existiert" oder "es kann an zu vielen Orten existieren".

Es kann leicht unterschiedliche Bedeutungen haben, je nachdem, ob es sich um einen Host oder eine Route handelt.

Als Route, die in diesem Fall nicht anwendbar ist, bedeutet es "Standardroute", die ohne weitere Anweisung entweder das Standardgateway oder "eine meiner Routen" oder ähnliches bedeutet 127.0.0.1

Als Gastgeber ist es dann vor allem in Ihrem Fall entweder; wie auf Wikipedia erklärt :

Die Adresse, die ein Host für sich beansprucht, wenn ihm noch keine Adresse zugewiesen wurde. Zum Beispiel beim Senden des ersten DHCPDISCOVER-Pakets bei Verwendung von DHCP.

Die Adresse, die sich ein Host selbst zuweist, wenn die Adressanforderung über DHCP fehlgeschlagen ist, sofern der IP-Stack des Hosts dies unterstützt.

Angenommen, es wird normalerweise DHCP verwendet. Statt eines vollständigen Zurücksetzens sollten einige Dinge versucht werden: "Schalten Sie es aus und wieder ein" oder trennen Sie einfach das Netzwerk, warten Sie eine Minute und schließen Sie es wieder an. Möglicherweise wird nur nach einem neuen DHCP gefragt Adresse.

Stellen Sie außerdem sicher, dass der DHCP-Server tatsächlich angezeigt wird.

Tetsujin
quelle