Saltar al contenido
Volver al catálogo
Proyecto dns-resolverRedesIntermedioPróximamente

Construye tu propio resolvedor DNS

Construye un resolvedor DNS desde cero. Codifica y analiza paquetes UDP, y resuelve nombres recorriendo la jerarquía desde los servidores raíz.

Constrúyelo en tu lenguaje

El tester trata tu programa como una caja negra: sirve cualquier lenguaje. Estos son los más cómodos para este proyecto.

Idioma del temario

Las guías de las etapas se leen en este idioma. Solo aparecen los idiomas en los que este proyecto ya está traducido completo; el idioma de la interfaz no cambia.

De qué trata este proyecto

Proyecto en preparación: estamos completando y verificando el recorrido de implementación y sus pruebas. Las capacidades descritas son el objetivo del proyecto; todavía no está habilitado para comenzar.

Cada vez que escribes una URL, algo traduce un nombre en una dirección IP recorriendo una jerarquía mundial de servidores. Ese algo cabe en unos cientos de líneas.

Aquí construyes paquetes DNS bit a bit, los mandas por UDP y parseas la respuesta, incluida la compresión de nombres que tanto despista. Terminarás resolviendo dominios de verdad partiendo de los root servers, sin apoyarte en el resolver del sistema.

Hoja de ruta

8 etapas repartidas en 4 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.

  1. Fase 12 etapas

    Escribir un paquete

    Construye una consulta DNS byte a byte y mándala por UDP.

  2. Fase 23 etapas

    Leer la respuesta

    Parsea cabecera y secciones, y descomprime nombres con punteros.

  3. Fase 32 etapas

    Resolver de verdad

    Recorrido iterativo desde los root servers, CNAMEs y varios tipos de registro.

  4. Fase 41 etapa

    Caché

    Respeta los TTL y evita consultas repetidas.

Antes de empezar

Un resolver DNS completo: serialización y parseo de paquetes según el RFC 1035, consultas por UDP, soporte de los registros habituales (A, AAAA, CNAME, MX, NS, TXT), descompresión de nombres por punteros, resolución recursiva desde los root servers y caché respetando el TTL.

  • mcp-server
    Beta

    Construye tu propio servidor MCP

    Construye un servidor MCP desde cero. Implementa Model Context Protocol con JSON-RPC, herramientas y recursos para conectar clientes de IA con tus programas.

    Intermedio5 etapas~12 hRedes
    MCPJSON-RPCagentes+1

    TypeScript · Python · Go

  • bittorrent
    Próximamente

    Construye tu propio cliente BitTorrent

    Construye un cliente BitTorrent desde cero. Decodifica bencode, consulta trackers y descarga un archivo real con el protocolo peer-to-peer.

    Avanzado12 etapas~20 hRedes
    bencodeP2Pprotocolos+1

    Go · Python · Java

  • http-server
    Próximamente

    Construye tu propio servidor HTTP

    Construye un servidor HTTP desde cero. Analiza peticiones desde los bytes del socket, gestiona conexiones y atiende tráfico concurrente con respuestas HTTP.

    Intermedio10 etapas~12 hRedes
    socketsTCPHTTP+1

    Go · Python · C · Rust