c++ - pagina - mi dns
Cómo crear un servidor DNS simple personalizado en C/C++ (6)
Alternativamente, puede usar el compilador de máquinas Ragel State para construir su servidor desde cero.
Necesito construir un servidor DNS caché no autoritativo simple personalizado en C / C ++. ¿Alguna guía? ¿Campo de golf? Muestras? ¡Gracias!
Comience con djbdns .
Hay un montón de implementaciones de software libre de DNS. Podrías mirar su código fuente. Por ejemplo:
El libro DNS y BIND pueden ser útiles. Y, por supuesto, están los RFC que especifican DNS, ver http://rfc-editor.org/ .
No existe un servidor DNS de caché "simple", especialmente si desea una seguridad decente. Los recientes ataques DNS han demostrado que la función de cacheo en servidores DNS recursivos es particularmente vulnerable.
Vuelva a evaluar si realmente necesita su propia memoria caché local. Si no lo hace, probablemente sea mejor que modifique el código proxy DNS existente (como ''dnsmasq'').
Si desea rodar por su cuenta, existen buenas bibliotecas, como ldns
que pueden proporcionar acceso a los paquetes DNS subyacentes.
Estoy usando ldns
yo mismo junto con libevent
para implementar el servidor DNS Fuzzing que mencioné en una pregunta anterior.
Si realmente necesita hacer eso (es un trabajo enorme , consulte la respuesta de Alnitak), comience desde un buen programa existente (no un experimento de un solo hombre no mantenido durante mucho tiempo como djbdns) y modifíquelo.
Sin consolidar es probablemente una opción razonable para esto. (La base del código es más pequeña que la de BIND).
Escribí un servidor DNS básico para una entrevista de trabajo bajo licencia BSD.
Puede ser que alguien lo encuentre útil: