DNSSEC: Problèmes de performances et ponts vers d’autres protocoles

De Ensiwiki
Aller à : navigation, rechercher
DNSSEC: Problèmes de performance et ponts vers d'autres protocoles
Projet Projet de spécialité 2A
Sous-projet Communication et Réseaux
Étudiants Quentin LUC, Cyril LUPO, Thê-Minh TRINH
Promo 2012
Tuteur Martin Heusse (LIG)

Cette page fait office de page d'accueil pour le projet de spécialité concernant DNSSEC réalisé en Mai-Juin 2011 par trois étudiants de 2ème en filière télécommunications. Ce sujet a été proposé dans la catégorie "Communication et Réseaux" associée au projet de spécialité. Il est conseillé d'avoir suivi le cours de réseaux proposé au premier semestre de 2A, mais n'implique pas de connaissance approfondies qui auraient pu être vues en filière télécommunications. Il n'est donc pas uniquement destiné aux étudiants appartenant à cette filière. Cependant, la connaissance du fonctionnement du protocole DNS est fortement requise. Vous pourrez trouver d'excellents tutoriels sur internet très bien renseignés (beaucoup plus que pour DNSSEC qui est pour le moment beaucoup moins utilisé).

Sujet

DNSSEC se déploie avec une adoption effective au niveau des principaux TLDs. Ce projet comportera deux phases. Tout d’abord, il s’agira de mettre en œuvre des serveurs (résolveurs / serveur de zone) et de jouer des séquences de tests. Cela devra conduire à identifier les problèmes de performance que pose la mise en œuvre de DNSSEC. Dans un deuxième temps, on s’interrogera sur la pertinence de l’utilisation de DNSSEC pour une utilisation de type RADIUS : pour l’authentification, voire (plus largement) l’interrogation de bases de données hiérarchiques de type LDAP. En particulier, il s’agit d’utiliser LDAP comme backend d’un serveur DNS, ce qui peut ouvrir des perspectives en termes d’utilisation. Par ailleurs, l’utilisation d’un backend performant peut contribuer à régler les problèmes de performance identifiés dans le première partie.


Introduction à DNSSEC

Le lien ci-dessous pointe vers le premier document rédigé lors de notre projet. Cette introduction suppose que le lecteur connaît le fonctionnement du protocole DNS. Si cela n'est pas le cas, la bibliographie donne de bonnes sources expliquant ce protocole.

Introduction à DNSSEC

DNSSEC par la pratique

Cette section a pour but la mise en place d'une architecture de nom de domaine (DNS puis DNSSEC) dans un réseau de machines virtuelles. Elle contient des explications concernant la mise en place du réseau de machines virtuelles et des tutoriels expliquant comment effectuer l'implémentation de DNSSEC que nous avons nous-même réalisé. Ces tutoriels se basent sur les notions vues dans l'article d'introduction à DNSSEC.

Nous avons rédigé un tutoriel pour Bind9 tournant sur FreeBSD et un autre pour Bind9 tournant sur Debian. Ces tutoriels mettent en jeu exactement les mêmes concepts (vus dans la section Introduction à DNSSEC), mais différents au niveau des commandes et de l'architecture des fichiers de configuration. La principale motivation de l'existence de ces deux tutoriels est le fait que FreeBSD et Debian présentent tous deux des avantages et inconvénients différents. Il s'agira de choisir le bon système d'exploitation en fonction de l'utilisation que l'on voudra faire de l'architecture mise en place. Les avantages et inconvénients de deux systèmes hôtes (pour Bind9) sont détaillés dans les sous-section qui suivent.

Environnement de travail

Choix du logiciel de virtualisation et du système d'exploitation

Les logiciels de virtualisation retenus sont VMWare Workstation 7.0.0 pour Windows 7, et Virtualbox 4.0.8 pour GNU/Linux (Ubuntu version 10.04 Lucid Lynx) et Mac OS X Snow Leopard. Les systèmes d’exploitation installés en machine virtuelle sont FreeBSD (8.2) et Debian (6.0.1a).


Choix du logiciel de virtualisation :

  • VMWare: facile de dupliquer une machine virtuelle / payant
  • VirtualBox: gratuit / un peu moins facile de dupliquer une machine virtuelle

Choix du système d'exploitation :

  • FreeBSD: configuration réseau assez simple, apprentissage très rapide (déjà manipulé en TP réseaux), mais livré avec csh
  • Debian: livré avec bash, existence de bureaux virtuels, outils de mesure de performances disponibles (collectl), mais configuration réseau un peu plus lourde qu’avec FreeBSD

Il faut également prêter attention aux logiciels disponibles pour bien choisir son système d'exploitation.

Nous supposerons par la suite que vous avez installé le logiciel de virtualisation et que vous disposez d’une image iso du système d'exploitation que vous souhaitez installer (pour Debian, le CD1 suffit)

Installation des machines virtuelles avec VirtualBox

On commence par créer une machine virtuelle.

  1. Cliquez sur Créer.
  2. Choisissez votre système d'exploitation. Pour la RAM, pas besoin d’en mettre beaucoup (384 Mio feront l’affaire) puisqu’on n’utilisera pas d’interface graphique. Pour le disque dur, pas besoin de beaucoup d’espace (8 Go suffiront).
  3. Cochez l'option Fichier de taille variable, ça évitera d’occuper de la place inutilement sur votre disque dur.

Ensuite, on passe à l’installation du système d'exploitation

  1. Avant de lancer la machine, sélectionnez la et cliquez sur Configuration.
  2. Dans l’onglet Stockage, sélectionnez Contrôleur IDE et cliquez sur l’icône pour ajouter un CD/DVD.
  3. Choisissez ensuite l’image iso du système d'exploitation que vous souhaitez installer.

Vous pouvez également ajouter une deuxième carte réseau : l’une servira pour accéder à internet via la connexion de votre ordinateur (NAT) et l’autre servira à mettre en place le réseau entre vos machines virtuelles (réseau interne).

Pour finir, procédez à l’installation de votre système d'exploitation.

Installation des machines virtuelles avec VMWARE

Nous allons procéder d’abord à l’installation de la machine virtuelle:

  1. Lancez VMWare Workstation puis sélectionner File > New > Virtual Machine. Choisir Custom puis Next.
  2. Laisser la plupart des options par défaut.
  3. Choisir Installer disque image file et sélectionner l’endroit où est stocké l’image de FreeBSD. Ne vous inquiétez pas du message d’avertissement, il est tout à fait normal que VMWare ne détecte pas ce système peu utilisé.
  4. Dans l’ecran suivant, sélectionnez Autre > FreeBSD.
  5. Entrez par la suite un nom et l’emplacement où vont être stockées toutes les informations des machines, ainsi que les disques virtuels et autres.
  6. Un processeur suffit amplement pour exécuter FreeBSD en mode non graphique.
  7. 256Mb de mémoire vive suffit aussi pour l'exécuter.
  8. Pour toute la suite ne modifiez rien, laissez la taille du disque virtuel à 8Gb (suffit largement pour l’utilisation qu’il en sera faite).
  9. Une fois tout cela effectué, la machine va se lancer et l’installation de FreeBSD va débuter.

Compléments

  • Pour dupliquer une machine virtuelle avec VirtualBox, tapez : VBoxManage imageDD_VM_a_cloner.vdi imageDD_VM_destination.vdi

Puis, ouvrez Virtualbox, cliquez sur créer, suivez la procédure classique. Au moment du choix du disque dur virtuel, choisissez “Utiliser un disque dur existant” et sélectionnez l’image du disque fraîchement créée.


  • Pour installer des logiciels ou des bibliothèques manquantes, vous pouvez utiliser portsnap sur FreeBSD ou aptitude sur Debian.
  • Pour arrêter la machine virtuelle, entrez halt -p
  • Sur FreeBSD, le shell livré est csh. Si vous le souhaitez, vous pouvez toujours télécharger bash:
portsnap fetch #récupère l’arbre des logiciels portés sur FreeBSD
portsnap extract
cd /usr/ports/shells/bash
make install clean

Ensuite, il suffit d'entrer bash (ou /usr/local/bin/bash). Pour le définir comme shell par défaut, entrez chsh -s /usr/local/bin/bash <nomUtilisateur>

  • Sur FreeBSD, les éditeurs de texte livrés sont edit (ee) et vi. Sur Debian, il y a nano.


  • Sous Debian, vous pouvez changer de bureau virtuel en tapant alt + flèche (gauche ou droite)

Tutoriel pour Bind9/FreeBSD

Pour un étudiant Ensimag, la configuration du réseau et de Bind9 est plus rapide à mettre en œuvre sur Debian que sur FreeBSD car ce système d'exploitation est celui utilisé en TP de réseaux. Au début de notre projet, nous avons configuré toutes nos architecture sous FreeBSD, pour ensuite tout migrer sous Debian.

En effet, nous avons utilisé le logiciel collectl dont nous n'avons pas trouvé d'équivalent sous FreeBSD.

DNSSEC par la pratique (tutoriel Bind9/FreeBSD)

Tutoriel pour Bind9/Debian

Comme expliqué précédemment, Debian est à privilégier si vous souhaitez faire des mesures de performance (existence de collectl à coupler avec queryperf)

DNSSEC par la pratique (tutoriel Bind9/Debian)

Evaluation de performances (to be continued...)

L'évaluation de performances est délicate à mettre en oeuvre. On cherche là à mesurer le temps de latence et le débit du serveur. La latence est observable directement par un utilisateur, il faut donc faire en sorte qu'elle soit le plus faible possible.

Ici, on présente une approche assez qualitative de l'évaluation de performances, car les machines virtuelles ne sont pas vraiment idéales pour cela.

DNSSEC: Evaluation de performances

Bibliographie

Sites internet

http://www.bortzmeyer.org

http://www.cyberciti.biz/faq/

http://coagul.org/drupal

http://www.bind9.net

http://weblog.frlinux.net

http://www.crypt.gen.nz/

http://www.freebsd.org/fr/

http://lacnic.net

http://www.nominum.com

Livres et documents

DNS et BIND, de Cricket Liu & Paul Albitz. Traduction de Giles Carré, éditions O’REILLY

http://www-lor.int-evry.fr/~maknavic/articles/Migault-CNSM2010.pdf

RFC 4033

RFC 4034

RFC 4035

RFC 5155

RFC 5702