Entiendo que 127.0.0.1 apunta localhost
, y también 0.0.0.0 (corrígeme si me equivoco). Entonces, ¿cuál es la diferencia entre 127.0.0.1 y 0.0.0.0?
2130706433
.
Entiendo que 127.0.0.1 apunta localhost
, y también 0.0.0.0 (corrígeme si me equivoco). Entonces, ¿cuál es la diferencia entre 127.0.0.1 y 0.0.0.0?
2130706433
.
Respuestas:
127.0.0.1
es la dirección de bucle invertido (también conocido como localhost).
0.0.0.0
es una metadirección no enrutable utilizada para designar un objetivo no válido, desconocido o no aplicable (un marcador de posición de dirección no particular).
En el contexto de una entrada de ruta, generalmente significa la ruta predeterminada.
En el contexto de los servidores, 0.0.0.0 significa "todas las direcciones IPv4 en la máquina local". Si un host tiene dos direcciones IP, 192.168.1.1 y 10.1.2.1, y un servidor que se ejecuta en el host escucha en 0.0.0.0, será accesible a ambas IP.
127.0.0.1 es la dirección de protocolo de Internet de bucle invertido (IP) también conocida como "localhost". La dirección se utiliza para establecer una conexión IP a la misma máquina o computadora que utiliza el usuario final.
La misma convención se define para las computadoras que admiten el direccionamiento IPv6 utilizando la connotación de :: 1. Establecer una conexión usando la dirección 127.0.0.1 es la práctica más común; sin embargo, usando cualquier dirección IP en el rango de 127 .. . * funcionará de la misma manera o similar. La construcción loopback le da a una computadora o dispositivo capaz de conectar en red la capacidad de validar o establecer la pila de IP en la máquina.
Fuente: 127.0.0.1 - ¿Cuáles son sus usos y por qué es importante?
El número de red de clase A 127 tiene asignada la función de "bucle de retorno", es decir, un datagrama enviado por un protocolo de nivel superior a una dirección de red 127 debe regresar en bucle dentro del host. Ningún datagrama "enviado" a una dirección de red 127 debería aparecer en ninguna red en ningún lugar.
Fuente: Números de red
El propósito del rango de bucle invertido es probar la implementación del protocolo TCP / IP en un host. Dado que las capas inferiores están en cortocircuito, el envío a una dirección de bucle invertido permite que las capas superiores (IP y superiores) se prueben efectivamente sin la posibilidad de que se manifiesten problemas en las capas inferiores. 127.0.0.1 es la dirección más utilizada con fines de prueba.
Fuente: IP reservada, bucle invertido y direcciones privadas
Para obtener más información, consulte la pregunta https://askubuntu.com ¿ Qué es el dispositivo loopback y cómo lo uso? ¿ Y por qué la dirección IP de bucle invertido es 127.0.0.1 a 127.255.255.254? .
"0.0.0.0" es una sintaxis de dirección válida. Por lo tanto, debe analizarse como válido siempre que se espere una dirección IP en notación decimal con puntos tradicional. Una vez analizado y convertido a una forma numérica viable, su valor determina lo que sucede a continuación.
El valor todo cero tiene un significado especial. Por lo tanto, es "válido", pero tiene un significado que puede no ser apropiado (y por lo tanto tratado como no válido) para circunstancias particulares. Básicamente es el marcador de posición "sin dirección particular". Para cosas como el enlace de direcciones de las conexiones de red, el resultado puede ser asignar una dirección de interfaz apropiada a la conexión. Si lo está utilizando para configurar una interfaz, puede eliminar una dirección de la interfaz. Depende del contexto de uso para determinar qué hace realmente "ninguna dirección en particular".
En el contexto de una entrada de ruta, generalmente significa la ruta predeterminada . Eso sucede como resultado de más de la máscara de dirección, que selecciona los bits para comparar. Una máscara de "0.0.0.0" no selecciona bits, por lo que la comparación siempre tendrá éxito. Entonces, cuando se configura una ruta de este tipo, siempre hay un lugar para que los paquetes vayan (si está configurado con un destino válido).
En algunos casos, simplemente "0" también funcionará y tendrá el mismo efecto. Pero esto no está garantizado. El formulario "0.0.0.0" es la forma estándar de decir "ninguna dirección en particular" (en IPv6 que es ":: 0" o simplemente "::").
Fuente: ¿Cuál es el significado de la dirección IP 0.0.0.0?
En la versión 4 del Protocolo de Internet, la dirección 0.0.0.0 es una metadirección no enrutable que se utiliza para designar un objetivo no válido, desconocido o no aplicable. Para dar un significado especial a un dato de otra manera inválido es una aplicación de señalización en banda.
En el contexto de los servidores, 0.0.0.0 significa "todas las direcciones IPv4 en la máquina local". Si un host tiene dos direcciones IP, 192.168.1.1 y 10.1.2.1, y un servidor que se ejecuta en el host escucha en 0.0.0.0, será accesible a ambas IP.
En el contexto del enrutamiento, 0.0.0.0 generalmente significa la ruta predeterminada, es decir, la ruta que conduce al "resto" de Internet en lugar de en algún lugar de la red local.
Los usos incluyen:
- 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. Este uso ha sido reemplazado por el mecanismo APIPA en los sistemas operativos modernos.
- Una forma de especificar "cualquier host IPv4 en absoluto". Se utiliza de esta manera cuando se especifica una ruta predeterminada.
- Una forma de especificar explícitamente que el objetivo no está disponible. 1
- Una forma de especificar "cualquier dirección IPv4". Se utiliza de esta manera cuando se configuran servidores (es decir, cuando se vinculan sockets de escucha). Los programadores de TCP lo conocen como INADDR_ANY. (bind (2) se une a las direcciones, no a las interfaces).
En IPv6, la dirección de todos ceros se escribe como "::".
Fuente: 0.0.0.0
Cuando un cliente se inicia por primera vez, se dice que se encuentra en el estado Inicializando y transmite un mensaje DHCPDISCOVER en su subred física local a través del puerto 67 del Protocolo de datagramas de usuario (UDP) (servidor BootP). Dado que el cliente no tiene forma de conocer la subred a la que pertenece, DHCPDISCOVER es una transmisión de todas las subredes (dirección IP de destino 255.255.255.255), con una dirección IP de origen de 0.0.0.0. La dirección IP de origen es 0.0.0.0, ya que el cliente no tiene una dirección IP configurada.Si existe un servidor DHCP en esta subred local y está configurado y funciona correctamente, el servidor DHCP escuchará la transmisión y responderá con un mensaje DHCPOFFER. Si no existe un servidor DHCP en la subred local, debe haber un Agente de retransmisión DHCP / BootP en esta subred local para reenviar el mensaje DHCPDISCOVER a una subred que contenga un servidor DHCP.
Este agente de retransmisión puede ser un host dedicado (por ejemplo, Microsoft Windows Server) o un enrutador (por ejemplo, un enrutador Cisco configurado con instrucciones de ayuda de IP de nivel de interfaz).
...
Después de que el cliente recibe un DHCPOFFER, responde con un mensaje DHCPREQUEST, indicando su intención de aceptar los parámetros en el DHCPOFFER, y pasa al estado Solicitante. El cliente puede recibir múltiples mensajes DHCPOFFER, uno de cada servidor DHCP que recibió el mensaje DHCPDISCOVER original. El cliente elige un DHCPOFFER y responde solo a ese servidor DHCP, rechazando implícitamente todos los demás mensajes DHCPOFFER. El cliente identifica el servidor seleccionado rellenando el campo de opción Identificador de servidor con la dirección IP del servidor DHCP. El DHCPREQUEST también es una transmisión, por lo que todos los servidores DHCP que enviaron un DHCPOFFER verán el DHCPREQUEST, y cada uno sabrá si su DHCPOFFER fue aceptado o rechazado. Cualquier opción de configuración adicional que requiera el cliente se incluirá en el campo de opciones del mensaje DHCPREQUEST.Aunque se le haya ofrecido una dirección IP al cliente, enviará el mensaje DHCPREQUEST con una dirección IP de origen de 0.0.0.0. En este momento, el cliente aún no ha recibido la verificación de que está claro usar la dirección IP.
...
Conversación cliente-servidor para el cliente que obtiene la dirección DHCP donde el cliente y el servidor DHCP residen en la misma subred
Fuente: Comprensión y resolución de problemas de DHCP en Catalyst Switch o Enterprise Networks
Este documento explica cómo configurar una ruta predeterminada o una puerta de enlace de último recurso. Se utilizan estos comandos IP:
ip default-gateway
ip default-network
y ruta ip 0.0.0.0 0.0.0.0
ruta ip 0.0.0.0 0.0.0.0
Crear una ruta estática a la red 0.0.0.0 0.0.0.0 es otra forma de configurar la puerta de enlace de último recurso en un enrutador. Al igual que con el comando ip default-network, el uso de la ruta estática a 0.0.0.0 no depende de ningún protocolo de enrutamiento. Sin embargo, el enrutamiento IP debe estar habilitado en el enrutador.
Nota: IGRP no entiende una ruta a 0.0.0.0. Por lo tanto, no puede propagar rutas predeterminadas creadas con el comando ip route 0.0.0.0 0.0.0.0. Use el comando ip default-network para que IGRP propague una ruta predeterminada.
Fuente: Configuración de una puerta de enlace de último recurso mediante comandos IP
Ellos no son los mismos.
127.0.0.1
es parte de la red 127/8 que está reservada y apunta a la misma computadora.
0.0.0.0
es una dirección IP especial que significa diferentes cosas según el contexto.
En la versión 4 del Protocolo de Internet, la dirección 0.0.0.0 es una metadirección no enrutable que se utiliza para designar un objetivo no válido, desconocido o no aplicable. Para dar un significado especial a un dato de otra manera inválido es una aplicación de señalización en banda.
Es posible que haya confundido 0.0.0.0 con 127.0.0.1 cuando mira netstat y ve la dirección local escuchando como 0.0.0.0, pero esta es una forma diferente de usar 0.0.0.0.
En el contexto de los servidores, 0.0.0.0 significa "todas las direcciones IPv4 en la máquina local". Si un host tiene dos direcciones IP, 192.168.1.1 y 10.1.2.1, y un servidor que se ejecuta en el host escucha en 0.0.0.0, será accesible a ambas IP.
En el contexto del enrutamiento, 0.0.0.0 generalmente significa la ruta predeterminada, es decir, la ruta que conduce al "resto" de Internet en lugar de en algún lugar de la red local.
0.0.0.0
a veces también puede indicar una transmisión, es decir, a todas las computadoras en la red.
255.255.255.255
(o de manera más realista algo así como 192.168.1.255
para una red local)
A special definition exists for the IP broadcast address 255.255.255.255. It is the broadcast address of the zero network or 0.0.0.0, which in Internet Protocol standards stands for this network, i.e. the local network. Transmission to this address is limited by definition, in that it is never forwarded by the routers connecting the local network to other networks.
127.0.0.1 es una de las direcciones de la computadora local, pero cualquier dirección 127.xyz también es otra dirección de la computadora (llamada "dirección de bucle invertido"), excepto 127.0.0.0 (subred de bucle invertido) y 127.255.255.255 (dirección de difusión para el subred de bucle invertido).
127.xyz significa "aquí".
0.0.0.0 es totalmente diferente: 0.0.0.0 no es la dirección de nada , es el comodín, como *
en shell.
No puede enviar datos a 0.0.0.0 o abrir activamente una conexión TCP a 0.0.0.0 porque no hay nada allí; 0.0.0.0 ni siquiera es una dirección inalcanzable o no enrutable, no tiene sentido en un contexto donde se espera una dirección .
Puede usar el comodín 0.0.0.0 en contextos donde se puede proporcionar opcionalmente una dirección , lo que significa que no me importa .
Por ejemplo, cuando abre activamente una conexión TCP a algún servidor TCP (un servidor TCP es creado por un TCP abierto pasivo), debe especificar la dirección del servidor TCP (IP y número de puerto), y opcionalmente puede elegir un dirección local. (Debido a que su socket no es un socket de servidor, nadie puede abrir una conexión a él y la dirección en su lado de la conexión generalmente no es muy importante).
La bind
llamada al sistema se usa para elegir la dirección local de un socket TCP. Los datos pasados bind
son realmente un conjunto de restricciones: restricción en la dirección IP, restricción en el puerto TCP. La notación de texto habitual es IP: puerto. 0.0.0.0:0 significa que cualquier IP y cualquier puerto es aceptable, es la restricción nula. 0.0.0.0:20 significa que el puerto local debe ser 20, cualquier IP es aceptable (0.0.0.0:20 se usa al conformar servidores FTP para la conexión de datos en modo activo).
El subsistema TCP / IP elegirá la dirección para su lado de la conexión TCP si no elige una, utilizando la tabla de enrutamiento, basada en la dirección de destino: la dirección de socket TCP local será la dirección local asociada con la ruta correspondiente a la dirección de destino.
Anteriormente mencioné el "meta-carácter" del shell *
, pero el poder de combinar meta-caracteres con caracteres como *foo*
(cualquier nombre de archivo que contenga "foo") no existe con restricciones de dirección IP, es todo o nada: una sola dirección IP se considera aceptable o todas las direcciones lo son. La lógica no dicta que debe ser así. Puede ampliar la interfaz con un lenguaje de restricción más rico.
Precisión:
La oración 127.xyz significa "aquí" no implica que todas estas direcciones sean iguales. Representan diferentes "ubicaciones" (direcciones de socket), dentro de la "computadora" local, dentro de la pila de IP local.
Observación: una computadora con virtualización (emulación, virtualización de hardware, paravirtualización, lo que se te ocurra ...) tiene múltiples pilas de IP independientes.
-n
o -d
de netstat
programas relacionados para mostrar direcciones numéricas, no nombres. 127.0.0.1 no es la misma dirección IP que 127.16.23.42. Entonces, 127.0.0.1:80 y 127.16.23.42:80 representan direcciones de punto final TCP distintas, no se puede encontrar un servidor web en una dirección en la otra dirección.
Por lo general, utiliza bind-address 0.0.0.0 para permitir conexiones desde redes y fuentes externas. Muchos servidores como MySQL generalmente se unen a 127.0.0.1 permitiendo solo conexiones de bucle invertido, lo que requiere que el administrador lo cambie a 0.0.0.0 para habilitar la conectividad externa.
0.0.0.0
entrada de direcciones.