================================ Resolución Inmutable con DNSLink ================================ Identificador Técnico: [TECH-003] Fundamento ========== El direccionamiento directo por CID (ejemplo: ``/ipfs/bafy...``) es inmutable; cualquier cambio en un paquete genera un nuevo CID raíz. Por su parte, el Sistema de Nombres Interplanetario tradicional (IPNS) basado en DHT experimenta una latencia de resolución prohibitiva para las consultas rápidas de metadatos de DNF. Para solventar esta limitación, el proyecto utiliza **DNSLink**. DNSLink asocia un registro TXT en el sistema de nombres de dominio convencional con el CID raíz activo de IPFS. Topología de Registros DNS ========================== En los servidores de nombres autoritativos para el dominio ``mx-os.mx``, se definen los siguientes registros: .. code-block:: zone ; Registro raíz del portal de espejos _dnslink.mirrors.mx-os.mx. 300 IN TXT "dnslink=/ipfs/bafyrei..." ; Registros complementarios para gateways públicos _dnslink.ipfs.mx-os.mx. 300 IN TXT "dnslink=/ipfs/bafyrei..." _dnslink.gateway.mx-os.mx. 300 IN TXT "dnslink=/ipfs/bafyrei..." ; Subdominios dedicados opcionales para granularidad independiente _dnslink.fedora.mirrors.mx-os.mx. 300 IN TXT "dnslink=/ipfs/bafyfed..." _dnslink.centos.mirrors.mx-os.mx. 300 IN TXT "dnslink=/ipfs/bafycen..." Mecánica de Resolución en Kubo ============================== 1. Un cliente solicita un recurso bajo la ruta ``/ipns/mirrors.mx-os.mx/fedora/iso`` o accede directamente a ``https://ipfs.mx-os.mx/``. 2. Kubo extrae el nombre de dominio y consulta el registro TXT de ``_dnslink.mirrors.mx-os.mx`` o ``_dnslink.ipfs.mx-os.mx``. Por defecto, Kubo utiliza los resolutores del sistema operativo, que a su vez dependen de servidores DNS locales o de enrutadores LAN con memorias intermedias independientes. 3. Para eliminar el desfase de caché y garantizar resolución inmediata tras cada publicación, se configura un resolvedor DNS sobre HTTPS, DoH, directo en la configuración de Kubo para el dominio ``mx-os.mx``. Es indispensable incluir el punto final con FQDN estricto: .. code-block:: bash ipfs config --json DNS.Resolvers '{"mx-os.mx.": "https://cloudflare-dns.com/dns-query", ".": "auto"}' 4. El registro TXT devuelve el prefijo canónico ``dnslink=/ipfs/``. 5. Kubo reemplaza internamente la ruta por ``/ipfs//fedora/iso`` y procede a recuperar los bloques vía Bitswap o desde la memoria local. 6. El tiempo de vida (TTL) del registro se fija en 300 segundos (5 minutos) en la zona autoritativa gestionada mediante el script de automatización ``nodo/bin/mxos-dnslink-update.bash``. Soberanía Dual: DNSLink e Identidad Criptográfica IPNS ====================================================== Para preservar la resiliencia en escenarios de fallas de DNS, censura o entornos desconectados de internet, el catálogo mantiene dos mecanismos equivalentes de direccionamiento: 1. **Resolución nominal con DNSLink:** Ruta amigable ``/ipns/mirrors.mx-os.mx`` respaldada por el registro TXT en Cloudflare. 2. **Resolución criptográfica autónoma con IPNS:** Ruta inmutable e independiente de DNS bajo ``/ipns/k51qzi5uqu5di6ed3qtnwrdlvpmfil07ib6qfzb1t259nux49jenn8my4dtg0v``, firmada con la llave Ed25519 de Fundación MxOS y publicada periódicamente en la DHT de libp2p.