¿Cómo comunicarse con un dispositivo que tiene una dirección IP asignada "0.0.0.0"?

20

Tengo un equipo industrial que se ejecuta en un sistema operativo bastante básico llamado VxWorks . Por lo general, me comunico con el sistema para solucionar problemas al configurar mi IPvv4 en el mismo rango que la IP local y luego ejecutar el software de diagnóstico.

Hace unas semanas descubrí que, por alguna extraña razón, la dirección IP local del sistema se estableció 0.0.0.0. Ahora quiero entrar en diagnósticos para cambiarlo, pero mi PC no permitirá configurar una IP desde el principio 0.

¿Hay alguna otra forma de comunicarse con un dispositivo que tenga una IP local para 0.0.0.0usar una PC con Windows?

No hay forma de restablecer el dispositivo a la configuración predeterminada de fábrica sin enviarlo de vuelta al fabricante.

Pablo Gonzalez
fuente
14
Como otros dicen, 0.0.0.0no es una dirección enrutable. Muchas partes de software se unen para 0.0.0.0permitir que ese software se una a cualquier dirección IP asignada a la interfaz de red. Esto hace que sea más fácil, por ejemplo, colocar el dispositivo en una configuración DHCP y que solo se conecte obteniendo la dirección IP del dispositivo y eso es todo. Mi gran pregunta es por qué está configurando la IP IPv4 de su máquina en el mismo rango que la IP local para luego ejecutar el software de diagnóstico. No tiene sentido. Simplemente debe obtener la dirección IP del dispositivo y conectarse a eso. Dicho eso, tengo una idea. Publicando una respuesta.
JakeGould
Es posible que VX Works no ejecute DHCP y, por lo tanto, necesite una dirección IP estática, algo que tendría que hacer internamente en VX Works. Además de eso, cualquier software o interfaz en su PC que hable con esa máquina VX Works tendría que conocer esa dirección IP. Debería verificar que todas las máquinas que necesitan hablar con su máquina VX Works conozcan su dirección IP. Es posible que se complete automáticamente o que deba ingresarlo manualmente. La dirección all-0s funciona como una puerta de enlace predeterminada, sin embargo, si su máquina VX Works y su host con el que quiere hablar tienen ambas, esa puerta de enlace en común.
Shankensteinium
77
¿Cómo pudo determinar que el dispositivo está utilizando una dirección IP de 0.0.0.0? ¿Utilizó un software que se pudo comunicar con el dispositivo a través de la red, o hay una Interfaz hombre-máquina (HMI) básica en el dispositivo para mostrarle la dirección IP? Además, para eliminar la pregunta obvia, ¿ha intentado apagarla y volver a encenderla para ver si toma una dirección sensata?
Sam Skuce
55
La asignación literal de la dirección 0.0.0.0no es posible si tiene una pila de IP compatible con los estándares. Esto deja un par de opciones: 1. Se muestra 0.0.0.0como una forma de indicar que no se pudo asignar una dirección IP. 2. Tiene una pila de IP rota que de alguna manera logró asignarse 0.0.0.0. No sé lo suficiente sobre VxWorks para decir cuál de los dos es más probable. Si realmente tiene una dirección asignada 0.0.0.0, necesitaría una pila IP pirateada para comunicarse con ella. Pero eso no servirá de mucho si no ha asignado una dirección en absoluto.
kasperd
44
¿Cómo determinó que tiene una dirección IP 0.0.0.0? Si está en una terminal, puede usar eso para configurar la IP.
CramerTV

Respuestas:

23

0.0.0.0No es una dirección IP válida. RFC1700 (a) establece que 0.0.0.0/8( 0.anything.anything.anything) está reservado solo como una dirección de origen.

Normalmente verá sistemas y aplicaciones que unen puertos, lo 0.0.0.0que significa que se puede acceder al puerto desde cualquier interfaz.

No estoy familiarizado con VxWrks, pero supongo que hay una manera de especificar una IP local para interactuar con otros dispositivos informáticos.

WindRiver tiene una variedad de manuales sobre cómo configurar la configuración de IP.

Hogstrom
fuente
Si 0.0.0.0solo es válido como fuente , ¿cómo se puede 0.0.0.0acceder a los puertos ? Estoy seguro de que me falta un detalle, pero esto suena como una contradicción.
Capitán Man
20
@CaptainMan: Estás confundiendo un aspecto de la API de sockets con un aspecto del protocolo IP . El enlace 0.0.0.0es una cosa de nivel API para aceptar paquetes / conexiones dirigidas a cualquier dirección configurada localmente. No implica paquetes dirigidos a 0.0.0.0viajar a cualquier lugar en el nivel de protocolo.
R ..
1
@CaptainMan: 0.0.0.0se trata como una cadena vacía. Si configura su servidor para aceptar conexiones desde 0.0.0.0entonces, aceptará conexiones desde cualquier dirección IP , eso es lo que 0.0.0.0significa. Si no se vincula 0.0.0.0, su servidor SOLO aceptará conexiones de una sola dirección IP y rechazará las conexiones de cualquier otra máquina en la red. Piense en el enlace no 0.0.0.0 como una especie de firewall
incorporado
13

Puede engañar a su PC para que piense que el dispositivo tiene una dirección IP real. Pero necesita la dirección física (también conocida como la dirección MAC), la cosa con 6 campos de dos dígitos hexadecimales. Lo haces agregándolo a tu tabla de resolución de arp. En Windows, abra un terminal cmd y use arp.

arp -s <IP address> <physical address>

Por supuesto, necesita una dirección IP única y en su red. De lo contrario, la pila se redirigirá en otro lugar. Si llega a este punto, debería poder acceder al dispositivo. La infraestructura de red se enrutará de acuerdo con la dirección física.

En Linux es más o menos lo mismo. Abra una terminal, use arp.

¡Puede que no funcione! Algunos dispositivos responden solo a su propia IP. Pero supongo que no es tu caso.

Gabe Mizuka
fuente
1
Estoy interesado en saber si esto funciona. Definitivamente un truco genial.
trognanders
@BaileyS oh, funciona bien en circunstancias normales. Simplemente inserte una anulación manual para la resolución de direcciones en una tabla automática. Si ayudará a la
operación
2
Si ahora pueden enviar cosas a esta dirección, que no siempre significa que usted puede manejar correctamente la respuesta si hay uno ...
rackandboneman
1
La mayoría de iptables está por encima de la maquinaria de enrutamiento de nivel más bajo, por lo que podría tener acceso limitado a ese tipo de trabajos ...
rackandboneman
1
@BaileyS Lo hace y no lo hace. Un dispositivo con una pila IP normal no debería. La tabla de rutas va a ignorar las direcciones de los paquetes a números IP que no sean los suyos o que no sepa cómo enrutar. En este caso, el OP pregunta por un pequeño dispositivo industrial. Lo más probable es que no tenga una pila IP implementada. Simplemente responde a cualquier paquete que lo alcance. Lo sé porque he visto y usado muchos así. Para ahorrar costos, no tienen un panel o interfaz para la configuración. Enviarles un paquete con una IP "sugerida" que coincida con la dirección MAC es suficiente.
Gabe Mizuka
12

La 0.0.0.0dirección IP está bien, pero supongo que algo más ha cambiado en la red en la que se encuentra el dispositivo para bloquear el tráfico de red de configuración cero y permitir que su software de diagnóstico se conecte fácilmente a ese dispositivo.

Como otros, el estado en su respuesta 0.0.0.0es una dirección IP no enrutable que a menudo es utilizada por el software para enlazar cualquier dirección IP en todas las interfaces de red en un dispositivo. Esto básicamente significa:

"Hola, soy un software y aceptaré cualquier conexión realizada a cualquier dirección IP asignada en la máquina en la que estoy corriendo".

Entonces, si el dispositivo usa DHCP, para obtener su propia dirección IP para sus interfaces conectadas, y obtiene una dirección asignada, 1.2.3.4entonces puede conectarse a ese dispositivo en 1.2.3.4. Y si esa dirección cambia al 5.6.7.8dispositivo, felizmente le permitirá conectarse a través de 5.6.7.8.

La 0.0.0.0Parece que hay algo que has descubierto, pero no es la causa del problema. Más bien, soy mi opinión, el problema que tienes se revela cuando declaras:

"Por lo general, me comunico con el sistema para solucionar problemas al configurar mi IPvv4 en el mismo rango que la IP local y luego ejecutar el software de diagnóstico".

Primero, eso parece extraño. ¿Por qué necesitaría cambiar la dirección IP local de su máquina para conectarse al dispositivo VxWorks? ¿No debería simplemente conectarse directamente a la dirección IP del dispositivo?

Bueno, cuando dices esto, todo lo que puedo pensar es que el dispositivo, y el software de diagnóstico, podrían funcionar utilizando algún tipo de configuración de red de configuración cero . Es decir, el dispositivo transmite en la red y el software de diagnóstico está diseñado para buscar estas transmisiones del dispositivo para ayudarlo a conectarse al dispositivo sin conocer la dirección IP exacta.

Este tipo de material de red de configuración cero "autoconfigurable" es conveniente hasta que se convierte en un dolor de cabeza.

Mi primera suposición es que puede conectarse al dispositivo directamente si puede determinar qué dirección IP le ha asignado. Y pensando aún más, apuesto a que la razón por la que podría conectarse en el pasado, pero no ahora, podría tener que ver con algún cambio de red que haya bloqueado los puertos en los que se está transmitiendo la configuración de red de configuración cero del dispositivo . ¿Qué puerto puede ser? Inseguro. Pero si el tráfico de configuración cero no se enruta a través de la red, entonces es por eso que no puede conectarse al dispositivo y la 0.0.0.0dirección IP no tiene nada que ver con eso.

JakeGould
fuente
6

0.0.0.0es una dirección no enrutable. No hay forma de que pueda dirigirse a él porque "realmente no existe", o en realidad, "puede existir en demasiados lugares".

Puede tener significados ligeramente diferentes dependiendo de si es un host o una ruta.

Como ruta, que no es aplicable en este caso, significa "ruta predeterminada" que sin más instrucciones significa la puerta de enlace predeterminada, o "cualquiera de mis rutas", o similar a 127.0.0.1

Como anfitrión, lo más notable en su caso, lo es; como se explica en Wikipedia :

La dirección que un host reclama como propia cuando aún no se le ha asignado una dirección. Como cuando se envía el paquete DHCPDISCOVER inicial cuando se usa DHCP.

La dirección que un host se asigna a sí mismo cuando la solicitud de dirección a través de DHCP ha fallado, siempre que la pila IP del host lo admita.

Suponiendo que usualmente usa DHCP, hay un par de cosas para probar, en lugar de un reinicio completo: "apáguelo y vuelva a encenderlo" o simplemente desconecte la red, espere un minuto y vuelva a enchufarlo. Es posible que solo solicite un nuevo DHCP habla a.

Además, por supuesto, asegúrese de que realmente pueda ver su servidor DHCP.

Tetsujin
fuente