¿Qué es IPV6 para localhost y 0.0.0.0?


101

Como todos sabemos, la dirección IPv4 para localhostes 127.0.0.1(dirección de bucle invertido). ¿Para qué localhosty para qué es la dirección IPv6 0.0.0.0? Necesito bloquear algunos servidores de anuncios.

Respuestas:


120

Como todos sabemos, la dirección IPv4 para localhostes 127.0.0.1(dirección de bucle invertido).

En realidad, cualquier dirección IPv4 127.0.0.0/8es una dirección de bucle invertido.

En IPv6, el análogo directo del rango de loopback es ::1/128. Entonces ::1(forma larga 0:0:0:0:0:0:0:1) es la única dirección de loopback IPv6.


Si bien el nombre de host localhostnormalmente se resolverá en 127.0.0.1o ::1, he visto casos en los que alguien lo ha vinculado a una dirección IP que no es una dirección de bucle invertido. Esto es un poco loco ... pero a veces la gente lo hace.

Digo "esto es una locura" porque es probable que rompa las suposiciones de las aplicaciones al hacer esto; por ejemplo, una aplicación puede intentar realizar una búsqueda inversa en la IP de loopback y no obtener el resultado esperado. En el peor de los casos, una aplicación puede terminar enviando tráfico sensible a través de una red insegura por accidente ... aunque probablemente también deba cometer otros errores para "lograrlo".


Bloquear 0.0.0.0no tiene sentido. En IPv4 nunca se enruta. El equivalente en IPv6 es la ::dirección (forma larga 0:0:0:0:0:0:0:0) ... que tampoco se enruta nunca.

Las direcciones 0.0.0.0y ::están reservadas para significar "cualquier dirección". Entonces, por ejemplo, un programa que proporciona un servicio web puede vincularse al 0.0.0.0puerto 80 para aceptar conexiones HTTP a través de cualquiera de las direcciones IPv4 del host. Estas direcciones no son válidas como dirección de origen o destino para un paquete IP.


Finalmente, algunos comentarios preguntaban sobre ::/128versus ::/0versus ::.

Cual es esta diferencia?

Estrictamente hablando, los dos primeros son notación CIDR, no direcciones IPv6. En realidad, están especificando un rango de direcciones IP. Un CIDR consta de una dirección IP y un número adicional que especifica el número de bits en una máscara de red. Los dos juntos especifican un rango de direcciones; es decir, el conjunto de direcciones formadas ignorando los bits enmascarados de la dirección dada.

Entonces:

  • :: significa solo la dirección IPv6 0:0:0:0:0:0:0:0
  • ::/128significa 0:0:0:0:0:0:0:0con una máscara de red que consta de 128 bits. Esto da un rango de red con exactamente una dirección.
  • ::/0significa 0:0:0:0:0:0:0:0con una máscara de red que consta de 0 bits. Esto da un rango de red con 2 128 direcciones; es decir, ¡es todo el espacio de direcciones IPv6!

Para obtener más información, lea las páginas de Wikipedia sobre direcciones IPv4 e IPv6 y la notación CIDR:




4

En aras de la exhaustividad: existen direcciones IPv6 asignadas a IPv4 , donde puede incrustar una dirección IPv4 en una dirección IPv6 (puede que no sea compatible con todos los equipos IPv6).

Ejemplo: ejecuto un servidor en mi máquina, al que se puede acceder a través de http://127.0.0.1:19983/solr. Si accedo a él a través de una dirección IPv6 asignada a IPv4, entonces accedo a través de http://[::ffff:127.0.0.1]:19983/solr(que se convertirá a http://[::ffff:7f00:1]:19983/solr)


2

Para usar en un /etc/hostscomo una técnica simple de bloqueo de anuncios para hacer que un dominio no se resuelva, la dirección 0.0.0.0 se ha utilizado ampliamente porque hace que la solicitud falle inmediatamente sin siquiera intentarlo, porque no es una dirección válida o enrutable. Esto es en comparación con el uso de 127.0.0.1 en ese lugar, donde al menos verificará si su propia computadora está escuchando en el puerto solicitado 80 antes de fallar con 'conexión rechazada'. Cualquiera de esas direcciones que se utilizan en el archivo de hosts para el dominio evitará que se intenten solicitudes a través de la red real, pero 0.0.0.0 ha ganado el favor porque es más 'óptimo' por la razón anterior. Las IP "127" intentarán llegar a su propia computadora, y cualquier otra IP hará que se envíe una solicitud al enrutador para intentar enrutarla, pero para 0.0.0.0 allí '

Dicho todo esto, tener cualquier IP en su archivo de hosts para que el dominio sea bloqueado es suficiente, y no necesitaría ni querría poner también una dirección ipv6 en su archivo de hosts a menos que, posiblemente, no lo haga tener ipv4 habilitado en absoluto. Sin embargo, me sorprendería mucho si ese fuera el caso. Y aún así, creo que si el host aparece en / etc / hosts con una dirección ipv4 incorrecta cuando no tiene ipv4 habilitado, aún obtendría el resultado que está buscando, que es que falle, en lugar de buscar el DNS real de, por ejemplo, adserver-example.com y recuperar una IP v4 o v6.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.