21 avril 2007
De la pratique avec Céline et Diane
ces notes concernent l’installation et la configuration de dns, dhcp. Profitez en avec nous car il y a des resultats précis et exhaustifs de commandes, mais ces notes ne montrent que nos travaux, cheminements et questionnements. Elles ne constituent nullement un manuel ou un tutorial....
Configurer une adresse ip fixe sous Linux
pour chaque machine on peut changer son adresse ip
Mode graphique :
Ubuntu : System > Administration > Networking > Propriété >
dhcp : le serveur nous attribue une ip automatiquement
statique : on la fixe nous-même. C’est ce qui nous intéresse ici.
En ligne de commande :
$ ifconfig eth0 192.168.3.161 netmask 255.255.254.0
eth0 : carte réseau éthernet ; netmask : pour interface3 le masque est 255.255.254.0 - explications plus bas dans la page
Choix dans un réseau d’installer un serveur dhcp ou de distribuer manuellement des ip fixes :
ip fixes : pour des questions de rapidité, donc souvent utilisées pour les serveurs d’un réseau
en outre, questions de sécurité : contrôler ce que fait chaque machine sur le réseau.
dhcp : pas devoir configurer chaque machine manuellement, fastidieux à partir d’un certain nombre de machines.
Edition du fichier de configuration /etc/network/interfaces
Autre manière, moins volatile, en ligne de commande, il s’agit d’éditer le fichier /etc/network/interfaces :
coup d’oeil au fichier de configuration par défaut d’ubuntu
$ vi /etc/network/interfaces
auto lo = loopback, adresse interne, 127.0.0.1, pas toucher !
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet dhcp
auto eth2
iface eth2 inet dhcp
auto ath0
iface ath0 inet dhcp
auto wlan0 = wifi
iface wlan0 inet dhcp
* eth = cartes réseau ethernet (câble). Si plusieurs cartes, eth0, 1, 2
Parenthèse : certaines disent qu’elles ont le wifi sur eth1, d’autres s’insurgent... à investiguer ! souvent le nommage des cartes wifi est wlan0, ou rausb0 (ou autre nom exotique) etc ... mais ce n’est qu’une convention de tel noyau de telle ou telle distribution. Après vérification, il y a des cartes wifi nommées eth1, eth2
Si on veut mettre une adresse statique, dans le fichier de configuration /etc/network/interfaces
auto eth0
iface eth0 inet dhcp"
devient :
auto eth0
iface eth0 inet static
address 192.168.3.161 -> cette machine
netmask 255.255.255.0 -> ce sont les 3 premiers octets qui vont identifier le réseau
network 192.168.3.0 -> adresse du réseau
gateway 192.168.3.252 -> passerelle
Passerelle (gateway- : adresse interne du routeur. On indique à cette machine l’adresse du routeur pour qu’elle puisse envoyer en dehors du réseau local (et aller dans internet par exemple).
Le routeur a (au moins) 2 interfaces réseau : une sur le réseau local, une qui va vers internet, avec une adresse publique.
Masque : là où il y a des 255, l’ordi va convertir en 11111111, donc il interprete que cet octet fait partie de l’adresse réseau. Quand il voit 0, il sait que c’est partie de l’adresse de host, une machine. Puis il compare le masque à une adresse ip. Ici, avec 255.255.255.0, le dernier octet donne le numéro d’hôte (machine) et les trois premiers l’adresse du réseau.
remarque : si le masque est 255.255.254.0 (comme à interface3), le troisième octet est 11111110, la comparaison nous laisse le dernier bit pour les numéros de machine en plus du quatrième octet, et on peut avoir deux fois plus de machines (510 ?)
Puis il faut relancer le service :
$ /etc/init.d/networking restart
La commande ping !
$ ping domainepublic.net
PING domainepublic.net (62.58.108.140) 56(84) bytes of data.
Donc, ping permet de connaître l’adresse ip d’une machine du serveur + le temps de réponse. ping fonctionne aussi avec l’adresse ip
$ ping 62.58.108.140
TCP : transfert control protocol, vérifier que l’information est arrivée au bon endroit et dans le bon ordre
IP : gère l’adressage pour mener la requête de l’expéditeur au destinataire.
DHCP Dynamic Host Configuration Protocol : le serveur dhcp est un serveur qui distribue des ip dynamiques aux machines qui se connectent au réseau.
Parfois dans les réseaux, c’est un routeur qui a un serveur dhcp installé, parfois c’est n’importe quelle machine du réseau. cf. requêtes broadcast : la demande est envoyée à tous les ordis du réseau, seul le serveur dhcp sait qu’il doit répondre.
Le serveur dhcp a une ip fixe, au moins du côté du réseau local.
Tous les clients doivent avoir une adresse de dns configurée, quand ils cherchent samedi.collectifs.net, ils doivent savoir où s’adresser pour résoudre le nom en adresse ip.
Jeter un coup d’oeil à la configuration d’une machine client (pour DNS)
$ vi /etc/resolv.conf
search willow.if3 le serveur dns d’interface3
nameserver 192.168.3.16
Rappel : il est plus facile de retenir des noms que des adresses ip. Ex. google plutot que 64.233.183.147
Le DNS s’occupe de la traduction entre le nom de domaine et l’adresse ip.
Ex. de nom de domaine : samedi.collectifs.be
On demande à un type dans la rue : est-ce que tu connais .be Non, mais va voir chez mon chef, c’est lui qui gère les .be Salut chef, est-ce que tu connais .be ? Oui. Est-ce que tu connais collectifs ? Oui. Est-ce que tu connais samedi ? Non, mais va voir chez collectifs. etc.
DNS sous linux
Sous Linux, pour créer son serveur dns, on utilise le paquet bind9 On va travailler avec 4 fichiers de configuration. dans le répertoire /etc/bind/ Et ne pas oublier de se mettre en ip fixe (modifier le fichier /etc/network/interfaces)
Installation de bind9
Eventuellement vérifier si le paquet bind9 n’est pas déjà installé avec la commande dpkg -l bind9
root@ubuntu :/home/ubuntu# dpkg -l bind9
Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err ?=(none)/Hold/Reinst-required/X=both-problems (Status,Err : uppercase=bad)
+++-===========-=============-========
un bind9
un (uninstalled) nous signale l’état de ce paquet. donc installation de bind9 root@ubuntu :/home/ubuntu# apt-get install bind9
Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages : bind9-doc The following NEW packages will be installed : bind9 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 300kB of archives. After unpacking 741kB of additional disk space will be used. Get:1 http://archive.ubuntu.com edgy/main bind9 1:9.3.2-2ubuntu3 [300kB] Fetched 300kB in 7s (37.9kB/ s) Selecting previously deselected package bind9. (Reading database ... 96582 files and directories currently installed.) Unpacking bind9 (from .../bind9_1%3a9.3.2-2ubuntu3_i386.deb) ... Setting up bind9 (9.3.2-2ubuntu3) ... Adding group `bind’ (115)... Done. Adding system user `bind’ with uid 109... Adding new user `bind’ (109) with group `bind’. Not creating home directory `/var/cache/bind’. wrote key file "/etc/bind/rndc.key" * Starting domain name service...
(après l’installation, le service dns est lancé en arrière fond)
Configuration de bind9
Visualisations des fichiers de configuration de bind : ils se trouvent dans le répertoire /etc/bind dont
* /etc/bind/named.conf * /e/etc/bind/db.0 * /etc/bind/db.127 * /etc/bind/db.255 * /etc/bind/named.conf.local
$ nano /etc/bind/named.conf c’est le fichier de configuration principal : Zones : localhost = ma machine, 255 = broadcast : pas toucher.
Restent donc :
zone "127.in-addr.arpa"
type master ; file "/etc/bind/db.127" ;
;
zone "0.in-addr.arpa"
type master ; file "/etc/bind/db.0" ;
;
exemple personnalisé : zone "artemis.be"
type master ; file "/etc/bind/db.artemis.be" ; ;
explication :
* type master : Cette ligne indique que le serveur est le serveur principal de ce domaine. * après file on indique le nom du fichier que nous allons créer et utiliser : ce sera un fichier de configuration secondaire.
$ nano /etc/bind/named.conf.local
Autre fichier de configuration pour réglages locaux. Ex. lier des noms à des ip, donner des alias (deux noms pour un ip).
*
analyse d’un exemple de fichier db.255
@ IN SOA localhost. root.localhost. ( ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL
ce fichier montre la "syntaxe à suivre". Comment l’utiliser ?
* @ sera remplace par adresse de l’hote (exemple une machine ayant ip 192.168.3.4 (et masque 255.255.255.0 ) on mettra 4 * localhost sera remplacé par le nom de la machine * root. par le nom de domaine considéré
Les commandes d’interrogation de serveur dns
la commande nslookup (qui fait partie du paquet dnsutils) donne des infos sur un serveur dns
$ nslookup www.google.com
Server : 212.68.193.110 Address : 212.68.193.110#53 Non-authoritative answer : www.google.com canonical name = www.l.google.com. Name : www.l.google.com
Address : 64.233.183.99 Name : www.l.google.com Address : 64.233.183.103 Name : www.l.google.com Address : 64.233.183.104 Name : www.l.google.com Address : 64.233.183.147
$- nslookup domainepublic.net
Server : 212.68.193.196 Address : 212.68.193.196#53 Non-authoritative answer : Name : domainepublic.net Address : 62.58.108.14-0
(rq petit échange ; le serveur dns de domaine public est il bien configuré ? réponse oui, aussi bien que celui de google mais avec juste un serveur sur une machine)
une femme avertie en vaut deux !