Jak komunikować się z urządzeniem, które ma przypisany adres IP „0.0.0.0”?


20

Mam urządzenie przemysłowe działające na dość podstawowym systemie operacyjnym o nazwie VxWorks . Zwykle komunikuję się z systemem w celu rozwiązywania problemów, ustawiając mój IP IPv4 na ten sam zakres co lokalny IP, a następnie uruchamiając oprogramowanie diagnostyczne.

Kilka tygodni temu odkryłem, że z jakiegoś dziwnego powodu ustawił się lokalny adres IP systemu 0.0.0.0. Teraz chcę przejść do diagnostyki, aby to zmienić, ale mój komputer nie zezwala na ustawienie adresu IP rozpoczynającego się za 0.

Czy istnieje jakiś inny sposób komunikacji z urządzeniem, które ma lokalny adres IP 0.0.0.0przy użyciu komputera z systemem Windows.

Nie ma możliwości zresetowania urządzenia do ustawień fabrycznych bez odesłania go do producenta.


14
Jak twierdzą inni, 0.0.0.0adres nie jest routowalny. Wiele programów łączy się, 0.0.0.0aby umożliwić oprogramowaniu powiązanie z dowolnym adresem IP przypisanym do interfejsu sieciowego. Ułatwia to, na przykład, ustawienie urządzenia w ustawieniu DHCP, a użytkownik po prostu łączy się, uzyskując adres IP urządzenia i to wszystko. Moje wielkie pytanie brzmi: dlaczego ustawiasz IPv4 swojego urządzenia na ten sam zakres, co lokalny IP, a następnie uruchamiasz oprogramowanie diagnostyczne? Nie ma sensu. Powinieneś po prostu uzyskać adres IP urządzenia i połączyć się z tym. To powiedziawszy, mam pomysł. Publikowanie odpowiedzi.
JakeGould,

VX Works może nie uruchamiać DHCP i dlatego może wymagać statycznego adresu IP, co musiałbyś zrobić wewnętrznie w VX Works. Oprócz tego wszelkie oprogramowanie lub interfejsy na twoim komputerze, które komunikują się z maszyną VX Works, musiałyby znać ten adres IP. Musisz sprawdzić, czy wszystkie maszyny, które muszą rozmawiać z komputerem VX Works, znają jego adres IP. Może to być automatyczne wypełnianie lub konieczne może być wprowadzenie go ręcznie. Adres all-0s działa jako brama domyślna, jednak jeśli twój komputer VX Works i twój host, z którym chce rozmawiać, mają wspólną bramę.
Shankensteinium

7
Jak udało Ci się ustalić, że urządzenie używa adresu IP 0.0.0.0? Czy korzystałeś z oprogramowania, które było w stanie komunikować się z urządzeniem przez sieć, czy też w urządzeniu jest podstawowy interfejs człowiek-maszyna (HMI), który wyświetla adres IP? Ponadto, aby usunąć oczywiste pytanie, czy próbowałeś je wyłączyć, a następnie włączyć ponownie, aby sprawdzić, czy odbiera rozsądny adres?
Sam Skuce

5
Dosłowne przypisanie samego adresu 0.0.0.0nie jest możliwe, jeśli ma stos IP zgodny ze standardami. Pozostawia to kilka opcji: 1. Pokazuje 0.0.0.0jako sposób zasygnalizowania, że ​​nie przypisał adresu IP. 2. Ma zepsuty stos IP, któremu jakoś udało się przypisać 0.0.0.0. Nie wiem wystarczająco dużo o VxWorks, aby powiedzieć, która z nich jest najbardziej prawdopodobna. Jeśli naprawdę ma przypisany adres, 0.0.0.0będziesz potrzebować zhakowanego stosu IP do komunikacji z nim. Ale to nie przyniesie wiele korzyści, jeśli w ogóle nie przypisano adresu.
kasperd

4
Jak ustaliłeś, że ma on adres IP 0.0.0.0? Jeśli jesteś w terminalu, możesz użyć tego do ustawienia adresu IP.
CramerTV

Odpowiedzi:


23

0.0.0.0nie jest prawidłowym adresem IP. RFC1700 (a) stwierdza, że 0.0.0.0/8( 0.anything.anything.anything) jest zarezerwowane tylko jako adres źródłowy.

Zwykle systemy i aplikacje łączą porty, 0.0.0.0co oznacza, że ​​port jest dostępny z dowolnego interfejsu.

Nie znam VxWrks, ale zakładam, że istnieje sposób na określenie lokalnego adresu IP w celu połączenia z innymi urządzeniami komputerowymi.

WindRiver posiada wiele podręczników dotyczących konfiguracji ustawień IP.


Jeśli 0.0.0.0jest ważny tylko jako źródło , to w jaki sposób porty są 0.0.0.0w ogóle dostępne? Jestem pewien, że brakuje mi jakiegoś detalu, ale to brzmi jak sprzeczność.
Captain Man,

20
@CaptainMan: Mylisz aspekt interfejsu API gniazd z aspektem protokołu IP . Wiązanie 0.0.0.0to rzecz na poziomie interfejsu API, aby akceptować pakiety / połączenia adresowane na dowolny lokalnie skonfigurowany adres. Nie obejmuje pakietów adresowanych do 0.0.0.0podróżowania w dowolnym miejscu na poziomie protokołu.
R ..

1
@CaptainMan: 0.0.0.0jest traktowany jako pusty ciąg. Jeśli skonfigurujesz serwer tak, aby akceptował połączenia, 0.0.0.0wówczas będzie akceptować połączenia z dowolnego adresu IP - to 0.0.0.0znaczy. Jeśli nie powiążesz się z 0.0.0.0tym, twój serwer zaakceptuje połączenia TYLKO z jednego adresu IP i odrzuci połączenia z innych komputerów w sieci. Pomyśl o wiązaniu innym niż 0.0.0.0 jako o rodzaju wbudowanej zapory ogniowej
Slebetman

13

Możesz oszukać komputer, aby pomyślał, że urządzenie ma prawdziwy adres IP. Ale potrzebujesz adresu fizycznego (znanego również jako adres MAC), z 6 polami dwucyfrowymi. Robisz to, dodając go do tabeli rozdzielczości arp. W Windows otwórz terminal cmd i użyj arp.

arp -s <IP address> <physical address>

Oczywiście potrzebujesz unikalnego adresu IP w swojej sieci. W przeciwnym razie stos przekieruje się gdzie indziej. Jeśli dojdziesz do tego punktu, powinieneś mieć dostęp do urządzenia. Infrastruktura sieci będzie kierować według adresu fizycznego.

W Linuksie jest prawie tak samo. Otwórz terminal, użyj arp.

To może nie działać !! Niektóre urządzenia odpowiadają tylko na własne adresy IP. Ale zgaduję, że to nie twoja sprawa.


1
Chcę wiedzieć, czy to działa. Zdecydowanie fajna sztuczka.
trognanders

@BaileyS oh, działa normalnie w normalnych okolicznościach. Po prostu wstawiasz ręczne nadpisywanie rozdzielczości adresu do automatycznej tabeli. Czy to pomoże op jest innym pytaniem
Gnudiff

2
Jeśli możesz teraz wysyłać rzeczy na ten adres, nie zawsze oznacza to, że możesz poprawnie obsłużyć RESPONSE, jeśli jest jeden ...
rackandboneman

1
Większość iptables znajduje się powyżej najniższego poziomu maszyny routingowej, więc może mieć ograniczony dostęp do tego rodzaju prac ...
rackandboneman

1
@BaileyS Tak jest i nie ma. Urządzenie ze zwykłym stosem IP nie powinno. Tabela tras zignoruje adresy pakietów na numery IP inne niż własne lub że nie wie, jak trasować. W tym przypadku OP pyta o małe urządzenie przemysłowe. Najprawdopodobniej nie ma zaimplementowanego stosu IP. Po prostu odpowiada na każdy pakiet, który do niego dotrze. Wiem to, ponieważ widziałem i korzystałem z wielu takich. Aby zaoszczędzić koszty, nie mają panelu ani interfejsu do konfiguracji. Wystarczy wysłać im pakiet z „sugerowanym” adresem IP pasującym do adresu MAC.
Gabe Mizuka

12

0.0.0.0Adres IP jest w porządku, ale myślę, że coś jeszcze się zmieniło w sieci, że urządzenie znajduje się na blokowanie ruchu zerowej konfiguracji sieciowych z oprogramowania diagnostycznego pozwala łatwo podłączyć do tego urządzenia.

Podobnie jak inni, w odpowiedzi podają, 0.0.0.0że adres IP nie nadaje się do routingu, który jest często używany przez oprogramowanie do wiązania dowolnego adresu IP na wszystkich interfejsach sieciowych urządzenia. Zasadniczo oznacza to:

„Hej, jestem oprogramowaniem i akceptuję każde połączenie z dowolnym przypisanym adresem IP na komputerze, na którym pracuję”.

Jeśli więc urządzenie korzysta z DHCP - w celu uzyskania własnego adresu IP dla podłączonych interfejsów - i otrzyma przypisany adres 1.2.3.4, możesz połączyć się z tym urządzeniem pod adresem 1.2.3.4. A jeśli zmiany tego adresu 5.6.7.8w urządzeniu z przyjemnością pozwolą ci się z nim połączyć 5.6.7.8.

0.0.0.0Wydaje się być coś odkrył, ale nie jest przyczyną problemu. Jestem raczej zdania, że ​​twój problem ujawnia się, gdy stwierdzasz:

„Zwykle komunikuję się z systemem w celu rozwiązywania problemów, ustawiając mój IP IPv4 na ten sam zakres co lokalny IP, a następnie uruchamiając oprogramowanie diagnostyczne.”

Po pierwsze, wydaje się to dziwne. Dlaczego musisz zmienić lokalny adres IP urządzenia, aby połączyć się z urządzeniem VxWorks? Czy nie powinieneś połączyć się bezpośrednio z adresem IP urządzenia?

Cóż, kiedy to stwierdzisz, myślę tylko o tym, że urządzenie - i oprogramowanie diagnostyczne - może działać przy użyciu jakiejś konfiguracji sieci zerowej konfiguracji . Oznacza to, że urządzenie nadaje w sieci, a oprogramowanie diagnostyczne zostało zaprojektowane w celu wyszukania tych transmisji urządzenia, aby pomóc mu połączyć się z urządzeniem bez znajomości dokładnego adresu IP.

Tego rodzaju „samokonfigurujące się” funkcje sieciowe o zerowej konfiguracji są wygodne, dopóki nie staną się problemem.

Po pierwsze sądzę, że możesz połączyć się bezpośrednio z urządzeniem, jeśli możesz ustalić, jaki adres IP mu przypisał. I jeszcze bardziej myślę, założę się, że powód, dla którego mogłeś się z nim połączyć w przeszłości - ale nie teraz - może mieć związek z jakąś zmianą sieci, która zablokowała porty, na których transmituje konfiguracja sieci zero konfiguracji . Jaki to może być port? Nie jestem pewien Ale jeśli ruch w konfiguracji zerowej nie jest kierowany przez sieć, dlatego nie można połączyć się z urządzeniem, a 0.0.0.0adres IP nie ma z tym nic wspólnego.


6

0.0.0.0to adres niemożliwy do przeszukania. Nie ma możliwości, aby do niego dotrzeć, ponieważ „tak naprawdę nie istnieje”, a właściwie „może istnieć w zbyt wielu miejscach”.

Może mieć nieco inne znaczenie w zależności od tego, czy jest to gospodarz, czy trasa.

Jako trasa, która nie ma zastosowania w tym przypadku, oznacza „domyślną trasę”, która bez dalszych instrukcji oznacza albo domyślną bramę, albo „dowolną z moich tras” lub podobną do 127.0.0.1

Jako gospodarz, a zwłaszcza w twoim przypadku, jest albo; jak wyjaśniono na Wikipedii :

Adres, który host twierdzi, że jest własny, jeśli jeszcze nie został mu przypisany adres. Na przykład podczas wysyłania początkowego pakietu DHCPDISCOVER podczas korzystania z DHCP.

Adres, który host przypisuje do siebie, gdy żądanie adresu przez DHCP zakończy się niepowodzeniem, pod warunkiem, że stos IP hosta to obsługuje.

Zakładając, że zwykle używa DHCP, należy wykonać kilka czynności zamiast pełnego resetu - „wyłącz i włącz ponownie” lub po prostu odłącz sieć, poczekaj minutę, podłącz ją ponownie. Może po prostu poprosić o nowy DHCP adres.

Oczywiście upewnij się, że rzeczywiście widzi swój serwer DHCP.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.