Un resolvedor DNS validador, recursivo y con caché, diseñado para ser rápido y ligero, con validación DNSSEC integrada.
miekg/dns
Biblioteca de Go para crear clientes y servidores DNS, compatible con todos los tipos de registros de recursos, incluidos los de DNSSEC.
- Estrellas
- 8,804
- Forks
- 1,220
- Issues abiertos
- 3
- Último commit
- hace 4 días
¿Qué es?
miekg/dns es una biblioteca DNS escrita en Go para quienes necesitan trabajar con DNS a nivel de protocolo. Admite todos los tipos de registros de recursos, incluidos los de DNSSEC, y permite crear tanto servidores como resolvers. Su API es intencionalmente pequeña: ofrece los componentes básicos, en lugar de muchas funciones de conveniencia.
La biblioteca cubre consultas UDP y TCP sobre IPv4 e IPv6, análisis de archivos de zona y programación de servidores basada en el paquete net/http. En cuanto a seguridad, permite firmar y validar DNSSEC, y generar claves para DSA, RSA, ECDSA y Ed25519; también es compatible con TSIG, SIG(0) y DNS over TLS. Además, implementa transferencias de zona AXFR/IXFR y opciones EDNS0 como NSID, Cookies y Client Subnet.
El proyecto señala que su sucesor, DNS version 2, está alojado en Codeberg y que este repositorio solo recibirá correcciones específicas antes de archivarse.
Funciones clave
- 01Admite todos los tipos de registros de recursos DNS, incluidos los de DNSSEC
- 02Permite crear servidores DNS y resolvers del lado del cliente
- 03Firma y valida DNSSEC, y genera claves para varios algoritmos
- 04Analiza archivos de zona con $INCLUDE, $ORIGIN, $TTL y $GENERATE
- 05Admite transferencias de zona AXFR/IXFR y autenticación TSIG/SIG(0)
- 06Admite DNS over TLS y opciones EDNS0 como NSID y Cookies
Casos de uso
- Escribir un servidor DNS autoritativo personalizado en Go
- Crear un resolver o forwarder DNS con control detallado sobre las consultas
- Implementar la firma o validación DNSSEC en una aplicación Go
- Crear herramientas de diagnóstico que envíen consultas DNS sin procesar e inspeccionen las respuestas
Inicio rápido
- 1
Instala la biblioteca con la herramienta Go
go get github.com/miekg/dns - 2
Lee la descripción general de la API al principio de doc.go o ejecuta godoc para el paquete
Antes de usarlo
- El desarrollo se ha trasladado a DNS version 2 en codeberg.org/miekg/dns, y este repositorio solo recibe correcciones específicas.
- Este repositorio se archivará en algún momento.
Temas
Preguntas frecuentes
- ¿Qué es dns?
- Biblioteca de Go para crear clientes y servidores DNS, compatible con todos los tipos de registros de recursos, incluidos los de DNSSEC. miekg/dns es una biblioteca DNS escrita en Go para quienes necesitan trabajar con DNS a nivel de protocolo. Admite todos los tipos de registros de recursos, incluidos los de DNSSEC, y permite crear tanto servidores como resolvers. Su API es intencionalmente pequeña: ofrece los componentes básicos, en lugar de muchas funciones de conveniencia.
- ¿dns es gratuito? ¿Qué licencia tiene?
- dns es open source bajo la licencia BSD-3-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿dns sigue mantenido?
- Mantenimiento activo. El último commit de dns fue el 3 nov 2026.
- ¿Para qué puedo usar dns?
- Escribir un servidor DNS autoritativo personalizado en Go Crear un resolver o forwarder DNS con control detallado sobre las consultas Implementar la firma o validación DNSSEC en una aplicación Go Crear herramientas de diagnóstico que envíen consultas DNS sin procesar e inspeccionen las respuestas
- ¿Cómo se instala dns?
- Instala la biblioteca con la herramienta Go: go get github.com/miekg/dns Lee la descripción general de la API al principio de doc.go o ejecuta godoc para el paquete
- ¿Dónde consigo dns?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/miekg/dns
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un servidor DNS flexible escrito en Go que encadena plugins, cada uno encargado de una función DNS.
Framework Java asíncrono y dirigido por eventos para crear servidores y clientes de protocolos de red fáciles de mantener y de alto rendimiento.
Servidor DNS autoritativo y recursivo de código abierto, con consola web, bloqueo de anuncios y malware, y compatibilidad con DNS cifrado.
Un resolvedor DNS portátil en Rust que bloquea anuncios, asigna dominios .numa a servicios de desarrollo locales y puede cifrar consultas con ODoH.
Implementación de SSHv2 en Python puro que ofrece funciones de cliente y servidor para programas Python.