Concernant le serveur DNS, je n'ai trouvé que deux logiciels pour Windows XP :
- Simple DNS Plus (Payant - 14 jours d'évaluation)
- BIND (Gratuit)
Personnellement j'ai d'abord utilisé Simple DNS Plus mais il n'est gratuit que 14 jours donc je suis passé à BIND assez rapidement.
Pour cet article j'utiliserai comme exemple le nom de domaine "mydomaine.tld"
1) Installation de BIND
Premièrement télécharger la dernière version de BIND (fichier zip)
Décompresser le fichier zip
Dans le répertoire vous trouverez le fichier d'installation de BIND "BINDInstall.exe"
Lancer l'installation, voici les paramètres que j'utilise :
- Target Directory : c:\named
- Service Account Name : named
- Service Account Password : celui que vous désirez mais il en faut un
- Confirm Service Account Password : confirmer votre mot de passe
- Cocher : Automatic Startup
- Cocher : Keep Config Files After Uninstall
- Décocher : Start BIND Service After Install
Voici ce que la donne :

Cliquez sur Install, il va vous demander si vous voulez créer le répertoire named car il n'existe pas cliquez sur oui
Plusieurs fenêtres vont s'ouvrir et se fermer, le message "BIND Installation completed successfully" vous indiquera que l'installation est terminée
Vous pouvez fermer l'installeur.
2) Configuration de BIND
Créer le répertoire "c:\named\zones"
Télécharger les fichiers "named.conf" et "mydomaine.tld.dns" et les sauvegarder aux emplacements suivant :
- c:\named\etc\named.conf
- c:\named\zones\mydomaine.tld.dns
Ouvrer une console (Windows + R --> cmd) et taper les commandes suivantes :
- cd c:\named\bin
- rndc-confgen -a
- rndc-confgen > ..\etc\rndc.conf
- exit
Ouvrer le fichier "c:\named\etc\rndc.conf" avec Notepad
Sélectionner et couper la section en dessous de la ligne suivante :
- # Use with the following in named.conf, adjusting the allow list as needed:
Sauvegarder et fermer le fichier "rndc.conf"
Ouvrer le fichier "c:\named\etc\named.conf" avec Notepad
Coller le contenu du presse-papier à la fin du fichier
Retirer les # devant les nouvelles lignes
Supprimer la ligne "End of named.conf"
Sauvegarder et fermer le fichier "named.conf"
3) Configuration de votre zoneOuvrer le fichier "c:\named\etc\named.conf" avec Notepad
Remplacer "mydomaine.tld" par votre domaine
Sauvegarder et fermer le fichier "named.conf"
Renommer le fichier "c:\named\zones\mydomaine.tld.dns" en remplacent "mydomaine.tld" par votre domaine
Ouvrer ce fichier avec Notepad
Remplacer "NomOrdinateur" par le nom de votre ordinateur, faite bien attention de laisser le . apres le nom de votre ordinateur
Sauvegarder et fermer le fichier
4) Lancement de BINDCliquer droit sur "Poste de travail" et cliquer sur "Gérer"
Sélectionner le noeud "Services et applications" puis "Services"
Trouver le service "ISC Bind" et cliquer droit dessus et sélectionner "Démarrer"
Si le démarrage ne réussi pas, la description des erreurs se trouvent dans "Observateur d'événements" puis "Application"
5) Créer un Batch afin de reloader BINDA chaque modification ou ajout des zones, il faudra relancer le BIND afin qu'il prenne en compte celle ci
Pour économiser plusieurs manipulations voici un "bacth" permettant de réaliser le relaod
ou vous pouvez le créer :
Créer un fichier texte et nommé le "reload bind.bat" sur votre bureau avec les éléments ci-dessous :
@echo off
c:\named\bin\rndc reload
pause
6) Installation d'une carte de bouclage MicrosoftEt oui, même si vous avez installé un serveur DNS, vous ne pouvez le joindre qu'à travers un réseau, donc nous allons simuler un réseau juste pour pouvoir contacter notre serveur DNS
Pour cela nous allons installer une carte de bouclage Microsoft
Aller dans le panneau de configuration, puis cliquer sur "Ajout de matériel"
Faites "Suivant >" et laisser le programme rechercher.

A la question "Avez-vous déjà connecté ce matériel à votre ordinateur" cliquez sur "Oui, ..." puis sur "Suivant >"

Sélectionner dans la liste "Matériel installé :"
- Ajouter un nouveau périphérique matériel (tous en bas de la liste)
Et encore "Suivant >"

Sélectionner "Installer le matériel ..." et encore "Suivant >"

Sélectionner "Cartes réseau" et encore "Suivant >"

Choisir "Microsoft" dans la liste des fabricants et "carte de bouclage Microsoft" dans la liste Carte réseau et encore "Suivant >"

Et enfin le dernier "Suivant >" pour installer la carte

Une fois la carte installé, cliquer sur "Terminer"

Dans votre TaskBar, le petit icone de recherche de réseau a dut apparaitre :

, puis au bout d'un moment vous informer que la connexion est limité
7) Configuration de la carte de bouclageNous allons maintenant configurer la carte de bouclage afin qu'elle prenne en compte notre serveur DNS
Aller dans le "Panneau de configuration" puis "Connexions réseaux"
Vous retrouver votre Carte de bouclage Microsoft

Cliquer droit dessus et sélectionner "Propriétés"
Sélectionner dans la liste "Protocole Internet (TCP/IP)" et cliquer sur "Propriétés"

Personnellement j'utilise l'adresse IP 192.168.0.50 qui est une classe C mais vous pouvez en utiliser une autre
Voici les paramètres à remplir :
Cocher : Utiliser l'adresse IP suivante
- Adresse IP : 192.168.0.50
- Masque de sous-réseau : 255.255.255.0
- Passerelle par défaut : Laisser vide
- Cocher : Utiliser l'adresse de serveur DNS suivante
- Serveur DNS préféré : 127.0.0.1
Voila ce que cela donne :
Puis cliquer sur "OK", puis "Fermer"
Et voila la carte est configurer pour s'adresser a notre serveur DNS local.
8) Configuration de WampJe vais passer outre volontairement l'installation de Wamp (il existe plein de tuto pour ca sur internet Google est votre ami ;)
Ouvrer le fichier "\wamp\bin\apache\Apache2.2.11\conf\extra\httpd-vhosts.conf" avec Notepad
Vérifier bien que la valeur "NameVirtualHost" soit bien a *:80 ce qui donne :
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
Ensuite nous allons créer un VirtualHost pour notre domaine, pour cela il vous suffit de copier les lignes ci-dessous :
<VirtualHost *:80>
ServerName www.mydomaine.tld
ServerAlias mydomaine.tld *.mydomaine.tld
DocumentRoot "D:\www\mydomaine"
</VirtualHost>
La valeur de "DocumentRoot" correspond au répertoire contenant votre site Web
Sauvegarder et fermer le fichier "httpd-vhosts.conf"
Ouvrer le fichier "\wamp\bin\apache\Apache2.2.11\conf\httpd.conf" avec Notepad
Rechercher la ligne "#Include conf/extra/httpd-vhosts.conf" et retirer le # de la ligne
Sauvegarder et fermer le fichier "httpd-vhosts.conf"
En passant par l'administration de Wamp redémarrer tous les services
9) TestEt voila normalement votre configuration doit fonctionner
Vous pouvez tester avec votre navigateur préféré en tapant l'adresse http://www.mydomaine.tld/ et vous tomberez sur votre site web
10) Sous-domaine Virtuel en URL-RewritingVoila la partie qui est à l'origine de mon problème, je souhaitai donc faire des sous-domaines virtuel, c'est à dire :
Par exemple l'adresse machin.mydomaine.tld pointe vers une page de mon site web et m'affiche "machin", vous allez me dire c'est possible grâce à un sous domaine normale
Mais ce que je voulais aussi c'est que "truc", "bidule", etc en fasse de même.
Dans mon cas, c'est surtout pour créer des sous domaine correspondant à des utilisateurs donc une liste dynamique.
Donc premièrement nous devons retoucher la zone DNS de notre nom de domaine "mydomaine.tld" afin que lorsqu'un sous-domaine soit demandé la demande soit redirigée vers notre site web.
Afin de réaliser cette opération nous devons rajouter un * au A de la zone, attention certain hébergeur (notamment 1and1) n'accepte pas de faire ca sur votre nom de domaine)
Ouvrer le fichier de votre zone et rajouter la ligne suivante avant la ligne "www CNAME @" :
* A 127.0.0.1
Sauvegarder et fermer le fichier
Reloader BIND soit avec le Bacth de reload (Partie 5) ou lancer la commande c:\named\bin\rndc reload dans une console
Vous pouvez désormais tester en tapant dans votre navigateur n'importe qu'elle sous domaine cela vous donnera la page d'accueil de votre site web.
C'est maintenant que nous allons passer a l'URL Rewriting
Editer ou créer le fichier .htaccess a la racine de votre site
Et ajouter les lignes suivantes :
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.mydomaine\.tld
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomaine\.tld
RewriteRule ^$ /test/index.php?sous_domaine=%1
RewriteRule ^([^.]+)\.html$ /test/index.php?sous_domaine=%1&page=$1 [L]
Ces règles vont permettre de re-router tous les sous domaine sauf www vers la page index.php du répertoire "test"
Ainsi que de préciser la page demander si une page est demander après le domaine
Exemple :
http://profils.mydomaine.tld/ = http://www.mydomaine.tld/test/index.php?sous_domaine=profils
http://profils.mydomaine.tld/utilisateur.html = http://www.mydomaine.tld/test/index.php?sous_domaine=profils&page=utilisateur
Et voila vos sous domaine fonctionne maintenant, a vous de vous amuser !
j'espère que ce petit article a été assez clair et que je ne vous ai pas trop perdu !!!
PS : Désolé pour les faute d'orthographe, ce n'est pas mon fort !