Info16.fr

Le blog de B@rtounet

#Gnu/Linux

Serveur DNS Bind Dynamique Linux/Ubuntu

27 juillet 2011 Rédigé par bartounet

Le but de cet article est de configurer son DNS bind pour le rendre dynamique... C'est à dire que tous les clients qui utiliserons par défaut ce Serveur DNS seront enregistrés automatiquement dans la base DNS...

Nous partirons du principe que le serveur DNS est dejà installé et fonctionnel, (voir mon article sur l'installation d'un serveur DNS).

Nous nous étions arrété, sur un DNS qui n'autorisait aucune mise à jour, C'est à dire qu'il resolvait les noms en fonctions de pointeurs que nous avions rajouté manuellement..

C'est correct dans un petit réseau, mais dans une structure ou de nouveaux postes se connectent, ou bien qu'il y ait un serveur DHCP pas forcement configuré avec des hotes à ip fixes ceci n'est pas viable.

En effet, pour un même poste il peut se voir attribuer une autre addresse IP une fois que son bail est écoulé, c'est pourquoi il est interessant qu'il s'enregiste dynamiquement dans le DNS afin qu'on puisse le contacter par son nom d'hote n'importe quand et peu importe son ip...

Il existe plusieurs moyens de faire cela... En général soit le client s'enregiste directement dans le DNS soit c'est le serveur DHCP qui vient indiquer au dns l'ip qu'il vient d'attrivuer et à quel nom d'hote...

C'est cette deuxième solution que j'ai mis en oeuvre.

Commencons par reprendre notre fichier de configuration du DHCP

vi /etc/dhcp3/dhcpd.conf

on va alors rajouter quelques lignes...

#Mon Serveur DHCP #Mon domaine option domain-name "appart.lan"; ##Mise à jour des DNS en test ddns-domainname "appart.lan"; #Méthode de mise à jour du DNS ddns-update-style interim; #Mise à jour autorisée ddns-updates on; #ici on force la maj par le dhcp et non par le client ignore client-updates; #on force la maj des ipfixes update-static-leases on;__ #Les serveurs DNS option domain-name-servers 192.168.1.101, 212.27.53.252; #Le serveur Wins option netbios-name-servers 192.168.1.101; #Mon routeur passerelle #option routers 192.168.1.254; #Le bail default-lease-time 21600; #Les sous réseaux #Le sous reseau 192.168.1.0 subnet 192.168.1.0 netmask 255.255.255.0 {  range 192.168.1.110 192.168.1.115; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; } #le sous reseau 192.168.2.0 subnet 192.168.2.0 netmask 255.255.255.0 {  range 192.168.2.110 192.168.2.115; option subnet-mask 255.255.255.0; option broadcast-address 192.168.2.255; option routers 192.168.2.100; } #Le sous reseau 192.168.3.0 subnet 192.168.3.0 netmask 255.255.255.0 {  range 192.168.3.1 192.168.3.2; option subnet-mask 255.255.255.0; option broadcast-address 192.168.3.255; option routers 192.168.3.100; } #Configuration des IP fixes #Mon PC B@rtounet host Bartounet  { hardware ethernet 00:08:54:37:8b:3f; fixed-address 192.168.1.100; } #Le portable host Laptop { hardware ethernet 00:17:31:FA:68:7F; fixed-address 192.168.1.105; } #PC de Pascaline host Pascaline { hardware ethernet 00:e0:4d:0f:37:ef; fixed-address 192.168.1.102; } #PC de Salon host PCSALON { hardware ethernet 00:0f:ea:84:4a:c8; fixed-address 192.168.1.103; } #Les zones gérées zone appart.lan. { 	primary 127.0.0.1; 	} zone 1.168.192.in-addr.arpa. { 	primary 127.0.0.1; 	} zone 2.168.192.in-addr.arpa. { 	primary 127.0.0.1; 	} 

Mon fichier est assez bien commenté pour qu'on puisse comprendre tous les rajouts

Pour plus de sureté on ajoute aussi en fin de fichiers les zones que le dhcp doit gerer.

Nous en avons fini pour le dhcp.

Passons maintenant au DNS

sudo vi /etc/bind/named.conf

Mon fichiers est alors :

// This is the primary configuration file for the BIND DNS server named. // // Please read /usr/share/doc/bind9/README.Debian.gz for information on the // structure of BIND configuration files in Debian, *BEFORE* you customize // this configuration file. // // If you are just adding zones, please do that in /etc/bind/named.conf.local include "/etc/bind/named.conf.options"; // prime the server with knowledge of the root servers zone "." { 	type hint; 	file "/etc/bind/db.root"; }; // be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912 zone "localhost" { 	type master; 	file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { 	type master; 	file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { 	type master; 	file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { 	type master; 	file "/etc/bind/db.255"; }; zone "appart.lan" {         type master;         file "/etc/bind/db.appart.lan"; 	allow-update { 		127.0.0.1; 		}; }; zone "1.168.192.in-addr.arpa" {         type master;         file "/etc/bind/db.appart.lan.inv"; 	allow-update { 		127.0.0.1; 		}; }; zone "2.168.192.in-addr.arpa" {         type master;         file "/etc/bind/db.appart.lan2.inv"; 	allow-update { 		127.0.0.1; 		}; }; // zone "com" { type delegation-only; }; // zone "net" { type delegation-only; }; // From the release notes: //  Because many of our users are uncomfortable receiving undelegated answers //  from root or top level domains, other than a few for whom that behaviour //  has been trusted and expected for quite some length of time, we have now //  introduced the "root-delegations-only" feature which applies delegation-only //  logic to all top level domains, and to the root domain.  An exception list //  should be specified, including "MUSEUM" and "DE", and any other top level //  domains from whom undelegated responses are expected and trusted. // root-delegation-only exclude { "DE"; "MUSEUM"; }; include "/etc/bind/named.conf.local";

Ici c'est assez simple, on a simplement rajouter qu'on acceptait les mise à jours dynamique pour chaque zone.

allow-update { 		127.0.0.1; 		};

Si vous aviez des pointeurs manuels creé dans vos fichiers db.* supprimez les, car la mise à jour dynamique va les creer tout seul.

Relancez les différents services et ca doit marcher...

Su vous avez des clients dhcp linux, il peuvent poser problême, car par défaut il n'envoient pas leur nom Netbios lors de l'attribution d'adresse comme le font les clients Windows.

C'est pourquoi il faut rajouter dans votre fichiers /etc/dhclient.conf la ligne

send host-name "lenomdelamachine" ;

Information sur bartounet auteur de l'article

Les commentaires sont fermés.