¿Por qué hay un signo de porcentaje '%' en la dirección IPv6?

Pregunta:

Estoy usando las clases de .NET Framework para obtener las direcciones IP de mi máquina.

Dns.GetHostAddresses(Dns.GetHostName())

Tengo un adaptador VirtualBox que tiene una dirección IPv4 e IPv6. Usando el código .NET fe80::71a3:2b00:ddd3:753f%16 la dirección IPv6 como fe80::71a3:2b00:ddd3:753f%16

¿Observa el% 16 al final?

Sin embargo, si consulto lo mismo usando WMI , obtengo la dirección como 'fe80 :: 71a3: 2b00: ddd3: 753f'

Entonces, ¿el% 16 tiene algún significado especial?

Editar:

Acabo de hacer algunas observaciones más sobre esto. Y coinciden bastante bien con lo que dijo Stephen Jennings en su respuesta.

Instalé Vmware para ver qué dirección IPv6 emitía. Las direcciones eran: fe80 :: 3dd0: 7f8e: 57b7: 34d5% 19

fe80 :: b059: 65f4: e877: c40% 20

Claramente, los números después de% no son una representación hexadecimal. Verifiqué todas las propiedades disponibles para un adaptador de red usando Wmi y encontré que los números son exactamente los mismos que los de la propiedad InterfaceIndex de cada adaptador de red. Según MSDN , identifica de forma única cada adaptador de red y esta propiedad se introdujo en Vista.

Lo que todavía me confundía era por qué la clase IPAddress le permitiría crear una dirección IP en ese formato a menos que fuera válida. Stephen dio la respuesta. El número es la identificación del alcance. IPAddress tiene un constructor que acepta la dirección Y un ID de alcance.

Ah, y estos tres adaptadores de red eran de enlace local. Confirmado a través de ipconfig

Frio. ¡¡Eso fue interesante!!

Respuesta:

El número después del '%' es el ID del alcance.

IPv6 define al menos tres alcances de accesibilidad para direcciones:

  1. Globalmente direccionable. Esta es una dirección IPv6 que le proporcionó su ISP. Está disponible para su uso en la Internet pública.

  2. Enlace local. Esto es similar al rango 169.254.XX. Es una dirección que se asigna a sí misma una computadora para facilitar las comunicaciones locales. Estas direcciones no se enrutan en la Internet pública porque no son únicas a nivel mundial.

  3. Nodo-local. Esta es una dirección que identifica la interfaz local, similar a 127.0.0.1. Básicamente, esta es la dirección: 1.

Microsoft ha publicado este artículo que describe el direccionamiento IPv6 , que es el artículo menos confuso que encontré. El artículo indica que la presencia de un ID de alcance en su dirección significa que es una dirección local de enlace . También puede saber que es un enlace local porque la dirección comienza con fe80 .

La información clara y de fácil comprensión sobre este tema parece ser poco común, por lo que estoy reuniendo el resto de esto en función de mi mejor comprensión de RFC 4007 y el resto de la información disponible.

Una computadora puede tener múltiples direcciones de enlace local, cada una con un alcance diferente. El ID de alcance indica para qué alcance es la dirección. Por ejemplo, imagine el escenario de una computadora con dos NIC, cada una con una dirección de enlace local en diferentes redes. Si intenta enviar algo a otra dirección que comience con fe80, ¿cómo sabrá la computadora a qué NIC enviar? El ID de alcance parece ser la solución para esto.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım