es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tiempo de espera para la traducción NAT de DNS en Linux

En los routers de Cisco, parecen ser capaces de cambiar el tiempo de espera de traducción NAT para DNS por separado de udp.

Cuando se configura la traducción de puertos, existe un control más preciso sobre los tiempos de espera de las entradas de traducción, ya que cada entrada contiene más contexto sobre el tráfico que la utiliza. Las traducciones UDP que no son de DNS expiran después de 5 minutos; las traducciones DNS expiran en 1 minuto. Las traducciones TCP expiran después de 24 horas, a menos que se detecte un RST o un FIN en el flujo, en cuyo caso expiran en 1 minuto.

De: https://community.cisco.com/t5/networking-documents/quot-ip-nat-translation-timeout-quot-command/ta-p/3137012

¿Cómo puedo hacer esto en Linux?

Cuando ejecuto sysctl net.netfilter puedo encontrar opciones de tiempo de espera de conexiones para cada protocolo, como


net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 120

pero no puedo encontrar ninguna configuración para DNS.

¿Existe alguna manera de cambiar el tiempo de espera de conexiones DNS de forma independiente a otros traficos UDP?


Si no es posible cambiar la configuración de conntrack, ¿cómo puedo cambiar el tiempo de espera de conexiones DNS? (Solo quiero probar esto por diversión, no hay una razón importante). ¿Debo escribir código en C para verificar cada paquete UDP que pasa a través de NAT usando netfilter y luego usar conntrack para agregarlo a la tabla con una variable de tiempo de espera diferente?

Estoy usando Ubuntu 20.04.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, parece que no hay una forma directa de cambiar el tiempo de espera de conexión del DNS por separado del resto del tráfico UDP en Linux. La configuración de tiempo de espera de la conexión para UDP se aplica a todo el tráfico UDP, incluido el tráfico DNS.

    En cuanto a cambiar manualmente el tiempo de espera de conexión del DNS, no se recomienda modificar directamente la tabla de conexiones dado que puede conducir a resultados impredecibles. Tampoco se recomienda escribir código C para verificar cada paquete UDP y modificar el valor de tiempo de espera debido a la complejidad potencial y riesgo de errores.

    En cambio, el enfoque recomendado es utilizar un servidor de caché DNS como dnsmasq o bind para manejar las solicitudes de DNS y almacenar en caché las respuestas. De esta manera, las respuestas de DNS pueden ser almacenadas en caché por un período de tiempo más prolongado, reduciendo la necesidad de consultas DNS frecuentes y minimizando el impacto de un tiempo de espera de conexión más corto.

    Alternativamente, si tienes control sobre el dispositivo NAT, es posible que puedas configurar la configuración de tiempo de espera para el tráfico DNS por separado del resto del tráfico UDP en el propio dispositivo.

Comments are closed.