Cómo configurar el reenvío condicional de DNS y las políticas de DNS en Windows Server

Jugando con DNS en Windows Server: una mirada al mundo real

Intentar que el DNS haga exactamente lo que quieres en Windows Server puede ser un poco complicado. Ya sea que intentes dividir las respuestas DNS según la ubicación del cliente, bloquear ciertas consultas o simplemente optimizar la resolución de nombres interna, no siempre es sencillo. La mayoría de las configuraciones que he probado terminan necesitando una combinación de reenvíos condicionales y políticas DNS. Estas herramientas pueden ayudar a enrutar las consultas de forma más inteligente, asegurando que las aplicaciones internas permanezcan internas y las solicitudes externas, sin que tengan que atravesar internet. Si alguna vez te has preguntado cómo configurar esto correctamente, especialmente en un entorno más dinámico, estás en el lugar correcto. Al final, sabrás cómo crear reglas realmente útiles, y no solo manipular los valores predeterminados.

Cómo solucionar el reenvío condicional de DNS en Windows Server

Configurar un reenvío condicional manualmente

Cuando las solicitudes DNS de un dominio específico, por ejemplo corp.woshub.com, necesitan ir a un lugar especial, la mejor opción es configurar un reenvío condicional. Esto resulta útil cuando se desea un control estricto sobre la resolución interna del dominio, sin necesidad de enviar esas solicitudes por internet. Además, suele agilizar el proceso y evitar fugas de DNS. Así es como funciona en Windows Server 2019 (pero prácticamente igual en 2016/2022).

  • Primero, abra la consola del Administrador de DNS escribiendo dnsmgmt.mscen el cuadro Ejecutar ( Win + R) o Administrador del servidor.
  • Haga clic derecho en Reenviadores condicionales y seleccione Nuevo reenviador condicional.
  • En el cuadro «Dominio DNS», escriba corp.woshub.com. Esto le indica al servidor DNS qué dominio redireccionar.
  • En el cuadro «Direcciones IP de los servidores maestros», agregue «<nombre de dominio 10.1.10.11>».Aquí se dirigirán las consultas DNS.
  • Marque la casilla Almacenar este reenvío condicional en Active Directory si desea que esté disponible en todo el dominio (pero tenga en cuenta que, en algunas configuraciones, es posible que no se replique inmediatamente o que requiera una actualización de GP).
  • Establezca el alcance de la replicación: elija Todos los servidores DNS en este bosque o Dominio según sus necesidades.

Una vez hecho esto, tu servidor DNS reenviará todas corp.woshub.comlas consultas directamente a esa IP, en lugar de realizar búsquedas recursivas. Un truco antiguo, pero sorprendentemente efectivo; aunque, claro, debes mantener tus servidores DNS en buen estado, o simplemente no funcionará.

Cómo hacerlo con PowerShell

Para quienes prefieren los scripts o simplemente detestan navegar por la interfaz gráfica, PowerShell es su aliado. El siguiente comando crea un reenvío condicional para dmz.woshub.comapuntar a servidores DNS específicos. Debe ejecutarlo en el servidor DNS donde desee configurarlo:

Add-DnsServerConditionalForwarderZone -Name dmz.woshub.com -MasterServers 192.168.1.11, 192.168.101.11 -ReplicationScope Forest

Es muy útil porque puedes añadir varias IP si tu infraestructura DNS es multiservidor, y el alcance se puede configurar como Bosque o Dominio. En algunas configuraciones, ejecutar este comando puede fallar al principio, así que no te sorprendas si tienes que ejecutar PowerShell como administrador o reiniciar el DNS.

Para enumerar todos los reenvíos DNS configurados, incluidos los condicionales, puede ejecutar:

$DNSServer = "DC01" Get-WMIObject -ComputerName $DNSServer -Namespace "root\MicrosoftDNS" -Class "MicrosoftDNS_Zone" | Select-Object Name, MasterServers, DsIntegrated, ZoneType | where {$_. ZoneType -eq 4} | Format-Table -AutoSize

Uso de políticas DNS para un enrutamiento más inteligente

Aquí es donde la cosa se pone más interesante: las políticas DNS en Windows Server 2016+ permiten responder de forma diferente según quién y dónde provenga la solicitud. Es como personalizar las respuestas DNS con reglas, según la IP del cliente, la hora del día o incluso el tipo de consulta. Claro que no es la función más sencilla de configurar, sobre todo porque todas las configuraciones se realizan mediante PowerShell. Pero una vez configuradas, son muy eficaces para escenarios como proxies locales, balanceo de carga o filtrado DNS.

Supongamos que desea que los clientes de cada sucursal resuelvan proxy.woshub.comde forma diferente, apuntando a su IP proxy local. Primero, debe registrar cada subred como » subred de cliente » y luego crear ámbitos de zona para cada ubicación. A continuación, un breve resumen:

  • Ejecute comandos como este para registrar subredes: haga esto en sus servidores DNS:
Add-DnsServerClientSubnet -Name "BER_DNS_Subnet" -IPv4Subnet "192.168.1.0/24" Add-DnsServerClientSubnet -Name "HH_DNS_Subnet" -IPv4Subnet "192.168.11.0/24" Add-DnsServerClientSubnet -Name "MCH_DNS_Subnet" -IPv4Subnet "192.168.21.0/24"
  • Cree diferentes ámbitos de zona para cada rama:
  • Add-DnsServerZoneScope -ZoneName "woshub.com" -Name "BERZoneScope" Add-DnsServerZoneScope -ZoneName "woshub.com" -Name "HHZoneScope" Add-DnsServerZoneScope -ZoneName "woshub.com" -Name "MCHZoneScope"
  • Agregue registros de recursos (registros A) que apunten a servidores proxy locales, con etiquetas de alcance para la división:
  • Add-DnsServerResourceRecord -ZoneName "woshub.com" -A -Name proxy -IPv4Address "192.168.1.10" -ZoneScope "BERZoneScope" Add-DnsServerResourceRecord -ZoneName "woshub.com" -A -Name proxy -IPv4Address "192.168.11.10" -ZoneScope "HHZoneScope" Add-DnsServerResourceRecord -ZoneName "woshub.com" -A -Name proxy -IPv4Address "192.168.21.10" -ZoneScope "MCHZoneScope"

    Ahora, para que el DNS responda según la subred del cliente, cree políticas como esta:

    Add-DnsServerQueryResolutionPolicy -Name "BERResolutionPolicy" -Action ALLOW -ClientSubnet "eq, BER_DNS_Subnet" -ZoneScope "BERZoneScope, 1" -ZoneName woshub.com Add-DnsServerQueryResolutionPolicy -Name "HHResolutionPolicy" -Action ALLOW -ClientSubnet "eq, HH_DNS_Subnet" -ZoneScope "HHZoneScope, 1" -ZoneName woshub.com Add-DnsServerQueryResolutionPolicy -Name "MCHResolutionPolicy" -Action ALLOW -ClientSubnet "eq, MCH_DNS_Subnet" -ZoneScope "MCHZoneScope, 1" -ZoneName woshub.com

    Estas políticas indican a tu servidor DNS que responda con direcciones IP locales según el origen de la consulta, lo cual es prácticamente mágico una vez que funciona. Ten en cuenta que todos estos comandos deben ejecutarse en cada servidor DNS al que quieras aplicar políticas; no se trata de una replicación fluida. Y, como Windows no las envía mediante AD, suele ser necesaria una configuración manual o scripts en cada equipo.

    Resumen

    Sinceramente, jugar con DNS de esta manera no es la experiencia más sencilla, pero una vez que le coges el truco, tu red puede comportarse de forma mucho más inteligente. Los reenvíos condicionales son sencillos pero esenciales; las políticas DNS son más flexibles, pero también más complejas. Si quieres asegurarte de que el tráfico interno se mantenga interno o que las sucursales resuelvan los problemas localmente, estos métodos son fundamentales. Recuerda: la paciencia es clave, y a veces, reiniciar el sistema o el servicio DNS ayuda a que todo vuelva a sincronizarse.

    Resumen

    • Utilice reenvíos condicionales para reenviar rápidamente dominios a servidores DNS específicos.
    • Configure comandos de PowerShell para automatizar o modificar las reglas de reenvío.
    • Implementar políticas de DNS para respuestas de DNS basadas en la ubicación, equilibrio de carga o filtrado.
    • Prepárese para algo de prueba y error: la configuración de DNS en Windows Server puede ser complicada.

    Resumen

    Esto puede parecer excesivo al principio, pero realmente puede optimizar tu DNS interno. Ya sea que simplemente estés redireccionando un dominio o creando reglas complejas basadas en la ubicación del cliente, estos pasos te dan el control. Con suerte, esto te permitirá poner en marcha una o dos configuraciones en lugar de tener que estar haciendo ajustes sin parar. Cruzo los dedos para que esto ayude a alguien a ahorrar algunas horas; a mí me funcionó, quizás a ti también.