Consultar DNS sobre TCP mediante un reenvío local de SSH
Reenvía un puerto TCP local sin privilegios a un servidor DNS remoto y solicita explícitamente DNS sobre TCP con dig.
El reenvío local de OpenSSH transporta TCP. DNS también puede usar TCP, siempre que la herramienta de consulta y el servicio DNS remoto utilicen ese transporte.
Para un servidor DNS accesible desde el host SSH, abre un reenvío que escuche solo en loopback:
ssh -N -L 127.0.0.1:1053:dns.internal:53 [email protected]
Después envía una consulta DNS TCP explícita desde la máquina local:
dig +tcp @127.0.0.1 -p 1053 app.internal A
Sustituye el servidor DNS, el host SSH y el nombre consultado por los valores previstos. El lado del servidor SSH debe poder alcanzar dns.internal:53 y la política de reenvío debe permitirlo.
El puerto local está por encima del rango de puertos privilegiados. Una consulta a un puerto local 1053 no exige vincular el puerto DNS del sistema 53.
Esto no redirige automáticamente las consultas DNS UDP habituales. Una tubería de bytes UDP a TCP en bruto no basta, porque DNS sobre TCP añade un campo de longitud y un entramado de flujo. La integración con el resolutor del sistema requiere un reenviador DNS adecuado o una configuración TCP explícitamente admitida.
Por último, obtener una dirección por esta vía no enruta la conexión web posterior a través de SSH. La consulta DNS y el transporte hasta el destino siguen siendo decisiones separadas.