samedi 10 octobre 2009

Créez une infrastructure DNS dynamique au moyen d’un fichier batch

Pour mettre en place un AD (Active Directory), nous avons maintenant besoin d’une infrastructure DDNS (dynamic DNS).
Dans mon exemple, je crée une forêt à un seul domaine appelée ecm.era qui contient deux DC : UpDC..ecm.era à 10.160.1.2 et DownDC.ecm.era à 10.70.7.2. Les subnets 10.160 et 10.70 utilisent tous deux un masque subnet 255.255.255.0 (classe c) et je veux que chaque machine soit à la fois un DC et un serveur DNS. Les deux systèmes bénéficient de copies récemment installées de Windows 2003 ou de Win2K Server, ainsi que du serveur DNS de Microsoft, livré avec les deux OS. La pile IP de chaque système est déjà constituée à l’aide des fichiers batch des articles précédents et le suffixe DNS de chaque système est défini comme bigfirm.biz. L’objectif de mon dernier fichier batch est d’installer DNS sur chaque système. UpDC sera le serveur DNS primaire pour ecm.era et pour une zone de consultation inversée 10. 160.1.x, et ce sera le serveur DNS secondaire pour une zone de consultation inversée 10.70.7.x. DownDC sera un serveur DNS secondaire pour ecm.era et pour la zone de consultation inversée 10.160.1.x, et ce sera le serveur DNS primaire pour la zone de consultation inversée 10.70.70.x.



  • dnscmd
    Mon outil primaire pour la configuration DNS ligne de commande est Dnscmd qui est le dossier Windows 2003 Support Tools et le Microsoft Windows 2000 Resource Kit. Je dois installer cet outil sur UptownDC et DowntownDC. Dnscmd est puissant mais a une syntaxe plutôt compliquée, aussi j’espère que les exemples de ces fichiers batch vous seront utiles.Premièrement, pour créer la zone ecm.era, utilisez la commande
    dnscmd localhost /zoneadd ecm.era /primary /file ecm.era.dns

    Le paramètre localhost indique à Dnscmd le serveur DNS auquel il doit appliquer la commande. Comme j’utilise ce fichier batch directement sur UpDC, localhost suf f i t . Cependant, la possibilité d’action à distance de l’outil signifie que je pourrais simplement installer Dnscmd sur une boîte Windows XP et exécuter le fichier batch pour mettre en place UpDC et DownDC – en supposant que je puisse m’y connecter et que j’aie établi les références appropriées. Le paramètre /zoneadd crée une nouvelle zone sur localhost ; dans ce cas, le nom de la zone est ecm.era. Le paramètre /primary fait de la zone une zone primaire. L’objectif du paramètre /file bigfirm. dns sera clair pour quiconque a déjà utilisé le wizard pour établir une zone DNS. Microsoft DNS a besoin d’un fichier dans lequel stocker l’information de la zone. ecm.era résidera dans \windows\system32\dns\ecm.era (dans Windows 2003) ou \winnt \system32\dns\ecm.era (dans Win2K).




  •  premier script 
En lieu et place du paramètre /primary, vous pouvez utiliser le paramètre /secondary pour créer une zone DNS secondaire ou le paramètre /DsPrimary pour créer des zones intégrées à l’AD. Si vous me demandez pourquoi je ne crée pas une zone intégrée à l’AD, souvenez- vous qu’AD n’est pas encore opérationnel dans mon cas. Je pourrai passer de primary à intégré à l’AD plus tard, en utilisant la commande

dnscmd localhost /zoneresettype /DsPrimary

 La commande dnscmd /zoneadd parachève presque la préparation initiale de la zone, mais il reste encore une tâche à accomplir : valider les mises à jour dynamiques. Pour cela, utilisez la commande
dnscmd localhost /config ecm.era /AllowUpdate 1

 Ensuite, je veux dire à la zone bigfirm. biz qu’elle aura deux serveurs DNS – Name Servers (NS) en jargon DNS – appelés uodc et downdc. Microsoft DNS installe automatiquement un enregistrement NS pour le serveur que vous utilisez comme serveur DNS primaire d’une zone, donc uodc est couvert ; mais je dois ajouter l’enregistrement DNS pour downdc. Pour cela, j’insèrerai en principe un enregistrement NS dans la zone, de la manière suivante : @ ns downdc.ecm.era

Dans cet enregistrement, le symbole arobas (@) signifie que cet enregistrement fait référence à la zone courante, ns indique que vous ajoutez un NS à cette zone et downdc.bigfirm. biz est le nom de ce NS. Toutefois, le seul fait de dire à la zone ecm.era que j’ai un NS appelé downdc.bigfirm. biz ne termine pas la tâche. Le serveur DNS hébergeant la zone a aussi besoin de l’adresse IP de Downtown- DC. C’est pourquoi je vais aussi inclure un enregistrement hôte pour dire à la zone que downdc.ecm.era a une adresse IP de 10.0.02 : downdc A 10.70.7.2

Vous pouvez aussi utiliser la commande Dnscmd /recordadd pour ordonner au fichier batch d’insérer les enregistrements NS et hôte :

dnscmd localhost /recordadd ecm.era @ NS downdc.ecm.era dnscmd localhost /recordadd ecm.era downdc A 10.70.7.2 
  •  Serveur de nom 
Comme auparavant, la commande commence par nommer l’hôte (localhost, dans cet exemple) auquel s’appliquera l’opération. Ensuite, l’option /recordadd a besoin de la zone à laquelle s’ajoutera l’enregistrement, suivie par l’enregistrement particulier à ajouter.
Vous vous demandez peut-être pourquoi je me soucie des enregistrements NS. Si vous avez déjà eu l’occasion de bricoler avec un serveur DNS basé sur Microsoft, vous savez probablement qu’il n’est pas vraiment nécessaire de nommer les serveurs DNS secondaires d’une zone donnée. Je vois souvent des zones DNS basées sur Microsoft avec juste un enregistrement NS pour le serveur primaire. Pourquoi se soucier des enregistrements pour votre fichier batch ? Premièrement, par souci de rigueur et de correction, vous devriez vraiment nommer les serveurs de toutes les zones. Deuxièmement, il vaut mieux nommer chaque NS afin de pouvoir sécuriser votre zone.
Pour nommer le serveur DNS secondaire d’une zone dans Win2K, démarrez le snap-in Microsoft Management Console (MMC) DNS, ouvrez le dossier Forward Lookups puis trouvez la zone et faites un clic droit dessus. Choisissez Properties et sélectionnez l’onglet Zone Transfer, sur lequel vous verrez la case Allow zone transfers et plusieurs options. L’option par défaut est To any server. Elle permet essentiellement à quiconque d’établir un serveur DNS et de lui dire qu’il est un serveur DNS secondaire pour une zone donnée sur votre serveur DNS – et ce serveur DNS secondaire indésirable pourrait ensuite demander à votre serveur DNS de transférer tout ce qu’il sait à propos de votre zone DNS. Les autres options incluent Only to servers listed on the Name Servers tab et Only to the following servers, qui vous permettent de fournir une liste de serveurs.


Dans Windows 2003, Microsoft a changé les valeurs par défaut du serveur DNS. Si vous créez une zone avec un serveur DNS basé sur Windows 2003, vous verrez que - par défaut – le serveur transfèrera l’information d’une zone DNS uniquement vers un serveur qui a un enregistrement NS. Donc, si vous utilisez Windows 2003, vous vous réjouirez d’avoir pris le soin de nommer des serveurs DNS secondaires. Et, si vous utilisez Win2K, vous pourriez songer à visiter l’onglet Zone Transfers pour appliquer un peu plus de sécurité sur vos zones existantes.

  •     Zone inverse
Après avoir pris soin de ecm.era, vous pouvez établir la zone de consultation inversée pour 10.160.1.x. Comme auparavant, vous devez utiliser la commande Dnscmd /zoneadd pour créer la zone, la commande Dnscmd /config pour la rendre dynamique et la commande Dnscmd /recordadd pour ajouter downdc comme un serveur DNS secondaire pour la zone :

dnscmd localhost /zoneadd 1.160.10 .in-addr.arpa /primary /file 192.dns dnscmd localhost /config 1.160.10 .in-addr.arpa /AllowUpdate 1 dnscmd localhost /recorddadd 1.160.10 .in-addr.arpa @ NS downdc.ecm.era

Le seul élément qui demande une explication est le nom de la nouvelle zone – 1.160.10.in-addr.arpa. Les zones de consultation inversée ressemblent au numéro de réseau d’un subnet (10.160.0, par exemple) mais elles sont inversées, avec le suffixe inaddr. arpa ajouté. Quand vous inversez 10.160.1, vous obtenez 1.160.10 ; quand vous ajoutez in-addr.arpa, vous avez le nom de la zone.


Bien que je n’aie pas encore créé la zone de consultation inversée pour le subnet 10.0.0 (parce que je n’ai pas encore mis en place downdc, son futur serveur DNS primaire), je veux que uodc soit un serveur DNS secondaire pour la zone de consultation inversée de 10.0.0, donc je pourrais aussi bien créer la zone secondaire pour 10.0.0. Pour cela, je peux utiliser la commande Dnscmd /zoneadd mais avec une syntaxe quelque peu différente. Je dois encore spécifier la zone, le nom de la zone et le nom de son fichier de zone. Mais les zones secondaires ont besoin d’une information supplémentaire : qui est le maître ? Autrement dit, vers quel serveur le serveur DNS secondaire devrait se tourner pour mettre à jour ses données à propos de cette zone ? La commande se présente ainsi

dnscmd localhost /zoneadd 0.0.10 .in-addr.arpa /secondary 10.70.7.2

Le nom de la zone pour le réseau 10.0.0 est le quads inversé avec le suffixe in-addr.arpa. L’option /secondary remplace l’option /primary que l’on a vue dans les commandes Dnscmd /zoneadd précédentes, et notons qu’une adresse IP suit l’option /secondary. C’est l’adresse IP du serveur que ce serveur DNS secondaire devrait regarder pour trouver la toute dernière information sur la zone 7.70.10.in-addr.arpa.


L’ajout d’un Ipconfig /registerdns à la fin de ce type de fichier batch assure que le serveur DNS enregistre l’information la plus à jour sur sa zone. Le résultat est le fichier batch que montre le listing 1.

  •  Pour en finir
Finissons en créant un fichier batch similaire pour downdc – une tâche plus facile. Il vous suffit de faire de downdc un serveur secondaire pour ecm.era et 1.160.10.inaddr. arpa, puis de créer la zone 7.70.10.in-addr.arpa et de la rendre dynamique. Le résultat est le fichier batch du listing 2. Ses trois premières commandes créent les zones secondaires et primaires. La quatrième définit comme dynamique la zone de consultation inversée pour 10.0.0. La cinquième commande ajoute uodc comme un serveur DNS secondaire pour cette zone. Enfin, le fichier batch dit au serveur DNS de s’enregistrer lui-même.


Dnscms a de nombreuses options.

Aucun commentaire:

Enregistrer un commentaire