Tutorial, How-To, HowTo
Si on récupère une adresse IP dynamique par DHCP (notamment quand on utilise un portable en situation de mobilité), comment connaître sa nouvelle adresse IP ? La solution est d’utiliser un système de DNS dynamique (une adresse DNS fixe pointant vers l’adresse IP dynamique récupérée par DHCP).
Plusieurs systèmes sont possibles :
- sur Internet : utiliser un service tel que DynDNS et le client ddclient qui mettra à jour votre adresse DNS chaque fois que votre adresse IP change
- sur Internet : monter son propre service de DNS dynamique avec gnudip http://gnudip2.sourceforge.net
- sur Intranet : utiliser son propre serveur DNS bind9 http://www.isc.org/sw/bind et le client nsupdate pour mettre à jour directement son entrée dans le serveur DNS
Tutorial : Internet & service DynDNS
Installer par exemple (sous linux) le logiciel ddclient et modifier le fichier /etc/ddclient.conf
syslog=yes
pid=/var/run/ddclient.pid
use=web
protocol=dyndns2
server=members.dyndns.org
login=monnom
password=monmotdepasse
foobar.homedns.org
Tutorial : Internet & gnudip
... en cours de rédaction...
- Installer les packages suivants :
# apt-get install gnudip
# mkdir /var/cache/gnudip
- Configurer la base de données MySQL
Dans le fichier /usr/share/doc/gnudip/gnudip2.db, remplacer les lignes "DEFAULT ’0’ NOT NULL auto_increment" par "NOT NULL auto_increment"
# echo "create database gnudip2;" | mysql -u root -p
# echo "grant all on gnudip2.* to gnudip@'localhost' identified by 'motdepasse_gnudip'; flush privileges;" | mysql -u root -p
# cat /usr/share/doc/gnudip/gnudip2.db | mysql -u root -p gnudip2
- Modifier le fichier de configuration /etc/gnudip.conf
gnudipuser = gnudip
[...]
gnudippassword = motdepasse_gnudip
[...]
gnudipserver = localhost
[...]
- Ouvrir l’interface web d’administration
Ouvrir l’URL suivante : http://localhost/cgi-bin/gnudip2.cgi
et se logger avec le compte : admin/GnuDIP
- Cliquer sur "Administrative Settings" pour changer le nom de domaine
- Cliquer sur "Change Settings" pour changer le mot de passe admin
[...]
Tutorial : Intranet & serveur BIND & nsupdate
Description de l’architecture :
- serveur DHCP : 192.168.0.1
- serveur DNS : 192.168.0.10 gérant le réseau dyn.foobar.com
- réseau local : 192.168.0.1/255.255.255.0
- PC client : @IP dynamique, toto.dyn.foobar.com
Comme les ordinateurs sont sur l’intranet, je n’utiliserai pas de chiffrement pour mettre à jour les entrées sur le serveur DNS.
Installation du serveur DNS : Bind9
- Installer les packages suivants :
# apt-get install bind9
- Créer le fichier de zone : /etc/bind/db.dyn.foobar.com
$TTL 3D
@ IN SOA ns.dyn.foobar.com. host.dyn.foobar.com. (
2006091901 ; serial
8H ; refresh, seconds
2H ; retry, seconds
4W ; expire, seconds
1D) ; minimum, seconds
;
IN NS ns.dyn.foobar.com.
;
ns A 192.168.0.10
- Modifier le fichier /etc/bind/named.conf.options
/// ACL
acl dyn-clients {
127.0.0.1;
192.168.0.1/24;
};
acl ns-clients {
127.0.0.1;
};
options {
directory "/var/cache/bind";
listen-on port 53 { 127.0.0.1; 192.168.0.10; };
listen-on-v6 { none; };
allow-query { dyn-clients; };
allow-transfer { ns-clients; };
// Put your ISP DNS server
forwarders {
80.118.192.100; 80.118.196.36;
};
auth-nxdomain no; # conform to RFC1035
};
logging {
channel log-file {file "/var/log/named.log"; severity debug; print-time yes;};
category default {log-file;};
category panic {log-file;};
category packet {log-file;};
category eventlib {log-file;};
};
- Modifier le fichier /etc/bind/named.conf.local
zone "dyn.foobar.com" {
type master;
file "/etc/bind/db.dyn.foobar.com";
notify yes;
allow-update { "dyn-clients"; };
allow-query { "dyn-clients"; };
};
Configuration des PCs clients
- Installer les packages suivants :
# apt-get install dhcp3-client dnsutils resolvconf
- Créer le fichier /etc/dhcp3/dhclient-exit-hooks.d/dyn.foobar.com (vous pouvez utiliser un autre nom de fichier)
TTL=86400
HOSTNAME=toto.dyn.foobar.com
NS=192.168.0.10
ZONE=dyn.foobar.com
nsupdate -v > /dev/null << EOF
server $NS
zone $ZONE
update delete $HOSTNAME A
update add $HOSTNAME $TTL A $new_ip_address
send
EOF
- Modifier le fichier resolv.conf
Solution 1 : utiliser resolvconf
Modifier /etc/resolvconf/resolv.conf.d/head
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.0.10
Solution 2 : modifier /etc/network/interfaces (uniquement sous Debian)
iface eth0 inet dhcp
dns-nameservers 192.168.0.10
#dns-search dyn.foobar.com
- Redémarrer le service réseau pour tester
# /etc/init.d/networking restart
# ping toto.dyn.foobar.com
Vous pouvez également tester un transfert de zone (dans le tutorial, celui-ci ne peut être que fait en local sur le serveur DNS cf. la liste de contrôle d’accès ns-clients)
# host -l dyn.foobar.com
ou
# dig AXFR dyn.foobar.com
Tutorial : Internet & serveur BIND & nsupdate
Description de l’architecture :
- serveur DNS : W.X.Y.Z. gérant le réseau dyn.foobar.com
- PC client : @IP dynamique, toto.dyn.foobar.com
Comme les ordinateurs sont sur internet, j’utiliserai des clés de chiffrement pour mettre à jour les entrées sur le serveur DNS.
... en cours de rédaction...
Documentation
- http://dag.wieers.com/howto/bits/bind-ddns.php
- http://lists.debian.org/debian-user-french/2003/07/msg01403.html
- http://caunter.ca/nsupdate.txt
- http://linox.be/index.php/2006/03/07/a_dynamic_dns_update_client_on_debian_with_dhcp3-client/
- http://www.swisslinux.org/forums/ptopic213.php
Commentaires
1. mercredi 11 avril 2007 à 13:08, par tipiak
Ajouter un commentaire