Comment utiliser la commande DNSCMD pour résoudre l’erreur DHCID not mine.


Dans notre infrastructure réseau, nous utilisons Appareils Infoblox L’IP est fournie et le DNS Microsoft doit être mis à jour pour une haute disponibilité.Lors du processus de migration de notre service DHCP, nous avons rencontré une erreur Le mappage de transfert de XXX à XXX a échoué : il y a un enregistrement d’adresse mais pas de DHCPID, pas le mien.

Infoblox Fournir des appliances physiques et virtuelles capables de fournir des services DNS, DHCP et IPAMCes appareils sont particulièrement robustes et adaptés aux grands réseaux.

Infoblox propose également d’autres services tels que Protection DNS, automatisation du réseau,… .

Dans notre exemple, nous avons uniquement activé les services DHCP et IPAM. Pour certaines gammes, nous devons mettre à jour le DNS Windows.

Vous trouverez la dernière version du script dans mon dépôt Github pour récupérer le script sur : https://github.com/quick-tutoriel (n’hésitez pas à vous abonner).

Pour certaines machines, vous pouvez voir cette erreur dans les journaux lors de la migration d’un service DHCP déjà enregistré :

Le mappage de transfert de XXX à XXX a échoué : il y a un enregistrement d’adresse mais pas de DHCPID, pas le mien.

Il s’agit d’une erreur non bloquante lors de la mise à jour des enregistrements DNS de la machine sur le serveur (elle n’empêche pas la mise à jour de l’IP, mais elle ne met pas à jour le DNS). Le serveur DNS a tenté de mettre à jour l’enregistrement mais a trouvé le même enregistrement avec un identifiant différent.
DHCP Est un enregistrement de ressource (RR) stocké dans le DNS qui mappe les noms pour éviter les enregistrements en double.
DHCP utilise cet enregistrement de ressource pour stocker l’identifiant de l’ordinateur et d’autres informations de nommage, telles que l’enregistrement A/AAAA de l’ordinateur.

L’emplacement unique de DHCP dans le processus d’enregistrement du nom lui permet de demander cette correspondance, puis de refuser les enregistrements à partir d’un ordinateur avec une adresse différente qui tente d’enregistrer le nom à l’aide d’un enregistrement DHCID existant.

A Voir  Transférer des données d'un appareil Android vers l'iPhone.

L’enregistrement DHCP empêche les prises de contrôle de nom suivantes :

  • Le client occupe le nom du serveur,
  • un nom de serveur est occupé par un autre serveur,
  • un autre client occupe un nom de client,
  • Le serveur occupe le nom du client.

Pour corriger cette erreur, il suffit Effacer manuellement les enregistrements sur le serveur DNS Utilisez un outil de gestion DNS.

Cette approche peut rapidement devenir intimidante, je vais donc vous montrer comment utiliser l’utilitaire DNSCMD dans un script PowerShell pour la gestion DNS. Tout d’abord, regardons quelques-unes des fonctionnalités de cet outil.

  • Récupérez des informations sur les serveurs DNS :

#dnscmd ip-srv-dns/info

  • Récupérez les différentes zones du serveur DNS :

#dnscmd ip-srv-dns /EnumZone

  • Récupérer des informations à partir d’un enregistrement spécifique :

#dnscmd ip-srv-dns /EnumRecords zone d’enregistrement #dnscmd 10.120.0.11 /EnumRecords chu.fr CGR4

Nous avons ici l’adresse IP de l’enregistrement CGR4. Mais celui-ci a été créé avant la migration du serveur DHCP. Il faut donc l’enlever.

  • Supprimer un enregistrement spécifique :

#dnscmd ip-srv-dns /RecordDelete record area record type ip-recording #dnscmd ip-srv-dns /RecordDelete chu.fr A CGR4 10.205.1.38

Pour résumer lorsque l’erreur se produit Forward map from XXX to XXX FAILED: A un enregistrement d’adresse mais pas de DHCID, pas le mien sur votre serveur DHCP et vous avez un serveur DNS Windows :

  • 1°) Recherchez les enregistrements existants à l’aide de la commande suivante : dnscmd ip-srv-dns /EnumRecords
  • 2°) Supprimez l’enregistrement dans DNS avec la commande suivante : dnscmd ip-srv-dns /RecordDelete
  • 3°) Attendez que le bail DHCP soit renouvelé ou créez une nouvelle entrée avec la commande dnscmd ip-srv-dns /RecordAdd

Maintenant, dans les journaux de votre serveur DHCP, vous devriez voir ces messages lors du renouvellement du bail de la machine :

Pour aller plus loin! ! !
Si vous avez plusieurs appareils à gérer, vous pouvez créer un script powershell qui supprime et recrée les enregistrements. Voici un exemple de script que vous pouvez adapter à vos besoins. Par exemple, supprimez simplement des enregistrements sans les recréer.

A Voir  Les meilleurs sites d'anime de Jetanime de 2022

Script pour mettre à jour DNSRecords.ps1# Paramètres d’environnement $DNSServer = « ip-address-server » $DNSZone = « zone-of-your-server » $InputFile = « path-to-your-csv-file » # Lire le fichier d’entrée au format nom, type , adresse avec une ligne d’en-tête $records = Import-CSV $InputFile # Maintenant, nous parcourons le fichier pour supprimer et recréer des enregistrements # DNSCMD n’a pas d’option de modification, nous devons donc utiliser /RecordDelete puis /RecordAdd ForEach ($record in $records ) { # Capturer le contenu de l’enregistrement en tant que variable $recordName = $record.name $recordType = $record.type $recordAddress = $record.address # Construire notre syntaxe de commande DNSCMD DELETE $cmdDelete = « dnscmd $DNSServer /RecordDelete $DNSZone $ recordName $recordType /f » # Construire notre DNSCMD ADD Command syntax $cmdAdd = « dnscmd $DNSServer /RecordAdd $DNSZone $recordName $recordType $recordAddress » # Maintenant, nous exécutons la commande Write-Host « Exécutez la commande suivante : $cmdDelete » Invoke – L’expression $cmdDelete Write-Host » exécute la commande suivante : $cmdAdd » appelle l’expression $cmdAdd }

Le script prendra en entrée 1 fichier csv avec en colonnes (et dans cet ordre) :

  • Nom du processeur (nom de l’enregistrement DNS)
  • type d’enregistrement (A : adresse de l’hôte, CNAME : alias, PTR, NS, MX, …)
  • adresse IP (enregistrement de l’adresse IP)

Exemple de fichier .csv :

Si vous rencontrez cette erreur lors de l’exécution du script :

vous devez Permet d’exécuter des scripts powershell sur votre ordinateur. Pour ce faire dans un shell PowerShell, tapez la commande suivante :

#Get-ExecutionPolicy #Set-ExecutionPolicy Illimité

Ensuite, vous pouvez exécuter le script.

duper! ! !
Avant de lancer le script, assurez-vous que le fichier .csv est bien reconnu par le script. Pour vérifier le fichier csv, vous pouvez utiliser la commande suivante :

#Import-csv nom-du-fichier-csv

Si la colonne s’affiche, votre fichier est bon, sinon remplacez ; traverser , Erreur classique.

  • 1: Le fichier csv n’est pas configuré correctement et aucune colonne n’apparaît.
  • 2 : Le fichier csv est bien configuré et toutes les colonnes sont clairement affichées avec les valeurs appropriées.

Vous trouverez la dernière version du script dans mon dépôt Github pour récupérer le script sur : https://github.com/quick-tutoriel (n’hésitez pas à vous abonner).

c’est tout.