Este documento describe cómo los sistemas operativos cliente manejan las consultas DNS y los efectos en la resolución de nombres de dominio usando Cisco IOS® Secure Client.
No hay requisitos específicos para este documento.
Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware. Los ejemplos de laboratorio utilizan las políticas de grupo de ASA/FTD de Secure Firewall y Cisco Secure Client en Windows, macOS, Linux y Apple iOS.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Este documento explica cómo los sistemas operativos cliente manejan las consultas DNS y los efectos en la resolución de nombres de dominio cuando se utiliza Cisco Secure Client (anteriormente Cisco AnyConnect) con tunelización dividida o completa. Entre las cabeceras de VPN analizadas se incluyen Cisco Secure Firewall ASA y FTD (anteriormente ASA); la configuración de la política de grupo como split-dns, dns-server y split-tunnel-all-dns se aplica a ambos, a menos que se indique lo contrario.
Si una sección hace referencia explícitamente a versiones de cliente anteriores, se aplica el comportamiento descrito para Secure Client 4.2 y versiones posteriores (incluidas las versiones actuales de Secure Client 5.x). Cisco AnyConnect 4.x ha alcanzado el fin de su vida útil; migre a Cisco Secure Client para obtener las funciones de tunelación y DNS compatibles.
El comportamiento de la resolución DNS depende de tres factores:
Cuando ejecuta el comando de tunelización split-include, estas son las tres opciones de DNS disponibles en la política de grupo:
| Modo |
Descripción |
|---|---|
| DNS dividido | Las consultas DNS que coinciden con los nombres de dominio configurados en la cabecera (split-dns) se envían a través del túnel a los servidores DNS VPN (dns-server). Todas las demás consultas utilizan los servidores DNS de resolución del sistema operativo del cliente y del adaptador físico. |
| Tunnel-all-DNS | Solo se permite el tráfico DNS a los servidores DNS definidos por la cabecera. Configurado con split-tunnel-all-dns enable en la política de grupo. |
| DNS estándar | Todas las consultas DNS se envían primero a los servidores DNS VPN definidos por la cabecera. En una respuesta negativa (NXDOMAIN o sin respuesta), la resolución también puede probar los servidores DNS en el adaptador físico. |
Nota: El comando split-tunnel-all-dns se implementó por primera vez en ASA versión 8.2(5). Antes de esa versión, solo estaba disponible el DNS dividido o el DNS estándar. En todos los casos, las consultas DNS definidas para moverse a través del túnel pasan a cualquier servidor DNS definido por la cabecera. Si no se ha definido ningún servidor DNS en la cabecera, los parámetros DNS del túnel estarán en blanco.
Si no se definen los DNS divididos, todas las consultas DNS se envían a los servidores DNS definidos por la cabecera (sujeto al comportamiento específico del sistema operativo que se describe más adelante en este documento). Sin embargo, los comportamientos descritos en este documento pueden diferir en función del sistema operativo (SO).
Nota: Evite utilizar NSLookup o dig cuando pruebe la resolución de nombres en el cliente. En su lugar, utilice un navegador web o ejecute el comando ping. NSLookup y dig no utilizan el código auxiliar de resolución DNS del sistema operativo de la misma manera que la mayoría de las aplicaciones. Secure Client no fuerza cada solicitud DNS a través de una interfaz específica; permite o rechaza solicitudes basadas en la política split DNS y tunnel-all-DNS.
Para observar un comportamiento de conmutación por error correcto, realice pruebas sólo con aplicaciones que dependan de la resolución de DNS del sistema operativo nativo (navegadores, ping y la mayoría de las aplicaciones empresariales). Las herramientas que realizan su propia resolución DNS (NSLookup, dig y algunas aplicaciones personalizadas) pueden mostrar errores engañosos incluso cuando el cliente funciona correctamente.
La versión 2.4 de AnyConnect introdujo la reserva de DNS dividido (DNS dividido de mejor esfuerzo), que no es un DNS dividido verdadero y también se encontró en el cliente IPsec heredado.
Comportamiento de mejor esfuerzo (repliegue):
Esta es la razón por la que la función heredada se denomina reserva de DNS para la tunelización dividida, que no es un verdadero DNS dividido. Secure Client garantiza que sólo las consultas de dominio DNS dividido coincidentes entren en el túnel, pero sigue dependiendo del comportamiento de resolución del sistema operativo para la resolución final.
Problema de seguridad: Un nombre de dominio privado puede filtrarse a un servidor DNS público cuando el servidor DNS VPN devuelve NXDOMAIN o no se puede resolver; y la resolución vuelve a intentarlo en el adaptador físico.
DNS dividido verdadero: ID de bug de Cisco CSCtn14578
Resuelto en Microsoft Windows en AnyConnect 3.0(4235) y conservado en Secure Client 4.2+):
Nota: Solo los usuarios registrados de Cisco tienen acceso a las herramientas de errores internas de Cisco y a la información detallada de errores.
Cuando se inhabilita la tunelización dividida (configuración tunnel-all), el tráfico DNS se permite estrictamente a través del túnel.
La configuración tunnel-all-DNS (split-tunnel-all-dns enable en la política de grupo) envía todas las búsquedas de DNS a través del túnel, mientras que también se configura algún tipo de tunelización dividida, y el tráfico DNS se permite estrictamente a través de la interfaz de túnel.
Esto es coherente en todas las plataformas con una advertencia en Microsoft Windows: cuando se configura tunnel-all o tunnel-all-DNS, Secure Client permite el tráfico DNS estrictamente a los servidores DNS configurados en el gateway seguro (aplicado al adaptador VPN). Esta mejora de la seguridad se implementó con un verdadero DNS dividido. Si esto es problemático (por ejemplo, la actualización/registro de DNS debe alcanzar servidores DNS no VPN), complete estos pasos:
Cuando se habilitan split tunneling y tunnel-all-DNS, el DNS se intercepta en el núcleo y se bloquea si no sale de la interfaz VPN correcta. El módulo Secure Client Umbrella (anteriormente conocido como AnyConnect Roaming Security) puede verse afectado en redes en las que el DNS cifrado no está disponible. Esto se debe a que el módulo puede intentar utilizar DNS estándar a través de la interfaz LAN mientras tunnel-all-DNS requiere DNS a través de VPN.
De forma predeterminada, el módulo Umbrella utiliza DNS cifrado (puerto UDP 443), que generalmente no está bloqueado por tunnel-all-DNS. El problema aparece principalmente cuando el cifrado no está disponible y se utiliza DNS sin formato.
Recomendación: Agregue las direcciones de resolución de Cisco Umbrella a la lista de split-include si utiliza tunnel-all-DNS con el módulo Umbrella. O consulte el documento Habilitación de DNS de Todo el Túnel para Secure Client con Umbrella Module (ID del documento: 224809.)
Este problema de Microsoft Windows es más frecuente en estas condiciones:
Esto puede causar retrasos significativos en la resolución de nombres, especialmente cuando la cabecera envía muchos sufijos DNS. La resolución debe recorrer los sufijos y los servidores hasta que reciba una respuesta positiva.
Este problema se resuelve en AnyConnect 3.0(4235) y versiones posteriores de Secure Client. Consulte Cisco bug ID CSCtq02141 y Cisco bug ID CSCtn14578 para obtener detalles.
Nota: Solo los usuarios registrados de Cisco tienen acceso a las herramientas de errores internas de Cisco.
Habilite la tunelización split-exclude para una dirección IP de modo que el DNS local pueda utilizar el adaptador físico. Una dirección de la subred local del link 169.254.0.0/16 se utiliza comúnmente ya que es poco probable que el tráfico a esas direcciones atraviese la VPN.
Después de habilitar la tunelización split-exclude, habilite el acceso LAN local en el perfil o cliente del cliente y deshabilite tunnel-all-DNS. Este es un ejemplo de configuración de ASA/FTD:
access-list acl_linklocal_169.254.1.1 standard permit host 169.254.1.1
group-policy gp_access-14 attributes
split-tunnel-policy excludespecified
split-tunnel-network-list value acl_linklocal_169.254.1.1
split-tunnel-all-dns disable
exit
XML de perfil de cliente:
<LocalLanAccess UserControllable="true">true</LocalLanAccess>
También puede habilitar esto en la GUI de Secure Client: Preferencias → Activar Permitir acceso local (LAN) al utilizar VPN
Diferentes sistemas operativos cliente manejan DNS de manera diferente con tunelización dividida (sin DNS dividido) para Secure Client; en esta sección se describen dichas diferencias.
En Windows, la configuración de DNS se realiza por interfaz de red. Con la tunelización dividida, las consultas DNS pueden recurrir a los servidores DNS de adaptador físico después de que fallan en el adaptador de túnel VPN. Si se utiliza la tunelización dividida sin DNS dividido, la resolución interna y externa puede funcionar, ya que la resolución puede recurrir a servidores DNS externos. Se produjo un cambio significativo en Secure Client para Windows en la versión 4.2 después de la corrección para el Id. de error de Cisco CSCuf07885. Este comportamiento no se modifica en Secure Client 5.x.
Nota: Solo los usuarios registrados de Cisco tienen acceso a las herramientas de errores internas de Cisco.
Pre-Secure Client 4.2 (AnyConnect 4.1 y versiones anteriores):
Secure Client 4.2 y versiones posteriores:
El controlador de Secure Client no interfiere con la resolución DNS nativa. La resolución respeta el orden del adaptador de red; Secure Client es el adaptador preferido cuando la VPN está conectada.
Una consulta DNS se envía primero a través del túnel; si no se resuelve, la resolución puede probar la interfaz pública. La lista de acceso split-include debe incluir la subred que cubre los servidores DNS de túnel en las versiones anteriores a la 4.2. A partir de Secure Client 4.2, las rutas de host para los servidores DNS de túnel se agregan automáticamente como redes split-include (rutas seguras), por lo que la ACL split-include ya no requiere subredes de servidores DNS de túnel explícitas.
El mismo comportamiento de resolución que split-includes, túnel primero y, a continuación, repliegue de la interfaz pública. La lista de acceso de exclusión dividida no debe incluir la subred que cubre los servidores DNS del túnel. A partir de Secure Client 4.2, las rutas de host automáticas para los servidores DNS de túnel evitan errores de configuración comunes de split-exclude.
Split-DNS en Windows requiere tunelización split-include (túnel split-tunnel-policy tunnelspecified). No admite políticas de túnel split-exclude-only para la configuración split-DNS.
Cliente Pre-Secure 4.2:
Secure Client 4.2 y posterior (DNS dividido verdadero en Windows):
La documentación de administración de Secure Client 5.x agrega DNS dividido para configuraciones de exclusión dividida. Consulte la Guía del Administrador de Secure Client 5.x — Configure Split DNS for Split Exclude Tunneling para los requisitos de cabecera y política. Las reglas de aplicación en el nivel del sistema operativo se siguen aplicando una vez que el DNS dividido está activo.
Las aplicaciones o las funciones del sistema operativo que utilizan DNS sobre HTTPS (DoH) o DNS sobre TLS (DoT) pueden omitir la ruta de resolución de rutas internas de Windows que Secure Client filtra. Si el DNS dividido parece fallar para aplicaciones específicas pero funciona en un navegador, verifique si esas aplicaciones utilizan DNS cifrado o personalizado. Las pruebas estándar de split-DNS deberían utilizar la resolución del sistema operativo (navegador, ping), no NSLookup/dig.
En macOS, la configuración de DNS es global (no por interfaz). Si se utiliza la tunelización dividida sin DNS dividido, las consultas DNS a menudo no pueden alcanzar a los servidores DNS fuera del túnel como se esperaba, puede resolver sólo los nombres internos, no los nombres externos a través de la ruta pública. Esto se documenta en el ID de bug de Cisco CSCtf20226 y el ID de bug de Cisco CSCtz86314.
Soluciones alternativas:
El DNS dividido en macOS es compatible desde AnyConnect 3.1 en adelante, sujeto a estas condiciones:
Nota: Secure Client no administra principalmente la resolución de nombres a través de /etc/resolv.conf en macOS; configura los parámetros de DNS en el nivel del SO. macOS puede mantener resolv.conf actualizado por compatibilidad. Ejecute scutil —dns para ver la configuración de DNS efectiva.
Cuando Secure Client está conectado, solo los servidores DNS de túnel permanecen en la configuración DNS del sistema; las solicitudes solo se dirigen a los servidores DNS de túnel.
Secure Client no interfiere con la resolución nativa. Los servidores DNS de túnel son preferibles a los resolvers públicos, por lo que el primer intento de consulta pasa por el túnel. Debido a que DNS es global en macOS, las consultas no siempre usan de manera confiable DNS público fuera del túnel (Id. de error de Cisco: CSCtf2026).
A partir de Secure Client 4.2, las rutas de host para los servidores DNS de túnel se agregan automáticamente como rutas seguras.
El DNS dividido verdadero (similar a Windows) se aplica cuando:
El DNS dividido verdadero significa que los dominios de DNS dividido coincidentes se resuelven solamente a través del túnel y no se filtran a los resolvers externos.
Si split-DNS está habilitado sólo para un protocolo y se asigna una dirección de cliente para el otro protocolo, sólo se aplica la reserva de DNS para la tunelización dividida: Secure Client permite las consultas coincidentes a través del túnel (otras consultas pueden ser rechazadas para forzar la conmutación por fallas), pero no puede prevenir completamente la fuga de consultas de dominio DNS dividido enviadas en el clear a través del adaptador público.
Compatibilidad de plataforma (guía de administración de Secure Client): El DNS dividido completo es compatible con Windows y macOS. Linux tiene una compatibilidad limitada (consulte la sección Linux).
Cuando Secure Client está conectado, sólo los servidores DNS de túnel se mantienen en la configuración DNS del sistema.
Secure Client no interfiere con la resolución nativa. Se prefieren los servidores DNS de túnel; el intento de resolución inicial pasa por el túnel.
Si split-DNS está habilitado, solamente se aplica el respaldo DNS para la tunelización dividida en Linux:
La guía de administración de Secure Client indica que el DNS dividido limitado en Linux: solo las solicitudes DNS tunelizadas están totalmente sujetas a la política de DNS dividido; algunas consultas fuera del túnel no pueden cumplir con la política de DNS dividido.
Secure Client admite un atributo personalizado tunnel-from-any-source, por lo que los paquetes con cualquier dirección de origen se pueden enrutar en modo split-include o split-exclude dentro de las instancias de VM o los contenedores Docker. Consulte la Guía del Administrador de Secure Client 5.x para obtener detalles de configuración.
El comportamiento de iOS difiere de macOS y no es idéntico a Windows. Si la tunelización dividida se configura sin DNS dividido, las consultas DNS suelen utilizar el servidor DNS global definido para el dispositivo, no el mismo patrón de reserva que Windows.
Impacto práctico: Las entradas de dominio DNS dividido suelen ser necesarias para una resolución de nombres interna confiable cuando se utiliza la tunelización dividida sin DNS dividido.
Corrección histórica: Id. de error de Cisco CSCtq09624 - (AnyConnect para iOS 2.5.4038 y versiones posteriores.) El cliente seguro actual para iOS obedece al mismo requisito general; configure split DNS para dominios internos cuando utilice split-include/split y exclude sin depender de la reserva de estilo Windows.
Nota: Las consultas de DNS de iOS ignoran los dominios .locales (Id. de error de Cisco CSCts89292).
Apple trata esto como un comportamiento diseñado; no espere una resolución .local a través de un DNS dividido estándar en iOS. En iOS, el comportamiento de DNS dividido de Secure Client también difiere de otras plataformas cuando la tunelización dividida se combina con ciertas configuraciones de lista de DNS dividido. Consulte la sección Guía de Secure Client Administrator Comportamiento de la resolución de DNS dividido con túnel dividido para combinaciones de políticas específicas de iOS (split-dns none, default-domain, etc.).
La tunelización dividida dinámica resuelve los FQDN en el momento de la conexión o a demanda, y ajusta el ruteo y los filtros para el tráfico a los dominios especificados. Esto se incluye o se excluye del túnel sin listas de IP estáticas.
| Función | Descripción |
|---|---|
| Exclusión de división dinámica | Los dominios (example.com) se excluyen del túnel en tiempo de ejecución cuando las aplicaciones resuelven esos nombres. |
| La división dinámica incluye | Los dominios se incluyen dinámicamente en el túnel. |
| División dinámica mejorada | Las listas de dominios de inclusión/exclusión combinadas con reglas de precedencia (como excluir example.com, pero incluir mail.example.com). |
La tunelización dividida dinámica utiliza la resolución DNS para impulsar los cambios de ruteo. Se configura a través de los atributos personalizados de Secure Client en la cabecera (por ejemplo, dynamic-split-exclude-dominios, dynamic-split-include-dominios).
La tunelización dividida dinámica se aplica a las políticas tunnel-all y split-exclude (exclusión dinámica) o split-include (inclusión dinámica). No reemplaza la política de DNS dividido, sin embargo, la complementa: split DNS controla qué consultas se tunelizan; la tunelización dividida dinámica controla qué tráfico IP se tuneliza en función de los nombres resueltos. Consulte los detalles de configuración: Configure Dynamic Split Tunneling y la Guía del Administrador de Secure Client 5.x.
Fallo de exclusión dividido (Secure Client 5.x): El atributo personalizado opcional SplitExcludeFailoverEnabled enruta el tráfico a través de la VPN cuando la ruta pública no tiene conectividad con los destinos de exclusión dividida. Consulte la guía del administrador para obtener información sobre la configuración de atributos personalizados.
La siguiente tabla se aplica sólo a las implementaciones heredadas que aún ejecutan clientes obsoletos:
| Versión | Relevancia |
|---|---|
| AnyConnect 2.4 | Introducción de la reserva de DNS dividido de mejor esfuerzo |
| AnyConnect 2.5 (iOS) | ID de falla de funcionamiento de Cisco: Alineación DNS de iOS CSCtq09624 |
| AnyConnect 3.0 (4235) | DNS dividido verdadero en Windows; Correcciones de rendimiento de DNS |
| AnyConnect 3.1 (macOS) | Compatibilidad con DNS dividido con condiciones IPv4/IPv6 |
| AnyConnect 4.2 | Id. de error de Cisco: aplicación basada en el adaptador CSCuf07885; Automatic Tunnel DNS Host Routers |
Implemente Secure Client 5.x en todas las plataformas compatibles para las correcciones y funciones actuales.
Nota: Solo los usuarios registrados de Cisco tienen acceso a las herramientas de errores internas de Cisco.
| Revisión: | Fecha | Comentarios |
|---|---|---|
| 4.0 | 28 de julio de 2026 | Actualización sustantiva completa: Marca Secure Client, actualización de la plataforma, tunelación dividida dinámica, Umbrella/tunnel-all-DNS, correcciones de errores tipográficos y configuraciones, enlaces relacionados corregidos |
| 3.0 | 23 de mayo de 2024 | Recertificación (Cisco.com) |
| 1.0 | 12 de junio de 2014 | Versión inicial |
| Revisión | Fecha de publicación | Comentarios |
|---|---|---|
4.0 |
10-Aug-2026
|
Introducción actualizada, ortografía, gramática, URL fijas, líneas horizontales insertadas en secciones separadas para facilitar la lectura y errores de CCW corregidos. |
3.0 |
23-May-2024
|
Recertificación |
1.0 |
12-Jun-2014
|
Versión inicial |