Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo le ayuda a solucionar el problema en el que se registran varios registros con la misma dirección IP. El problema se debe a las configuraciones del scavenging del sistema de nombres de dominio (DNS) y la duración de concesión del Protocolo de configuración dinámica de host (DHCP).
Escenario
Considere el siguiente escenario:
En un servidor DHCP, tiene las siguientes configuraciones:
- Un ámbito DHCP tiene su duración de concesión establecida en los ocho días predeterminados.
- El ámbito DHCP es bajo en las direcciones IP disponibles.
- El cliente A no renueva su concesión de direcciones IP en ocho días y expira.
- El cliente B solicita una nueva dirección IP.
- El servidor DHCP asigna al cliente B la dirección que se alquila al cliente A.
Este escenario es típico y todo funciona correctamente.
En un servidor DNS, tiene las siguientes configuraciones:
- Una zona DNS integrada de Active Directory (AD) está establecida en registros de recursos obsoletos.
- El scavenging de registros DNS usa la configuración predeterminada: intervalo sin actualización = 7 días, intervalo de actualización = 7 días y período de scavenging = 7 días.
- El cliente A renovó su registro DNS hace ocho días cuando la concesión DHCP del cliente se actualizó por última vez.
- De forma predeterminada, el cliente A es el propietario de su registro DNS, por lo que el servidor DHCP no puede eliminar el registro.
- El cliente B registra su registro DNS con la nueva dirección IP recibida del servidor DHCP, que es el mismo que el registro registrado en el cliente A.
En este escenario, el servidor DNS no puede vengar el registro DNS del cliente A durante otros seis días. Ahora, el cliente A y el cliente B tienen la misma dirección IP registrada en DNS.
Análisis de problemas
Se producen varios problemas debido al mismo registro DNS para nombres diferentes. Por ejemplo, problema de instalación con clientes de Microsoft System Center Configuration Manager (SCCM).
Este es otro ejemplo. Cuando accede a un recurso compartido en el cliente A, recibe el siguiente mensaje de error, incluso cuando el cliente A no está activado.
Este error se debe a que se envía un vale Kerberos destinado a un equipo a otro equipo. En la sección siguiente se explica todo el proceso.
Flujos de red durante el error de inicio de sesión
El equipo (Infra-App1) realiza una consulta DNS para client-a.corp.contoso.com
. Las respuestas DNS se devuelven con la dirección IP 10.0.0.100.
En lo que respecta a DNS, el resultado es correcto. El cliente A tiene la lista 10.0.0.100 como su dirección IP, por lo que el cliente B.
A continuación, el equipo Infra-App1 solicita un vale kerberos. La consulta DNS es para el cliente A, por lo que la solicitud del servicio de concesión de vales (TGS) también es para el cliente A.
La solicitud TGS:
Respuesta del controlador de dominio:
Una vez que el equipo Infra-App1 recibe el vale, el equipo intenta conectarse al cliente A. El vale Kerberos se incluye en este marco.
Por último, el cliente remoto devuelve un error porque el equipo Infra-App1 se conecta al cliente B.
Se espera el error porque debe presentar el vale correcto a la cuenta correcta para que Kerberos funcione.
Nota:
Para obtener más información sobre Kerberos, consulte Kerberos para el administrador ocupado.
Este problema no se produce si usa la dirección IP en lugar del nombre de dominio completo (FQDN), ya que se usa la autenticación new Technology LAN Manager (NTLM) en lugar de la autenticación Kerberos. Cuando se usa la dirección IP para conectarse al cliente, no se supone a qué cliente se está conectando. Por lo tanto, el equipo debe negociar NTLM primero. En el ejemplo de la sección escenario , Kerberos devuelve una respuesta válida, por lo que el equipo no conmuta por error para usar NTLM.
Resoluciones
Dado que este problema está relacionado con los registros DNS obsoletos, puede usar diferentes resoluciones para evitar que se produzca el problema.
Nota:
Para cada resolución, se recomienda reducir el intervalo de scavenging a uno a tres días. El valor predeterminado de siete días amplía el período durante el que los registros no válidos permanecen en DNS.
Resolución 1
Aumente la duración de la concesión DHCP para que coincida con los intervalos sin actualización y actualización . En el ejemplo de la sección escenario , puede aumentar la concesión dhcp a 14 días.
Ventaja:
Las concesiones DHCP permanecen hasta que se aplica scavenging al registro DNS. Ningún otro cliente recibe y registra la dirección en DNS.
Desventaja:
Si el ámbito DHCP ya está bajo en las direcciones, las direcciones IP podrían agotarse.
Es posible que un pequeño porcentaje de registros no se pequeque antes de que expire la concesión debido a pequeñas diferencias de tiempo. Establecer el intervalo de scavenging en un día garantiza que los registros obsoletos se quiten el día siguiente.
Resolución 2
Reduzca los intervalos sin actualizar y actualizar para que coincidan con la concesión dhcp. En el ejemplo de la sección de escenario, puede reducir no actualizar y actualizar a cuatro días.
Ventaja:
El registro DNS existente se aplica antes a la obtención de los mismos resultados que en la primera solución.
Desventaja:
Si se trata de zonas DNS integradas de AD, aumenta la frecuencia de replicación de AD. Esto se debe a que los clientes actualizarán los registros DNS con más frecuencia. Por ejemplo, cada cuatro días en lugar de cada siete días.
Es posible que un pequeño porcentaje de registros no se pequeque antes de que expire la concesión debido a pequeñas diferencias de tiempo. Establecer el intervalo de scavenging en un día garantiza que los registros obsoletos se quiten el día siguiente.
Resolución 3
Permitir que el servidor DHCP registre las direcciones en nombre de los clientes.
Ventaja:
El servidor DHCP puede quitar el registro DNS en cuanto expire la concesión. Si la configuración es correcta, no debe existir ningún registro duplicado.
Desventaja:
La configuración está más implicada.
Es necesario configurar una cuenta de servicio para ejecutar el servicio DHCP o todos los servidores DHCP deben estar unidos al grupo DNSUpdateProxy (menos seguro). La configuración agrega complejidad.
Para ello, consulte Configuración de actualizaciones dinámicas de DNS en Windows.
Experimente con la duración de la concesión DHCP, el intervalo sin actualización y el intervalo de actualización . Es posible que encuentre una necesidad de salir completamente de los valores predeterminados. Las duraciones de concesión de DHCP bajas (en las horas) a veces se usan para subredes inalámbricas. Sin embargo, tenga en cuenta el rendimiento de los servidores, especialmente si tiene un servidor DNS establecido en scavenge cada pocas horas en zonas DNS grandes.
Identificación de registros con direcciones IP duplicadas
En esta sección se presenta cómo usar PowerShell para identificar los registros duplicados. El script tiene como objetivo buscar registros en DNS que contengan direcciones IP duplicadas.
#Import the Active Directory Module
import-module activedirectory
#Define an empty array to store computers with duplicate IP address registrations in DNS
$duplicate_comp = @()
#Get all computers in the current Active Directory domain along with the IPv4 address
#The IPv4 address is not a property on the computer account so a DNS lookup is performed
#The list of computers is sorted based on IPv4 address and assigned to the variable $comp
$comp = get-adcomputer -filter * -properties ipv4address | sort-object -property ipv4address
#For each computer object returned, assign just a sorted list of all
#of the IPv4 addresses for each computer to $sorted_ipv4
$sorted_ipv4 = $comp | foreach {$_.ipv4address} | sort-object
#For each computer object returned, assign just a sorted, unique list
#of all of the IPv4 addresses for each computer to $unique_ipv4
$unique_ipv4 = $comp | foreach {$_.ipv4address} | sort-object | get-unique
#compare $unique_ipv4 to $sorted_ipv4 and assign just the additional
#IPv4 addresses in $sorted_ipv4 to $duplicate_ipv4
$duplicate_ipv4 = Compare-object -referenceobject $unique_ipv4 -differenceobject $sorted_ipv4 | foreach {$_.inputobject}
#For each instance in $duplicate_ipv4 and for each instance
#in $comp, compare $duplicate_ipv4 to $comp If they are equal, assign
#the computer object to array $duplicate_comp
foreach ($duplicate_inst in $duplicate_ipv4)
{
foreach ($comp_inst in $comp)
{
if (!($duplicate_inst.compareto($comp_inst.ipv4address)))
{
$duplicate_comp = $duplicate_comp + $comp_inst
}
}
}
#Pipe all of the duplicate computers to a formatted table
$duplicate_comp | ft name,ipv4address -a
Este es un ejemplo de la salida:
Este script de PowerShell es sencillo. Considere el script como ejemplo. Este script solo devuelve direcciones IP duplicadas registradas en cuentas de equipo reales en AD. Tenga en cuenta que el script consulta todos los equipos de un dominio de AD. A continuación, realiza una consulta DNS para obtener la dirección IP. Si tiene muchos equipos, use el -searchbase
modificador con get-adcomputer
para limitar el número de equipos devueltos cada vez. Si el equipo no está unido a AD, el equipo no se devuelve desde el get-adcomputer
comando .