Estoy ejecutando mi propio servidor DNS-sobre-TLS bajo mi dominio (dns.example.com). En mi Motorola G100, que ejecuta Stock Android 11, puedo establecer el DNS privado a este dominio y funciona. Esto funciona en mis máquinas Linux, en otros dos Androids (un Motorola con Android 10 y un Samsung con Android 10), y también en dos routers diferentes (AVM FritzBox puede usar DoT como upstream).
El servidor no es culpable, el certificado es válido y todos los dispositivos funcionan como deberían, es decir, hasta que el servidor se reinicie o se bloquee de otra manera. Entonces, por supuesto, recibo la notificación de que "no puede acceder al servidor DNS privado".
Las máquinas Linux se recuperan y simplemente vuelven a intentar conectarse, al igual que los routers. Pero los teléfonos Android no quieren reintentar aunque sepa con seguridad que la conexión funciona.
Al desactivar el DNS privado y volver a activarlo con mi dominio, se muestra el siguiente registro (IPs eliminadas)
09-30 19:32:46.091 1144 20197 W resolv : Validating DnsTlsServer <MY_IPV4> with mark 0xf006b
09-30 19:32:46.091 1144 20198 W resolv : Validating DnsTlsServer <MY_IPV6> with mark 0xf006b
09-30 19:32:46.138 1144 20197 W resolv : SSL_connect ssl error =1, mark 0xf006b: No such file or directory
09-30 19:32:46.138 1144 20198 W resolv : SSL_connect ssl error =1, mark 0xf006b: No such file or directory
09-30 19:32:46.138 1144 20197 W resolv : TLS Handshake failed
09-30 19:32:46.138 1144 20198 W resolv : TLS Handshake failed
09-30 19:32:46.138 1144 20197 W resolv : query failed
09-30 19:32:46.138 1144 20197 W resolv : validateDnsTlsServer returned 0 for <MY_IPV4>
09-30 19:32:46.138 1144 20198 W resolv : query failed
09-30 19:32:46.138 1144 20198 W resolv : validateDnsTlsServer returned 0 for <MY_IPV6>
09-30 19:32:46.138 1144 20197 W resolv : Validation failed
09-30 19:32:46.138 1144 20198 W resolv : Validation failed
No sé por qué me dice que el apretón de manos falla, todos los demás dispositivos (o kdig +tls
) pueden conectarse sin problemas. Desde el reinicio del servidor hasta ahora, no se ha cambiado ninguna configuración, certificado o versión de software.
Mi opinión es que Android almacena en caché la conexión y "recuerda" que falló en algún momento en el pasado y ni siquiera intenta conectarse de nuevo. He probado a reiniciar, apagar, modo avión, otro DoT (dns.google funciona), desactivar el DoT pero nada arregla este comportamiento.
0 votos
Es difícil adivinar la causa del fallo en este punto sin hacer un poco de solución de problemas de red en el dispositivo. Podría ser debido a caché de DNS negativo del dominio de su servidor.
0 votos
No, en realidad es la verificación de certificados mal implementada en Android.