Necesito construir un servidor DNS de almacenamiento en caché simple no autorizado personalizado en C/C++. ¿Alguna guía? ¿Campo de golf? Muestras? Gracias!Cómo crear un servidor DNS simple personalizado en C/C++
Respuesta
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 caché 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, hay buenas bibliotecas como ldns
que pueden proporcionar el 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.
Comience con djbdns.
Tendría cuidado con eso. El software de djb tiene licencias muy restrictivas. asegúrese de que concuerde con su uso previsto. – SingleNegationElimination
djbdns ahora es de dominio público, pero aún no lo usaría ... – Alnitak
Hay un montón de implementaciones de software libre de DNS. Podrías mirar su código fuente. Por ejemplo:
DNS and BIND El libro podría ser útil. Y, por supuesto, están los RFC que especifican DNS, consulte http://rfc-editor.org/.
Alternativamente, puede usar el Ragel State Machine Compiler para construir su servidor desde cero.
La máquina de estado es una parte muy pequeña del código de un servidor ... – bortzmeyer
Para algo definido por una especificación muy estricta, como un servidor DNS, es una sustancia (y posiblemente la parte más importante). –
Si realmente necesita para hacer eso (que es una enorme trabajo , véase la respuesta de Alnitak), se inicia a partir de un buen programa existente (no una sola persona experimentar sin mantenimiento durante mucho tiempo como djbdns) y modificar eso.
Unbound es probablemente una opción razonable para esto. (La base del código es más pequeña que la de BIND.)
Nota para los lectores: recuerde ignorar los votos abajo si no hay un comentario que los explique. – bortzmeyer
El software de djb se ha comportado regularmente de forma contraria a los estándares debido a su creencia general de que su camino es mejor que los estándares, y también se ha sabido que niega la existencia de graves errores de elevación de privilegios remotos en su código. Junto con el largo período durante el cual djbdns no se mantuvo por completo, creo que estos factores hacen que sea perfectamente justo para bortzmeyer llamarlo "un experimento de un solo hombre sin mantenimiento durante mucho tiempo" y desalentar su implementación en entornos no aficionados. –
Escribí un servidor DNS básico para una entrevista de trabajo con licencia BSD.
puede ser alguien podría encontrar útil:
- 1. Servidor DNS muy simple
- 2. Búsqueda DNS del servidor DNS personalizado en C#
- 3. Servidor DNS simple en Node.JS? (Servidor DNS principal/autorizado) (¿quizás ndns?)
- 4. ¿Cómo configurar la resolución del nombre de host para usar un servidor DNS personalizado en Java?
- 5. Desarrollar un servidor DNS básico (en C#)
- 6. Dile urllib2 de usar DNS personalizado
- 7. DNS- ¿Enruta el DNS para la subcarpeta a otro servidor?
- 8. ¿Cómo obtiene gcc/cygwin el servidor DNS?
- 9. ¿Cómo puedo encontrar el servidor DNS actual?
- 10. Crear servidor oAuth personalizado con Zend
- 11. Administrar servidor DNS mediante el código C#
- 12. Cómo crear un teclado personalizado
- 13. ¿Cómo crear un servidor HTTP en Android?
- 14. Intentando crear un servidor simple de Ruby sobre SSL
- 15. un servidor smtp simple
- 16. ¿Cómo crear un carrusel jquery personalizado?
- 17. Cómo crear un calendario simple en android
- 18. ¿Cómo crear un validador personalizado en smartGWT?
- 19. Cómo crear un evento personalizado en symfony2
- 20. Cómo crear un atributo personalizado en C#
- 21. ¿Cómo crear un entorno personalizado en Grails?
- 22. Crear un UIActivityIndicatorView personalizado
- 23. Registro Dns apuntando a una carpeta en un servidor
- 24. Configuración de un servidor de nombre personalizado con BIND9
- 25. personalizado simple servidor HTTP de Python no servir archivos CSS
- 26. Escribir un servidor web simple en Ruby
- 27. ¿Cómo obtengo mi servidor DNS actual en C#?
- 28. C# Cómo hacer un simple servidor UDP
- 29. Cómo crear un Componente Swing personalizado
- 30. Un simple servidor local SMTP
¿Por qué en la Tierra podría necesitar para construir su propio servidor DNS? –
Causa Necesito un servidor DNS con alguna funcionalidad no estándar –
Le recomiendo encarecidamente que busque soluciones alternativas, pero si este es el camino que debe seguir ... djbdns es de dominio público, por lo que puede hackearlo todo lo que desee. –