Resumen

  • RFC 9844 obliga a las interfaces que reciben IPv6 no global a permitir una dirección link-local o scoped multicast junto con la elección de zona, normalmente expresada mediante el nombre de una interfaz del sistema.
  • El texto humano se resuelve como índice numérico específico del host para construir el socket; es imprescindible para actuar localmente, carece de semántica común y no debe viajar por la red.
  • Una prueba íntegra conserva entrada, validación, mapeo, ciclo de vida y resultado en el nodo, y demuestra por separado que el paquete no contiene la etiqueta local.

La dirección era correcta. La decisión de por dónde enviarla seguía ausente.

En un host con dos enlaces, el mismo literal link-local puede tener dos interpretaciones locales. Un formulario que solo acepta la dirección obliga al sistema a adivinar o a fallar. Añadir el nombre de interfaz completa la instrucción. Guardar después esa cadena como endpoint universal comete el error inverso: en otro host, el mismo nombre puede apuntar a otra red.

Ese doble límite da sentido a RFC 9844. Su ficha oficial, el texto y el XML registran una norma Standards Track de agosto de 2025 que deja obsoleta RFC 6874 y actualiza RFC 4007, 7622 y 8089. El estatus acredita un requisito público; no certifica implementaciones ni convierte una selección válida en prueba de que el dispositivo alcanzado era el previsto.

El alcance no cabe en los bits de dirección

RFC 4291 define las direcciones IPv6 y RFC 5952 recomienda cómo escribirlas. Link-local significa que el valor opera dentro de un ámbito limitado. Si el nodo participa en varias zonas del mismo scope, la dirección sola no distingue cuál debe recibir la acción.

RFC 4007 cualifica el uso interno con un zone index. Para una persona, ese índice suele presentarse como zone identifier: un nombre de interfaz o un entero decimal. El sufijo de ejemplos como %eth0 no amplía la dirección del paquete; expresa una selección en la tabla local.

La selección tiene consecuencias. Un ping puede salir por el enlace equivocado; una configuración puede tocar otro equipo; un capturador puede observar otra interfaz. Sin selector, un dispositivo que solo tiene link-local puede resultar inaccesible desde la herramienta aunque el kernel sea capaz de alcanzarlo. RFC 9844 cita diagnóstico, configuración, monitorización, impresión virtual y redes marítimas. RFC 6991 conecta el problema con YANG, y RFC 8925 explica un entorno IPv6-mostly donde IPv4 ya no garantiza una ruta alternativa.

Copiar y pegar el valor completo evita errores al reescribir cadenas largas. Conserva intención textual, pero no la relación entre nombre e interfaz. Esa relación solo existe dentro del host que la resolvió.

La interfaz de usuario termina en una llamada concreta

RFC 9844 exige que una UI que admita una dirección distinta de global unicast ofrezca también una zona. Prefiere el formato completo de RFC 4007, aunque permite otro delimitador, campos separados, una lista de zonas activas o un parámetro independiente. La forma visual importa menos que el invariante: dirección y zona siguen siendo entradas distinguibles hasta convertirse en estructura de socket.

inet_pton() no acepta directamente fe80::1%eth0. La aplicación puede recurrir a getaddrinfo() o separar los componentes para combinar inet_pton() con if_nametoindex(). RFC 3493 reserva sin6_scope_id en la dirección de socket IPv6, y deja a la implementación su mapeo hacia interfaces.

Por eso el recibo operativo no puede decir solo “formulario válido”. Debe conservar bytes de entrada, versión de parser y política, controles de longitud y caracteres, índice resuelto, identidad de la interfaz en ese instante, destino scoped, resultado de construcción y observación final. Si la interfaz cambia entre la elección y el uso, la carrera debe ser visible.

El código en ejecución separa al menos cuatro hechos: se aceptó el texto, se resolvió la interfaz, se envió un paquete y respondió el equipo esperado. El estándar coordina la puerta de entrada; la evidencia local determina qué ocurrió realmente.

La etiqueta se detiene donde termina su autoridad

RFC 9844 afirma que el zone identifier solo posee significado local y no debe enviarse por el cable. El software que lo recibe desde una UI no debería retransmitirlo. RFC 4007 añade cautela ante direcciones no globales textuales recibidas como datos: un nodo remoto podría intentar engañar al receptor sobre zonas que solo el receptor puede definir.

Separar no equivale a borrar. Dentro del host se necesita la relación nombre-index para explicar el camino. En el borde, la misma etiqueta pierde legitimidad. El encabezado IPv6 transporta la dirección de alcance limitado, no el nombre de interfaz. Un analizador puede mostrar metadatos locales, pero la auditoría debe diferenciar anotación y bytes transmitidos.

Esto impide que la automatización confunda repetición textual con reproducción operativa. eth0 puede nombrar realidades diferentes según host, namespace o máquina virtual. El nombre se renombra o reutiliza; el índice numérico se recicla tras reinicio o recreación. Una prueba histórica necesita host, tiempo y contexto de ciclo de vida, y aun así solo puede afirmar que aquel host resolvió aquel valor de aquella manera.

Un campo abierto también necesita límites

RFC 4007 no fija longitud ni alfabeto universal. RFC 9844 recomienda aplicar el límite del entorno, normalmente el de nombres de interfaz, y comprobar caracteres. El NUL ASCII debe rechazarse para evitar que etapas posteriores discrepen sobre el final de la cadena.

También importan dobles decodificaciones, normalización, caracteres de shell, renderizado de logs y listas de interfaces obsoletas. No existe una expresión regular universal que preserve todos los sistemas. La ruta segura guarda la entrada exacta, valida según sistema e invocación, resuelve cerca del uso y registra tanto la representación aceptada como el resultado numérico.

RFC 6874 mostró dónde no estaba la solución

RFC 6874 intentó incluir zonas en literales IPv6 dentro de URI. Su registro refleja ahora que fue reemplazada. RFC 9844 indica que los navegadores consideraron impracticable ese enfoque, revierte la modificación de RFC 3986 y formula una obligación genérica de UI. También elimina esas referencias de RFC 7622 y RFC 8089.

Corregir el estándar no fue una derrota de la coordinación. Fue reconocer el límite de la capa. RFC 9844 no resuelve el modelo de origen HTTP de RFC 6454, y sus mandatos no se aplican a URI obtenidas por navegadores. Ampliar esa conclusión desde este artículo sería inventar autoridad que el RFC rechaza.

Ensayar una frontera que debe borrar sin olvidar

La prueba debe ofrecer dos interfaces activas para el mismo literal link-local, exigir selección explícita y rechazar una zona inexistente sin fallback. Conviene renombrar o retirar la interfaz después de mostrarla, cruzar un reinicio para observar reciclado de índices e introducir cadenas largas, NUL, delimitadores alternativos, Unicode y caracteres con significado para shell o log.

Después se compara el recibo con el paquete. El primero ha de contener el índice usado; el segundo no debe contener el nombre. Un peer no puede dictar la zona local. Un error de mapeo debe detener la operación, no autorizar cualquier salida disponible.

La prueba humana cierra el ciclo: antes de una acción destructiva, la UI debe mostrar qué interfaz resolvió y distinguir aceptación, resolución, envío y respuesta. Así se preserva el principio correcto: especificación mínima común, decisión operativa local y evidencia del código que realmente movió el paquete.

Frontera de evidencia

No se probó sistema operativo, navegador, router, impresora, sniffer, cliente YANG ni red marítima. No se midieron soporte, adopción, errores o incidentes. Los ejemplos del RFC explican el requisito, no certifican versiones actuales.

La conclusión es estructural: cierta información puede ser esencial para actuar y, a la vez, inválida como identidad compartida. Conservarla dentro y retirarla fuera son dos partes del mismo control.

Fuentes