Quagga

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 5

Etude approfondie du protocole QUAGGA

I. Généralités

Développé par Kunihiro Ishiguro, Quagga est un programme extérieur sur Unix qui regroupe un
ensemble de systèmes de gestion de protocoles de routage. Il offre via un système unique la possibilité
de gérer les protocoles tel que RIP, OSPF, BGP… Il est le digne successeur du programme Zebra, car il
provient d’un fork () de celui-ci. De ce fait, ils possèdent les mêmes caractéristiques. Le développement
de Zebra s’est plus ou moins arrêté depuis novembre 2003, qui était le mois de la sortie de la dernière
version de celui-ci. Ayant hérité des mêmes traits que Zebra, Quagga est plus ouvert et actif que son
prédécesseur se fait partie de ces propres forces.

Ces deux logicielles utilisent des protocoles de routage mais qu’est-ce qu’un protocole de routage en
fait ? Qu’est-ce qu’un routage même de base ?

1. Le routage

En fait, le routage est le mécanisme par lequel des chemins sont sélectionnés dans un réseau pour
acheminer les données d'un expéditeur jusqu'à un ou plusieurs destinataires. Le routage est une tâche
exécutée dans de nombreux réseaux, tels que le réseau téléphonique, les réseaux de données
électroniques comme Internet, et les réseaux de transports. Sa performance est importante dans les
réseaux décentralisés, c'est-à-dire où l'information n'est pas distribuée par une seule source, mais
échangée entre des agents indépendants. C’est grâce à ça que par exemple les mails sont envoyés aux
bons destinataires.

Pour effectuer le routage, on considère deux types de machines ou composants du réseau :

 Les routeurs, qui servent d'intermédiaire dans la transmission d'un message,


 Les hôtes qui émettent ou reçoivent les messages.

Le routage est un processus décentralisé, c'est-à-dire que chaque routeur possède des informations sur
son voisinage. Chaque routeur maintient une liste des réseaux connus, chacun de ces réseaux étant
associé à un ou plusieurs routeurs voisins à qui le message peut être passé. Cette liste s'appelle la table
de routage, et contient trois types de routes :

 Les routes correspondant à des réseaux directement connectés : pour ces réseaux, le routeur
peut acheminer le paquet directement à la destination finale en faisant appel au protocole de
niveau 2 (Ethernet par exemple).
 Les routes statiques, configurées en dur sur le routeur par l'administrateur du réseau,
 Les routes dynamiques, apprises d'un protocole de routage dynamique dont le rôle est de
diffuser les informations concernant les réseaux disponibles.

Pour permettre à ce que les routeurs aient une idée de la topologie du réseau, et puissent ainsi employer
des algorithmes de routage efficaces, il faut que les routeurs diffusent leurs informations. Cette diffusion
s'effectue par le biais des protocoles de routage, spécifiant la façon dont les informations sont échangées
entre les routeurs.

2. Protocole de routage
Un protocole de routage est le système par lequel un routeur va pouvoir acheminer un paquet vers un
autre réseau.

L'objectif d’un protocole de routage peut se résumer en cinq points :

 Découvrir dynamiquement les routes vers les sous réseaux d'un réseau et les inscrire dans une
table de routage ;

 Choisir la meilleure route c’est-à-dire la plus coute, s'il existe plusieurs routes vers un sous
réseau ;

 Détecter les routes qui ne sont plus valides et les supprimer de la table ; si le réseau dont le
chemin est supprimé peut-être accédé par le biais d'un autre routeur, inscrire ce nouveau
chemin dans la table en remplacement du chemin supprimé ;

 Ajouter le plus rapidement possible de nouvelles routes, ou mettre à jour le plus vite possible les
routes considérées comme meilleures : le temps qui s'écoule entre la perte d'une route et la
découverte d'une autre route s'appelle le temps de convergence ;

 Empêcher les boucles de routage.

On note qu’il existe 03 types de protocoles de routage :

a) Externe 

Ils sont conçus pour assurer la communication entre deux réseaux différents contrôlés par deux
organisations différentes. Le protocole externe le plus répandue est le protocole BGP (Border Gateway
Protocol), est un protocole d'échange de route externe (une EGP), utilisé notamment sur le réseau
Internet. Son objectif principal est d'échanger des informations de routage et d'accessibilité de réseaux
entre les Systèmes Autonomes. Comme il circule sur TCP, il est considéré comme appartenant à la
couche application du modèle OSI1.

Contrairement aux protocoles de routage interne, BGP n'utilise pas de métrique classique mais fonde les
décisions de routage sur les chemins parcourus, les attributs des préfixes et un ensemble de règles de
sélection définies par l'administrateur de l'AS. On le qualifie de protocole à vecteur de chemins (path
vector protocol).

b) Interne 

Ils sont destinés à assurer la communication entre les différentes parties d'un réseau contrôlé par la
même organisation. Au sein de ces protocoles on remarque une division au niveau de la communication
entre les routeurs, le changement de réseau et les routes qui se trouvent dans un réseau. Donc on peut
dire qu’ils se subdivisent en 2 catégories :

 Protocole de routage par état de lien 


Il est généralement associé au protocole OSPF (Open Shortest Path First) car c’est le plus connu.
Il a été créé au milieu des années 80 en raison de l’incapacité de plus en plus flagrante d'un autre
protocole, nommé RIP de répondre aux besoins des intérêts ou de grandes dimensions et
hétérogènes. Il a pour caractéristique d'être dans le domaine public (open), et de se baser sur un
algorithme de calcul de route nommée SPF ou parfois algorithme de Dijkstra, du nom de son
fondateur.
Lorsqu'un routeur qui supporte la technologie OSPF démarre, il commence par s'assurer que ses
interfaces fonctionnent. Puis, il envoie des messages hello sur ces interfaces qui lui servent à
découvrir la topologie du réseau local. Ces paquets seront renvoyés régulièrement (et les autres
routeurs feront de même vers ce routeur-ci) de façon à s'assurer de l'état du lien entre les
routeurs (d'où le nom protocole de routage par état de liens).
Un des routeurs adjacents sera considéré comme routeur par défaut vers un autre sous réseau,
et un autre comme routeur de secours. À partir de ces informations, chaque routeur dessine un
arbre de communication vers les autres sous réseaux en se prenant comme racine. L'algorithme
SPF sert à construire cet arbre en calculant les routes les plus courtes.
Ce protocole supporte des options complémentaires, comme par exemple la possibilité de
signaler que certaines données sont urgentes (elles seront donc prioritaires dans la distribution).
Ce type de routage n'est cependant pas celui qui est le plus utilisé. En effet, il reste fragile si le
routeur par défaut et le routeur de secours tombent en panne. Il a cependant d'autres avantages
: il permet la transmission des paquets sécurisés (il n'existe qu'une route entre deux routeurs),
les métriques sont précises, les débits meilleurs, la convergence rapide, le traitement des routes
externes séparé, le debug facile. Par ailleurs, tous les routeurs ont la topologie du réseau dans
leur table, et les tables sont donc cohérentes.

 Protocol de routage par vecteur de distance


Il s'agit là du protocole plus utilisé dans TCP/IP. C'est un protocole moins complexe que OSPF. Il
est basé sur un protocole nommé RIP. Tous les protocoles de routage par vecteur de distance
actuels sont plus ou moins dérivés de RIP. Son succès ne vient pas de ses performances, mais du
fait qu'il a été développé par l'université de Berkeley et livré avec Unix 4. Son objectif initial était
simplement d'interconnecter quelques machines sur un réseau local. Se répandant avec Unix, il a
été implémenté sur des réseaux de plus en plus grands, souvent sans tenir compte de ses
limitations. Du coup, il a été redéveloppé et amélioré pour compenser ses faiblesses. Aujourd'hui
on utilise notamment RIP IP, et RIP 2.
Voici les tâches que doit réaliser ce protocole :
 Découvrir les informations de routage ;
 Détecter les routes défaillantes ;
 Prendre en compte la meilleure route disponible après défaillance d'une autre route ;
 Prévenir les boucles de routage.
Pour réaliser ces tâches, un routeur basé sur RIP ou sur un protocole voisin (par exemple IGRP)
doit adopter un certain nombre de comportements :
 Ajouter dans sa table de routage interne les sous réseaux directement connectés ;
 Envoyer des mises à jour Broadcast ou multicast pour communiquer les informations de
routage aux routeurs adjacents ;
 Ecouter les mises à jour envoyées par les routeurs voisins ; il découvre ainsi de nouvelles
routes et apprend les routes défaillantes ;
 Evaluer l'efficacité d'une route par rapport à une autre (à l'aide d'une métrique).
La table de routage d'un routeur comprend : d'abord le groupe de machines desservies (du type
162.11.7.0), puis l'interface de sortie qui mène à ce groupe (S0, E0, etc), puis le prochain saut
(soit un champ vide si le routeur est directement connecté au groupe, soit l'adresse IP du
routeur qui mène au groupe, directement ou indirectement).
Le terme vecteur de distance prend ici son sens : un routeur A qui enregistre un groupe 162.1.7.0
connecté par l'intermédiaire d'un routeur B ne sait rien de la topologie au-delà de B. Il sait
simplement que le routeur B. mène à ce groupe avec une métrique communiquée par B.
Périodiquement, chaque routeur envoie à ses voisins des mises à jour de sa table. En l'absence
de mises à jour au-delà d'un certain intervalle, les routes communiquées par un routeur sont
supprimées de la table des routeurs voisins, qui supposent que le routeur A est défaillant.

Nous venons donc de définir de façon générale le routage, un protocole de routage et ces architectures.

II. Importance de Quagga


1) De Zebra à Quagga

Rappelons que la fonction de routage peut être décomposée en deux temps : le routage effectif des
paquets (forwarding) et la construction des tables de routage (routing). Tout routeur IP fait du
forwarding mais le routage pouvant être statique, tous ne font pas du routing. Ces deux fonctions sont
typiquement mises en oeuvre par des parties très distinctes du routeur.

Sur Unix, le noyau effectue le forwarding, alors que le routing est confié à un programme extérieur
comme Zebra\Quagga, outil qui regroupe un ensemble de systèmes de gestion de protocoles de routage.
Ils offrent via un système unique la possibilité de gérer RIP, OSPF, BGP... En pratique, Zebra\Quagga se
chargent de mettre à jour les tables de routage de la machine, sous les ordres des démons de routage
utilisés.

Les démons que sont Zebra\Quagga sont donc des intermédiaires entre le noyau de Linux et les démons
de routage dynamique. Pour autant, ils peuvent récupérer les routes statiques définies directement sous
Linux afin de les diffuser via le routage dynamique. Ils permettent eux-mêmes de définir des routes
statiques. Les routages statique et dynamique peuvent donc cohabiter sans problème avec
Zebra\Quagga.
L'un des intérêts de tels programmes est qu'ils offrent un ensemble d'outils permettant d'inspecter à
distance d'autres machines sous Zebra\Quagga et d'étudier les actions en cours et les tables de routage.
Ils permettent également de définir des routes statiques, des règles de filtrage ou encore le contrôle des
échanges entre protocoles différents.

Comme on l’a dit précédemment, le développement de Zebra est plus ou moins arrêté depuis novembre
2003, mois de sortie de la dernière version de ce logiciel. Il reste néanmoins que c'est un système
pratique, car il regroupe, sous un même principe, un grand nombre de méthodes de routage
dynamique ; c'est pourquoi il demeure un outil important pour la gestion de routage dynamique dans
des réseaux de type moyen-grand sous Linux.

Quagga est le digne successeur du programme Zebra. Il se veut plus ouvert, et surtout plus actif que son
prédécesseur. Il est composé, tout comme Zebra, de plusieurs démons qui acceptent chacun des
connexions TCP. Il semble donc facile d'effectuer la configuration de chaque démon via une connexion
telnet. Programme encore en cours d'évolution, Quagga permet la gestion de systèmes de routage
comme RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP-4...

2) Implémentation
3) Avantages et inconvénients

Vous aimerez peut-être aussi