Wie kommuniziere ich mit einem Gerät, dem eine IP-Adresse „0.0.0.0“ zugewiesen wurde?

7636
Pablo Gonzalez

Ich habe ein Industrieausrüstungsteil, das auf einem ziemlich einfachen Betriebssystem namens VxWorks läuft . Normalerweise kommuniziere ich zu Problembehandlungszwecken mit dem System, indem ich meine IPv4-IP-Adresse auf denselben Bereich wie die lokale IP-Adresse stelle und dann Diagnosesoftware ausführte.

Vor ein paar Wochen habe ich festgestellt, dass sich aus irgendeinem Grund die lokale IP-Adresse des Systems auf eingestellt hat 0.0.0.0. Jetzt möchte ich in die Diagnose einsteigen, um sie zu ändern, aber mein PC lässt keine Einstellung einer IP-Adresse zu 0.

Gibt es eine andere Möglichkeit, mit einem Gerät zu kommunizieren, das über eine lokale IP- 0.0.0.0Adresse eines Windows-PCs verfügt?

Das Gerät kann nicht auf die Werkseinstellungen zurückgesetzt werden, ohne es an den Hersteller zurückzusenden.

20
Wie bei anderen ist "0.0.0.0" keine routbare Adresse. Viele Software-Produkte sind an "0.0.0.0" gebunden, damit diese Software an die IP-Adresse binden kann, die der Netzwerkschnittstelle zugewiesen ist. Dies macht es beispielsweise einfacher, das Gerät auf eine DHCP-Einstellung zu setzen, und Sie müssen nur eine Verbindung herstellen, indem Sie die IP-Adresse des Geräts abrufen. Meine große Frage an Sie ist, warum Sie die IPv4-IP-Adresse Ihres Computers auf denselben Bereich wie die lokale IP-Adresse einstellen, um dann Diagnosesoftware auszuführen. Macht keinen Sinn. Sie sollten nur die IP-Adresse des Geräts erhalten und sich damit verbinden. Das heißt, ich habe eine Idee. Antwort posten JakeGould vor 6 Jahren 14
VX Works führt möglicherweise kein DHCP aus und benötigt daher eine statische IP-Adresse, was Sie intern bei VX Works tun müssten. Darüber hinaus müssten Software oder Schnittstellen auf Ihrem PC, die mit diesem VX Works-Computer kommunizieren, diese IP-Adresse kennen. Sie müssen überprüfen, ob alle Computer, die mit Ihrem VX Works-Computer kommunizieren müssen, ihre IP-Adresse kennen. Möglicherweise wird es automatisch gefüllt oder Sie müssen es manuell eingeben. Die All-0-Adresse funktioniert jedoch als Standardgateway, wenn Ihr VX Works-Computer und Ihr Host, mit dem er kommunizieren möchte, beide das Gateway gemeinsam haben. Shankensteinium vor 6 Jahren 0
Wie konnten Sie feststellen, dass das Gerät eine IP-Adresse von 0.0.0.0 verwendet? Haben Sie eine Software verwendet, die mit dem Gerät über das Netzwerk kommunizieren konnte, oder befindet sich auf dem Gerät ein grundlegendes Human-Machine Interface (HMI), um die IP-Adresse anzuzeigen? Um die offensichtliche Frage aus dem Weg zu räumen, haben Sie versucht, die Funktion auszuschalten und dann wieder einzuschalten, um festzustellen, ob sie eine vernünftige Adresse aufnimmt? Sam Skuce vor 6 Jahren 7
Die Adresse "0.0.0.0" kann wörtlich zugewiesen werden, wenn sie einen standardkonformen IP-Stack hat. Es verbleiben einige Optionen: ** 1. ** Es zeigt "0.0.0.0" an, um zu signalisieren, dass keine IP-Adresse zugewiesen wurde. ** 2. ** Es hat einen defekten IP-Stack, der sich irgendwie "0.0.0.0" zuordnen konnte. Ich weiß nicht genug über VxWorks, um zu sagen, welche der beiden wahrscheinlich ist. Wenn der Adresse wirklich "0.0.0.0" zugewiesen wurde, benötigen Sie einen gehackten IP-Stack, um mit ihm zu kommunizieren. Das nützt aber nicht viel, wenn es überhaupt keine Adresse vergeben hat. kasperd vor 6 Jahren 5
Wie haben Sie festgestellt, dass es eine 0.0.0.0-IP-Adresse hat? Wenn Sie sich an einem Terminal befinden, können Sie die IP-Adresse einstellen. CramerTV vor 6 Jahren 4
Sie können versuchen, Ihre IP-Adresse auf "1.2.3.4 / 1" einzustellen. Damit befinden Sie sich im 0/1-Netzwerk. Aber a) niemand weiß, was das Gerät für die Subnetzmaske hält. b) Der Versuch, eine Verbindung zu "0.0.0.0" herzustellen, schlägt mit Sicherheit fehl. @CramerTV, woher wissen Sie, dass die IP 0.0.0.0 ist? Gibt es eine andere Schnittstelle, über die die IP eingestellt werden kann? Wäre es nicht einfach so, dass das Gerät DHCP verwendet, um seine Adresse zu erhalten, und der Prozess beim letzten Start fehlgeschlagen ist? Versuchen Sie entweder, eine DHCP-Lease-Verlängerung zu erzwingen, oder starten Sie das Gerät neu, wenn dies der Fall ist. jcaron vor 6 Jahren 0
@Shankensteinium Ich bin vor einigen Jahren dagegen gestoßen. Es könnte dann DHCP sein, aber die Installer trauten ihr oft nicht zu und hatten hartcodierte IP-Adressen (und die, mit denen ich mich beschäftigte, taten dies, ohne mit den Administratoren des Netzwerks zu sprechen). Chris H vor 6 Jahren 0
Möglicherweise ist der DHCP-Server in diesem Netzwerk ausgefallen. Stellen Sie sicher, dass der DHCP-Server tatsächlich funktioniert, indem Sie Ihren Laptop zu Testzwecken gegen dieses Ethernet-Kabel austauschen. Wenn Ihr Laptop über DHCP keine IP-Adresse erhält, kann dies auch der VxWorks-Computer nicht tun. rjt vor 6 Jahren 0

4 Antworten auf die Frage

23
Hogstrom

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, sodass 0.0.0.0der Port von jeder Schnittstelle aus erreichbar ist.

Ich bin nicht mit VxWrks vertraut, aber ich würde davon ausgehen, dass es eine Möglichkeit gibt, eine lokale IP-Adresse für die Verbindung mit anderen Computergeräten anzugeben.

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

Wenn `0.0.0.0` nur als * source * gültig ist, wie sind dann die Ports an` 0.0.0.0` gebunden? Ich bin sicher, mir fehlt ein Detail, aber das hört sich nach einem Widerspruch an. Captain Man vor 6 Jahren 0
@CaptainMan: Sie verwechseln einen Aspekt der * Sockets-API * mit einem Aspekt des * IP-Protokolls *. Das Binden von '0.0.0.0' ist eine Sache auf API-Ebene, um Pakete / Verbindungen anzunehmen, die an eine lokal konfigurierte Adresse gerichtet sind. Es handelt sich nicht um Pakete, die an "0.0.0.0" adressiert sind und auf der Protokollebene irgendwo hin reisen. R.. vor 6 Jahren 20
@CaptainMan: `0.0.0.0` wird als leere Zeichenfolge behandelt. Wenn Sie Ihren Server so einrichten, dass er Verbindungen von "0.0.0.0" akzeptiert, werden Verbindungen von ** einer beliebigen IP-Adresse ** akzeptiert. Dies bedeutet "0.0.0.0". Wenn Sie nicht an "0.0.0.0" binden, akzeptiert Ihr Server NUR Verbindungen von einer einzigen IP-Adresse und lehnt Verbindungen von anderen Computern im Netzwerk ab. Stellen Sie sich die Bindung, die nicht zu 0.0.0.0 gehört, als eine Art integrierte Firewall vor slebetman vor 6 Jahren 1
13
Gabe Mizuka

Sie können Ihren PC dazu bringen, dass das Gerät eine echte IP-Adresse hat. Sie benötigen jedoch die physische Adresse (auch als MAC-Adresse bezeichnet), das Ding mit 6 Feldern mit zwei Hexa-Ziffern. Sie tun dies, indem Sie es 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 woanders umgeleitet. Wenn Sie zu diesem Punkt gelangen, sollten Sie auf das Gerät zugreifen können. Die Netzwerkinfrastruktur wird gemäß der physischen Adresse geroutet.

In Linux ist es ziemlich dasselbe. Öffne ein Terminal, benutze arp.

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

Ich bin interessiert zu wissen, ob das funktioniert. Auf jeden Fall ein cooler Trick. trognanders vor 6 Jahren 1
@BaileyS oh, es funktioniert gut unter normalen Umständen. Sie fügen einfach eine manuelle Überschreibung für die Adressauflösung in eine automatische Tabelle ein. Ob es Op hilft, ist eine andere Frage Gnudiff vor 6 Jahren 0
Wenn Sie jetzt Sachen an diese Adresse SENDEN können, heißt das nicht immer, dass Sie die ANTWORT richtig behandeln können, wenn ... rackandboneman vor 6 Jahren 2
@rackandboneman Wie vielleicht würde der IP-Stack keine ungültige Quelladresse auf den zurückgeschickten Paketen akzeptieren ... Ich frage mich, ob etwas wie iptables-Neuschreibungsregeln helfen würde. trognanders vor 6 Jahren 0
Die meisten von iptables befinden sich über den Routing-Maschinen der untersten Ebene, haben also möglicherweise nur eingeschränkten Zugriff auf diese Art von Arbeiten ... rackandboneman vor 6 Jahren 1
@BaileyS Es tut und tut es nicht. Ein Gerät mit einem normalen IP-Stack sollte dies nicht tun. Die Routentabelle ignoriert Paketadressen an andere IP-Nummern als ihre oder deren Routing nicht. In diesem Fall fragt das OP nach einem kleinen Industriegerät. Höchstwahrscheinlich ist kein IP-Stack implementiert. Es beantwortet einfach jedes Paket, das es erreicht. Ich weiß es, weil ich so viele gesehen und benutzt habe. Um Kosten zu sparen, verfügen sie nicht über ein Panel oder eine Schnittstelle für die Konfiguration. Es reicht aus, ihnen ein Paket mit einer "vorgeschlagenen" IP-Adresse zu senden, die der MAC-Adresse entspricht. Gabe Mizuka vor 6 Jahren 1
12
JakeGould

Die 0.0.0.0IP-Adresse ist in Ordnung, aber ich würde vermuten, dass sich im Netzwerk, in dem sich das Gerät befindet, etwas anderes geändert hat, um den Netzwerkverkehr ohne Konfiguration zu blockieren, sodass Ihre Diagnosesoftware problemlos eine Verbindung zu diesem Gerät herstellen kann.

In anderen Fällen 0.0.0.0ist der Status eine nicht routbare IP-Adresse, die häufig von Software verwendet wird, um eine IP-Adresse an alle Netzwerkschnittstellen eines Geräts zu binden. Dies bedeutet im Wesentlichen:

"Hey, ich bin eine Software und akzeptiere jegliche Verbindung zu einer zugewiesenen IP-Adresse auf dem Computer, auf dem ich laufe."

Wenn das Gerät also DHCP verwendet, um seine eigene IP-Adresse für die angeschlossenen 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 ändert, 5.6.7.8können Sie sich glücklich mit dem Gerät verbinden 5.6.7.8.

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

"Normalerweise kommuniziere ich zu Problembehandlungszwecken mit dem System, indem ich meine IPv4-IP auf denselben Bereich wie die lokale IP-Adresse stelle und dann Diagnosesoftware ausführte."

Zunächst scheint das merkwürdig. 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?

Wenn Sie dies sagen, kann ich mir nur vorstellen, dass das Gerät - und die Diagnosesoftware - mit einer Art Netzwerkkonfiguration ohne Konfiguration arbeiten . Das heißt, das Gerät sendet im Netzwerk, und die Diagnosesoftware ist dafür ausgelegt, diese Geräteübertragungen aufzuspüren, um die Verbindung mit dem Gerät zu erleichtern, ohne die genaue IP-Adresse zu kennen.

Diese Art von „selbstkonfigurierendem“ Null-Konfigurations-Netzwerkzeug ist praktisch, bis es zu Kopfschmerzen wird.

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 man noch mehr darüber nachdenkt, wette ich, dass der Grund, warum Sie in der Vergangenheit eine Verbindung herstellen konnten - aber nicht jetzt - möglicherweise mit einer Netzwerkänderung zu tun hat, durch die die Ports blockiert wurden, auf denen das Zero-Configuration-Netzwerk- Setup des Geräts sendet. Welcher Port kann das sein? Unsicher. Wenn der Datenverkehr ohne Konfiguration jedoch nicht über das Netzwerk geleitet wird, können Sie aus diesem Grund keine Verbindung zum Gerät herstellen, und die 0.0.0.0IP-Adresse hat nichts damit zu tun.

6
Tetsujin

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

Es kann etwas 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 sie "Standardroute", was ohne weitere Anweisungen entweder das Standardgateway oder "eine meiner Routen" oder ähnliches bedeutet 127.0.0.1

Als Gastgeber ist dies in Ihrem Fall am wichtigsten: wie auf Wikipedia erklärt :

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

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

Angenommen, es verwendet normalerweise DHCP, ein paar Dinge, die Sie ausprobieren sollten, anstatt einen vollständigen Reset durchzuführen - "ausschalten und wieder einschalten" oder einfach den Netzstecker ziehen, eine Minute warten, es wieder anschließen. Es könnte nur nach einem neuen DHCP gefragt werden Adresse.

Vergewissern Sie sich natürlich auch, dass der DHCP-Server tatsächlich angezeigt wird.