Présentation :
• Un DNS (Domain Name System)
• sert à faire la correspondance entre l'adresse IP et le nom de la
machine
• Plus concrètement sans DNS vous
seriez obligé de taper
directement les adresses IP
• Pour avoir naviguer sur internet
vous devez configurez votre
serveur
DNS
Objectif :
• Disposer d'un serveur cache DNS, afin d'accélérer les requêtes
• simplifier l'adressage des
machines internes à votre
établissement
Installation du serveur:
Pour mettre en place le service de résolution de nom sur un serveur Linux, on va procéder successivement aux opérations suivantes :
•
Installer le logiciel BIND avec la commande (yum).
installer
le package si cela n' est pas déjà réalisé,
configurer
les fichiers :
• /etc/named.conf
• /var/named/named.ca
• /var/named/named.local
• faire créer les fichiers suivants:
• /var/named/nom du domaine.fr
• /var/named/db.192.168.0.1 (adresse
ip).
démarrer
le service serveur.
Installer le package
La résolution de nom est réalisée par les produits du package bind. La version actuelle est le package bind-9.x. qui remplace les versions antérieures 4.x. Nous resterons sur une configuration simple. On va utiliser "bind 9". Il faudra donc installer les fichiers bind-9.x et bind-utils-9.x. Ce deuxième package donne quelques outils comme host, dig... L' installation a copié les fichiers. Sur une configuration simple vous allez avoir 5 fichiers à créer ou à modifier sur le serveur primaire :
/etc/bind/named.conf
(fichier de configuration global du service DNS du serveur de nom primaire)
/var/bind/stage.hosts
qui contiendra la description de la correspondance nom-adresse de toutes les
machines du réseau
/var/bind/stage.rev
qui contiendra la correspondance inverse adresse-nom (pour la résolution
inverse de nom in-addr.arpa)
/var/bind/local.host
pour la configuration locale (localhost - 127.0.0.1).
/var/bind/local.rev
pour la configuration reverse (127.0.0.1 - localhost).
Configuration de serveur :
Le fichier named.conf
Voici un exemple de fichier commenté pour le domaine fictif stage.org, d'adresse 192.168.1.0.
# fichier named.conf pour le domaine stage.org
#
Indication du chemin où sont localisés les fichiers de la base de données
options {
directory
"/var/named";
forwarders {
# Indiquer un serveur
dns de niveau supérieur
0.0.0.0;
};
auth-nxdomain no;
};
# pour le fichier de cache du serveur de nom zone "." in {
file "db.root";
type hint;
};
# pour la recherche directe dans le domaine, on utilise
le fichier stage.org
zone "stage.org"
in {
type master; # nous sommes
serveur primaire de ce domaine
file "stage.hosts"; # les
correspondances nom, adresse IP
};
# pour la recherche de zone inverse
(reverse) on utilise le fichier stage.rev
zone "1.168.192.in-addr.arpa" in {
type master; # serveur primaire de 1.168.192.in-addr.arpa
file "stage.rev";
};
# pour la résolution de nom sur localhost zone "local" in {
type master; # nous sommes serveur de 127.0.0.1
file "local.host"; # correspondances nom, adresse IP
};
# rappel : la machine locale porte toujours l'adresse « localhost » 127.0.0.1
# résolution inverse sur cette zone
# la description est dans local.host
zone "0.0.127.in-addr.arpa" in {
type master; # serveur primaire de 0.0.127.in-addr.arpa
zone "1.168.192.in-addr.arpa" in {
type master; # serveur primaire de 1.168.192.in-addr.arpa
file "stage.rev";
};
# pour la résolution de nom sur localhost zone "local" in {
type master; # nous sommes serveur de 127.0.0.1
file "local.host"; # correspondances nom, adresse IP
};
# rappel : la machine locale porte toujours l'adresse « localhost » 127.0.0.1
# résolution inverse sur cette zone
# la description est dans local.host
zone "0.0.127.in-addr.arpa" in {
type master; # serveur primaire de 0.0.127.in-addr.arpa
file
"local.rev";
};
Notez bien
que les noms appliqués aux fichiers de ressources ne sont en rien imposés. Il
s' agit d' une pure convention. En effet un serveur de nom peut prendre en
charge plusieurs domaines, cela permet de structurer l' organisation des
fichiers de ressources. Notez également l' option"type master". Il s'
agit d' un serveur primaire. Nous verrons comment déclarer un serveur
secondaire.
Le fichier /var/named/stage.hosts
Le paramètre @, signifie qu' il s' agit du domaine "stage.org" (le nom tapé après le mot « zone » dans le fichier de configuration named.conf). Le paramètre "IN", signifie qu' il s' agit d' un enregistrement de type Internet. Notez la présence d' un point (.) après le nom des machines. Sans celui-ci, le nom serait « étendu ». Par exemple, ns1.stage.org (sans point) serait compris comme ns1.stage.org.stage.org (on rajoute le nom de domaine en l' absence du point terminal). Le point (.) terminal permet de signifier que le nom est pleinement qualifié. NB : dans ces fichiers, les commentaires sont précédés d' un point-virgule. enregistrement de type SOA, on déclare tous les paramètres ainsi que l' adresse du responsable administratif de la zone, ici : postmaster
$TTL 3h @
IN SOA ns1.stage.org. postmaster.stage.org. ( 16 ;
86400 ;
3600 ;
3600000 ;
604800 ;)
; enregistrement de type Name Server, on déclare le serveur
de nom
IN NS ns1.stage.org.
; on déclare les autres noeuds pour la résolution
de nom
; Notez l' absence du point après les noms pour permettre
; l'
extension du nom de domaine. ns1 IN A 192.168.1.1
; client cli1 IN A 192.168.1.2
; on déclare les alias CNAME : messagerie, news, www, ftp
mail IN CNAME ns1
news IN CNAME ns1
www IN CNAME ns1
ftp IN CNAME ns1
; client cli1 IN A 192.168.1.2
; on déclare les alias CNAME : messagerie, news, www, ftp
mail IN CNAME ns1
news IN CNAME ns1
www IN CNAME ns1
ftp IN CNAME ns1
/var/named/stage.rev
Ici il s'agit de la résolution de nom inverse de la zone stage.org.
$TTL 3h
@ IN SOA ns1.stage.org. postmaster.stage.org. (
16 ;
86400 ;
3600 ;
3600000 ;
604800 ;)
;
enregistrement de type Name Server
IN NS ns1.stage.org.
;
On déclare les
noeuds dans le domaine
1.168.192.in-addr.arpa ;
Ici, on ne peut pas se passer
du nom complet (fini par un point).
;
l' extension serait (exemple avec ns1) :
1.1.168.192.in-addr.arpa.
1 IN PTR ns1.stage.org.
;
Client
2 IN PTR cli1.stage.org.
/var/named/local.hosts
$TTL 3h
@ IN SOA ns1.stage.org. postmaster.stage.org. (
16 ;
86400 ;
3600 ;
3600000 ;
604800 ;)
; enregistrement de type Name Server
IN NS ns1.stage.org.
; On déclare le noeud dans le domaine
local
localhost IN
127.0.0.1
/var/named/local.rev
$TTL 3h
@ IN SOA ns1.stage.org. postmaster.stage.org. (
16 ;
86400 ;
3600 ;
3600000 ;
604800 ;)
; enregistrement de type Name Server
IN NS ns1.stage.org.
; On déclare les noeuds dans le domaine 0.0.127.in-addr.arpa
; Normalement, il n' en a qu' un : 127.0.0.1 = localhost.
; Noter le point terminal.
1 IN PTR localhost.
Compléments pratiques
Démarrer ou arrêter le service le service Le service (daemon) qui active la résolution de nom s' appelle"named", prononcer "naime dé". Si vous voulez l' arrêter ou le redémarrer dynamiquement vous pouvez utiliser les commandes suivantes :
/etc/init.d/named stop
/etc/init.d/named start
Relancer le service serveur de cette façon peut parfois poser problème.
En effet cette procédure régénère le cache du serveur. Le service prends également un nouveau "PID". Si vous voulez éviter cela, ce qui est généralement le cas, préférez la commande "kill -HUP 'PID de Named'". Vous trouverez le PID de named dans "/var/run".
Finaliser la configuration
Les fichiers de configuration sont créés. Il ne reste plus qu 'à tester. Il faut au préalable configurer le serveur pour qu' il utilise lui même le service DNS et redémarrer les services réseau. Relancez, ensuite le service réseau. Utilisez les commandes suivantes :
/etc/init.d/network stop
/etc/init.d/network start
Procédure de configuration du client
La description de la configuration de tous les clients possibles n' est pas détaillée. Vous trouverez ci-dessous des éléments pour un client windows 9x et pour un client Linux.
Windows
Configurer le client pour lui signifier quel est le serveur de nom qu' il doit consulter. Pour cela il faut aller dans : panneau de configuration - réseau - tcp/ip - Onglet "Configuration DNS". Vous allez pouvoir définir le nom d' hôte de la machine locale dans le réseau et le nom de domaine auquel appartient l' hôte. Définissez ensuite l' adresse IP du serveur de nom que vous voulez utiliser.
Avec Linux
Vous pouvez utiliser linuxconf ou bien modifier (en tant que « root ») le fi chier de configuration du « resolver » (/etc/resolv.conf).
# Fichier /etc/resolv.conf
search stage.org
# Extension à rajouter à un nom d' hôte sans points nameserver
192.168.1.1
# Ip du DNS
Annexe : Mise à jour dynamique du dns
Modification des fichiers named.conf et dhcpd.conf
/etc/bind/named.conf
# fichier named.conf pour le domaine stage.org
#
Indication du chemin où sont localisés les fichiers de la base de données
options {
forwarders { # Indiquer un serveur dns de niveau supérieur
0.0.0.0;
};
auth-nxdomain no; # conform to RFC1035
};
# pour le fichier de cache du serveur de nom zone "." in
{
type hint;
file "db.root";
};
# pour la recherche directe dans le domaine, serveur primaire, on utilise le fichier stage.org
zone "stage.org" in
{
type master; # nous sommes serveur primaire de ce domaine
file
"stage.hosts";
# zone stage.org
allow-update {
# Authorise la mise à
jour depuis l'hôte local
127.0.0.1;
};
};
# pour la recherche de zone inverse
(reverse) on utilise le fichier stage.rev
zone
"1.168.192.in-addr.arpa" in {
type master; # zone stage.org reverse
file "stage.rev";
allow-update { # Authorise la mise à jour depuis l'hôte local
127.0.0.1;
}
};
# pour la résolution de nom sur localhost zone "local" in
type master; # zone stage.org reverse
file "stage.rev";
allow-update { # Authorise la mise à jour depuis l'hôte local
127.0.0.1;
}
};
# pour la résolution de nom sur localhost zone "local" in
{
type master;
file "local.host";
};
zone
"0.0.127.in-addr.arpa" in {
type master; file "local.rev";
};
/etc/bind9/dhcp.conf
ddns-update-style interim; # Mode de mise à jour
ddns-updates on; # Autorise les maj du dns ignore client-
ddns-updates on; # Autorise les maj du dns ignore client-
updates; # Refuse les
maj client
update-static-leases on; # Maj des enregistrements statiques
ddns-domainname "dnc"; # Domaine
default-lease-time 600;
max-lease-time 7200;
option domain-name-servers 192.168.1.10;
option subnet-mask
255.255.255.0;
option routers 192.168.1.1;
log-facility local7;
subnet
192.168.1.0
netmask 255.255.255.0 {
range 192.168.1.200 192.168.1.210;
allow
unknown-clients;
}
zone stage. {
primary 127.0.0.1;
}
zone 1.168.192.in-addr.arpa. {
primary 127.0.0.1;
}
primary 127.0.0.1;
}