[Top] [Contents] [Index] [ ? ]
Traducteur : Pacôme MASSOL (pacome.massol@laposte.net)
Document mis en ligne le : 13/02/2002 - Dernière modification le : 28/01/2003
La traduction de ce document est une initiative personnelle (avec l'assentiment de l'intiateur du projet K. Ishiguro). Elle n'a donc aucun caractère officiel. Pour l'instant, il s'agit d'une traduction partielle (les parties traduites sont indiquées dans le sommaire ci-dessous). N'hésitez pas à me transmettre tout commentaire, encouragement ou erreur de traduction.
Retour à la page d'accueil.


GNU Zebra

Zebra est un routeur logiciel qui supporte des protocoles de routage basés sur TCP/IP. En outre, il permet la configuration des adresses des interfaces réseau et dispose de fonctionnalités de filtrage avancées.

Ceci est le manuel de GNU Zebra pour la version zebra-0.91 [NDT : valable également pour la 0.92]

1. Vue d'ensemble (traduit)  Présentation générale de Zebra
2. Installation (traduit)  Comment installer Zebra ?

La suite Zebra
3. Commandes élémentaires (traduit)  Commandes élémentaires de Zebra
4. zebra (traduit)  Le gestionnaire de routage
5. ripd (traduit)  Un démon pour le protocole RIP
6. ripngd (traduit)  Un démon pour le protocole RIPng
7. ospfd (traduit)  Un démon pour le procotole OSPF
8. ospf6d (traduit)  Un démon pour le protocole OSPF pour IPv6
9. bgpd  Un démon pour le protocole BGP
10. vtysh (traduit)  Un shell intégré

Fonctionnalités additionnelles
11. Filtrage  Comment filtrer les routes ?
12. Route Map  Description des Route Map
13. Support de IPv6  Support de IP version 6
14. Interface avec le noyau  Interface entre le noyau et Zebra
15. Support de SNMP  Support de SNMP

Annexes
A. Le protocole Zebra  
B. Format des paquets  
Index des commandes  Liste de l'ensemble des commandes
Index des touches  Liste de l'ensemble des touches en mode VTY


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. Vue d'ensemble

Zebra est une suite de logiciels qui founit des services de routage basés sur TCP/IP. Zebra supporte des protocoles tels que RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP-4 et BGP-4+ (voir la section 1.4 RFC supportées). Il supporte également les fonctionnalités de "réflecteur de route" et "serveur de routes" BGP. En plus des traditionnels protocoles de routage IPv4, Zebra prend en charge les protocoles de routage IPv6. Enfin, avec un démon SNMP qui supporte le protocole SMUX, Zebra prend en charge les MIBs pour les protocoles de routage (see section 15. Support de SNMP).

Zebra utilise une architecture logicielle évoluée afin d'offrir un moteur de routage multi-serveur de haut niveau. Zebra a une interface utilisateur interactive pour chaque protocole de routage et propose des commandes communes à partir du client. Du fait de cette architecture, vous pouvez ajouter facilement de nouveaux protocoles à Zebra. Vous pouvez utiliser la librairie Zebra comme interface utilisateur pour vos logiciels clients.

Zebra est un logiciel GNU officiel et est distribué sous la licence GNU General Public License.

1.1 A propos de Zebra  Informations élémentaires sur Zebra
1.2 Architecture système  L'architecture système de Zebra
1.3 Plateformes supportées  Plateformes supportées et perspectives d'évolution
1.4 RFC supportées  RFCs supportées
1.5 Comment se procurer Zebra ?  
1.6 Liste de discussion  La liste de discussion et de diffusion d'informations
1.7 Comment signaler un bug ?  Addresse email pour l'envoi d'informations sur les bugs


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1 A propos de Zebra

Actuellement, la plupart des réseaux à travers le monde fonctionnenent sous TCP/IP. Internet est accessible dans la plupart des pays, à partir des entreprises ou de chez les particuliers. Quand vous vous connectez à Internet, vos paquets de données transitent par un certain nombre de routeurs qui fonctionnent sous TCP/IP.

Un appareil sous Zebra fonctionne comme un routeur dédié. Avec Zebra, votre machine échange des informations de routage avec les autres routeurs. Zebra utilise ces informations pour mettre à jour les tables de routage du noyau. Ainsi les paquets de données arrivent à la bonne destination. Vous pouvez changer dynamiquement la configuration et vous pouvez visionner le contenu des tables de routage à partir d'un terminal connecté à Zebra.

En plus des fonctionnalités de routage, Zebra permet de configurer certains paramètres des interfaces réseau (l'adresse en particulier), des routes statiques, etc. Si vous avez un petit réseau ou une connexion xDSL, vous pouvez configurer Zebra très facilement : seules quelques manipulations pour activer les interfaces réseau et définir les routes statiques et/ou les routes par défaut seront nécessaires. Si le réseau est plus important ou si sa structure évolue fréquemment, vous pourrez tirer partie des protocoles de routage dynamiques supportés par Zebra comme RIP, OSPF ou BGP. Dans toutes ces situations, Zebra vous accompagnera.

Traditionnellement, la configuration des routeurs sous UNIX passe par les commandes ifconfig et route. La commande netstat affiche l'état des tables de routage. La plupart de ces commandes ne sont accessibles qu'aux utilisateurs ayant le statut d'administrateur. L'administration sous Zebra est conçue diffèremment. Il y a deux modes d'utilisation : le mode "normal" (mode view) et le mode "privilégié" (mode enable). Dans le mode normal, on ne peut que consulter l'état du système mais dans le mode privilégié, on peut modifier la configuration. Cette fonctionnalité indépendante de la gestion des comptes d'UNIX sera très appréciable dans l'administration du routeur.

A l'heure actuelle, Zebra supporte les principaux protocoles de routage unicast. Les protocoles de routage multicast comme BGMP, PIM-SM, PIM-DM seront supportés dans la version 2.0 de Zebra. Le support de MPLS est en cours. Dans le futur, des fonctionnalités comme le filtrage TCP/IP, le contrôle QoS, la configuration diffserv seront ajoutées à Zebra. L'objectif final du projet Zebra est de proposer un routeur TCP/IP logiciel, libre et de qualité.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 Architecture système

Les routeurs logiciels sont traditionnellement conçus comme un seul processus qui propose l'ensemble des fonctionnalités de routage. L'approche de Zebra est différente. Il s'agit d'un ensemble de démons qui coopèrent pour construire la table routage. Plusieurs démons de routage correspondant chacun à un protocole particulier peuvent cohabiter et zebra assure la coordination entre ces différents démons.

Les démons ripd, ospfd, bgpd prennent en charge respectivement les protocoles RIP, OSPF version 2 et BGP-4. zebra assure la mise à jour des tables de routage gérées par le noyau et la redistribution des routes entre les différents démons de routage. Cette architecture modulaire facilite l'ajout d'un nouveau démon de routage sans affecter le fonctionnement des autres. Il suffit de lancer le démon associé au protocole dont vous avez besoin. Ainsi, l'utilisateur peut exécuter un démon de routage spécifique qui transmettra les informations de routage vers un point centralisée.

Il n'est pas nécessaire que l'ensemble des démons de routage fonctionnent sur la même machine et une même machine peut exécuter plusieurs fois le même démon de routage. Cette architecture originale offre de nouvelles possibilités pour les systèmes de routage.

 
+----+  +----+  +-----+  +-----+
|bgpd|  |ripd|  |ospfd|  |zebra|
+----+  +----+  +-----+  +-----+
                            |
+---------------------------|--+
|                           v  |
|Table de routage du noyau UNIX|
|                              |
+------------------------------+

    Architecture de Zebra

Une architecture modulaire de ce type facilite l'extension et la maintenance. En contrepartie, cela multiplie les fichiers de configuration et les interfaces de configuration. Chaque démon possède son propre fichier de configuration et son propre terminal virtuel. Par exemple, quand on configure une route statique, il faut travailler sous zebra. Quand on configure un réseau BGP, il faut travailler sous bgpd. Ceci peut paraître fastidieux. C'est pourquoi Zebra propose un shell intégré : vtysh. Il peut se connecter à chaque démon via les sockets UNIX et jouer ainsi le rôle de proxy pour les commandes utilisateur.

Zebra avait été conçu pour fonctionner en mode multi-thread lorsque le noyau supporte ce mécanisme. Mais pour l'instant, les librairies fournies avec GNU/Linux ou FreeBSD ne sont pas encore parfaitement adaptées aux services sensibles comme le routage. C'est pourquoi Zebra n'utilise pas les threads mais les appels système select(2) pour multiplexer les événements.

Quand zebra fonctionnera sous un noyau GNU Hurd, il sera directement responsable de la table de routage. Sous GNU Hurd, tous les services TCP/IP sont fournis par des processus utilisateur dénommés pfinet. Zebra fournira l'ensemble des mécanismes de routage. Cette fonctionnalité sera implémentée lorsque GNU Hurd sera devenu stable.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3 Plateformes supportées

Actuellement, Zebra fonctionne sous GNU/Linux, BSD et Solaris. Ci-dessous, vous trouverez une liste des versions de ces systèmes sous lesquels Zebra tourne. Porter Zebra vers d'autres plateformes n'est pas très difficile car la seule partie de code dépendante de la plateforme se trouve uniquement dans le démon zebra. Les autres démons sont indépendants de la plateforme. N'hésitez pas à nous informer si Zebra fonctionne sous d'autres plateformes.

Certaines piles IPv6 sont en cours de développement. Zebra supporte les piles indiquées ci-dessous. Pour BSD, la pile IPv6 KAME est recommandée. Pour Solaris, IPv6 n'est pas encore supporté.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.4 RFC supportées

La liste ci-dessous indique les RFC supportées à ce jour.

RFC1058
Routing Information Protocol. C.L. Hedrick. Jun-01-1988.

RF2082
RIP-2 MD5 Authentication. F. Baker, R. Atkinson. January 1997.

RFC2453
RIP Version 2. G. Malkin. November 1998.

RFC2080
RIPng for IPv6. G. Malkin, R. Minnear. January 1997.

RFC2328
OSPF Version 2. J. Moy. April 1998.

RFC2740
OSPF for IPv6. R. Coltun, D. Ferguson, J. Moy. December 1999.

RFC1771
A Border Gateway Protocol 4 (BGP-4). Y. Rekhter & T. Li. March 1995.

RFC1965
Autonomous System Confederations for BGP. P. Traina. June 1996.

RFC1997
BGP Communities Attribute. R. Chandra, P. Traina & T. Li. August 1996.

RFC2545
Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing. P. Marques, F. Dupont. March 1999.

RFC2796
BGP Route Reflection An alternative to full mesh IBGP. T. Bates & R. Chandrasekeran. June 1996.

RFC2858
Multiprotocol Extensions for BGP-4. T. Bates, Y. Rekhter, R. Chandra, D. Katz. June 2000.

RFC2842
Capabilities Advertisement with BGP-4. R. Chandra, J. Scudder. May 2000.

Lorsque le support de SNMP est activé, les RFC suivantes sont également supportées :

RFC1227
SNMP MUX protocol and MIB. M.T. Rose. May-01-1991.

RFC1657
Definitions of Managed Objects for the Fourth Version of the Border Gateway Protocol (BGP-4) using SMIv2. S. Willis, J. Burruss, J. Chu, Editor. July 1994.

RFC1724
RIP Version 2 MIB Extension. G. Malkin & F. Baker. November 1994.

RFC1850
OSPF Version 2 Management Information Base. F. Baker, R. Coltun. November 1995.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.5 Comment se procurer Zebra ?

Zebra est toujours en cours de développement et il n'existe pas encore de version définitive officielle. C'est pourquoi vous trouverez la dernière version version béta de Zebra à l'adresse suivante :

ftp://ftp.zebra.org/pub/zebra

Lorsque la version définitive sera distribuée, vous pourrez l'obtenir sur le site FTP (ou les mirroirs) de GNU. Zebra-1.0 sera la première version définitive du logiciel.

Le site web officiel de Zebra est situé à :

http://www.gnu.org/software/zebra/zebra.html.

Le site des béta testeurs de Zebra est situé à :

http://www.zebra.org/.

Vous pouvez obtenir la dernière version béta de Zebra à cette adresse..


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.6 Liste de diffusion

Il existe une liste de discussion sur Zebra. Si vous avez des commentaires ou des suggestions, envoyez un message à : zebra@zebra.org. Toutes les informations, nouvelles, améliorations, notes passent par cette liste.

Pour vous abonner à la liste de discussion, envoyez un message à majordomo@zebra.org avec dans le corps du message :

subscribe zebra

Pour vous désabonner de la liste, envoyez un message à majordomo@zebra.org avec dans le corps du message :

unsubscribe zebra


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.7 Comment signaler un bug ?

Si vous pensez avoir trouvé un bug, merci d'envoyer un message à bug-zebra@gnu.org. Lorsque vous envoyez un message signalant un bug, merci d'inclure les informations suivantes :

Le fait de signaler des bugs est très important pour améliorer la qualité de Zebra. C'est un logiciel encore en développement, c'est pourquoi, n'hésitez pas à les signaler à : bug-zebra@gnu.org.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2. Installation

Il y a trois étapes pour installer le logiciel : configuration, compilation et installation.

2.1 Configurer le logiciel  
2.2 Compiler le logiciel  
2.3 Installer le logiciel  

La façon la plus simple de rendre Zebra exécutable consiste à saisir les commandes suivantes :

 
% configure
% make
% make install


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1 Configurer le logiciel

Zebra possède un script de configuration qui détecte automatiquement la plupart des paramètres de configuration nécessaires pour la machine hôte. Il y a plusieurs options de configuration additionnelles que vous pouvez utiliser pour désactiver le support de IPv6, ne pas compiler certains démons et pour activer le support de SNMP.

'--enable-guile'
Active la compilation de l'interpréteur zebra-guile. Vous aurez besoin de la librairie guile. L'implémentation de zebra-guile n'est pas encore terminée, c'est pourquoi cette option n'est nécessaire qu'aux développeurs.
'--disable-ipv6'
Désactive les fonctionnalités et les démons liés à IPv6. Le script de configuration de Zebra détecte automatiquement la présence d'une pile IPv6. Cependant, vous aurez parfois besoin de désactiver le support de IPv6.
'--disable-zebra'
Ne pas compiler le démon zebra.
'--disable-ripd'
Ne pas compiler le démon ripd.
'--disable-ripngd'
Ne pas compiler le démon ripngd.
'--disable-ospfd'
Ne pas compiler le démon ospfd.
'--disable-ospf6d'
Ne pas compiler le démon ospf6d.
'--disable-bgpd'
Ne pas compiler le démon bgpd.
'--disable-bgp-announce'
Compiler bgpd sans la fonctionnalité d'annonce BGP. Cette option convient pour utiliser bgpd comme listener d'annonces BGP.
'--enable-netlink'
Force l'activation de l'interface netlink GNU/linux. Le script de configuration de Zebra détecte les interfaces netlink en contrôlant un fichier header. Si ce fichier ne correspond pas au noyau en cours d'exécution, le script désactive le support de netlink.
'--enable-snmp'
Active le support de SNMP. Par défaut, le support de SNMP est désactivé.

Vous pouvez spécifier toutes combinaisons de ces options. Par défaut, les exécutables seront placés dans '/usr/local/sbin' et les fichiers de configuration dans '/usr/local/etc'. Le préfixe d'installation '/usr/local/' et les autres répertoires peuvent être changés en utilisant les options suivantes avec le script de configuration :

'--prefix=prefix'
Installe les fichiers indépendants de l'architecture dans prefix [/usr/local].
'--sysconfdir=dir'
Les modèles de fichiers de configuration seront placés dans dir [prefix/etc].

Il existe plusieurs options qui ne sont utilisables que sur les systèmes GNU/Linux : (1).

Cette commande configurera zebra et les démons de routage pour la compilation :
 
% ./configure --disable-ipv6


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.2 Compiler le logiciel

Après avoir configuré le logiciel, vous devrez le compiler pour votre système. Tapez simplement la commande make à la racine des répertoires contenant les sources et le logiciel sera compilé. Pour *tous* les problèmes que vous rencontrerez à cette étape, n'hésitez pas à le signaler (voir section 1.7 Comment signaler un bug ?).

 
% ./configure
.
.
.
./configure output
.
.
.
% make


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.3 Installer le logiciel

L'installation du logiciel sur votre système consiste à copier les fichiers compilés et les fichiers d'aide vers des répertoires prédéterminés. A la fin du processus d'installation, ces fichiers ont été copiés de votre répertoire de travail vers '/usr/local/bin' et '/usr/local/etc'.

Pour installer la suite Zebra, tapez la commande suivante :

 
%
% make install
%

Chaque démon de Zebra possède sa propre interface de commande. Après l'installation, vous devez spécifier le numéro de port qui permet la connexion à chaque démon. Ajoutez les lignes suivantes au fichier '/etc/services' :

 
zebrasrv      2600/tcp		  # zebra service
zebra         2601/tcp		  # zebra vty
ripd          2602/tcp		  # RIPd vty
ripngd        2603/tcp		  # RIPngd vty
ospfd         2604/tcp		  # OSPFd vty
bgpd          2605/tcp		  # BGPd vty
ospf6d        2606/tcp		  # OSPF6d vty

Si vous utilisez un FreeBSD supérieur à la 2.2.8, ces lignes figurent déjà dans '/etc/services'. Il est donc inutile de les ajouter. Si vous spécifiez le numéro de port lors du lancement du démon, il est également inutile d'ajouter ces lignes.

Vous aurez peut-être besoin de modifier les fichiers de configuration '/usr/local/etc/*.conf'. Dans ce cas, reportez-vous à la section 3.1 Commandes de configuration.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. Commandes élémentaires

Il y a cinq démons de routage utilisables et un démon gestionnaire de l'ensemble. Ces démons peuvent fonctionner sur des machines différentes du démon gestionnaire. Chaque démon écoute sur un port particulier pour répondre aux demandes de connexion à partir d'un terminal virtuel (VTY). Les démons de routage sont :

Les sections ci-dessous présentent les commandes communes à l'ensemble des démons de routage.

3.1 Commandes de configuration  Commandes utilisées dans les fichiers de configuration
3.2 Options communes de démarrage  Démarrage des démons
3.3 L'interface de commande en mode VTY  Dialogue avec les démons


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1 Commandes de configuration

3.1.1 Commandes de base pour la configuration  Quelques commandes de configuration indispensables
3.1.2 Fichier de configuration modèle  Un exemple de fichier de configuration

Les fichiers de configuration servent à définir des options de débogage, un mot de passe pour le mode VTY, des options de configuration des démons, le nom d'un fichier journal, etc. Ce fichier sera lu au démarrage par le démon et constituera sa configuration initiale.

Généralement, les fichiers de configuration sont placés dans :

Chaque démon a son propre fichier de configuration. Par exemple, le nom du fichier de configuration par défaut pour zebra est :

Le nom du démon suivi de '.conf' est considéré comme le nom par défaut du fichier de configuration. Vous pouvez spécifier un autre nom de fichier en utilisant les options -f ou --config-file au lancement du démon.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.1 Commandes de base pour la configuration

Commande: hostname nom_hôte {}
Définit le nom du routeur.

Commande: password mot_de_passe {}
Définit le mot de passe pour accéder à l'interface du VTY. Si aucun mot de passe n'est défini, l'accès au terminal de configuration vous sera refusé.

Commande: enable password mot_de_passe {}
Définit le mot de passe du mode privilégié (enable).

Commande: log stdout {}
 
Commande: no log stdout {}
Active ou désactive l'affichage du journal (log) sur la sortie standard (stdout).

Commande: log file filename {}
Si vous voulez rediriger le journal (log) vers le fichier filename, utilisez la commande suivante :
 
log file /usr/local/etc/bgpd.log

Commande: log syslog {}
 
Commande: no log syslog {}
Active ou désactive l'affichage du journal (log) vers syslog.

Commande: write terminal {}
Affiche la configuration actuelle sur le terminal.

Commande: write file {}
Ecrit la configuration actuelle dans le fichier de configuration.

Commande: configure terminal {}
Passe dans le mode configuration. Cette commande est un préalable à toute configuration.

Commande: terminal length <0-512> {}
Définit la largeur de l'affichage du terminal. L'intervalle possible est <0-512>. Si la longueur est 0, aucun affichage ne sera réalisé.

Commande: who {}

Commande: list {}
Liste contextuelle des commandes disponibles.

Commande: service password-encryption {}
Crypte les mots de passe.

Commande: service advanced-vty {}
Active le mode VTY avancé. [NDT : cette commande semble sans effet.]

Commande: service terminal-length <0-512> {}
Définit la largeur d'affichage de l'ensemble des terminaux virtuels.

Commande: show version {}
Affiche la version actuelle de Zebra ainsi que des informations sur la machine où il a été compilé.

Commande: line vty {}
Entre dans le mode de configuration du terminal.

Commande: banner motd default {}
Autorise l'affichage du message d'accueil par défaut.

Commande: no banner motd {}
Aucun message d'accueil ne sera affiché.

Line Command: exec-timeout minutes {}
 
Line Command: exec-timeout minutes secondes {}
Définit la durée d'inactivité au bout de laquelle la connexion avec le terminal virtuel sera rompue. Avec un seul argument, le timeout est considéré en minutes. Le deuxième argument optionnel permet de définir des secondes. Par défaut, le délai est fixé à 10 minutes. La valeur 0 permet de désactiver cette fonctionnalité.

Line Command: no exec-timeout {}
Désactive la fonction de timeout. Commande équivalente à exec-timeout 0 0.

Line Command: access-class access-list {}
Restreint l'accès au terminal virtuel avec une liste d'accès.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.2 Modèle de fichier de configuration

Ci-dessous, vous trouverez un modèle de fichier de configuration pour le démon zebra.

 
!
! Zebra configuration file
!
hostname Router
password zebra
enable password zebra
!
log stdout
!
!

Les caractères '!' et '#' permettent de saisir un commentaire. Si le premier caractère d'un mot commence par l'un de ces deux symboles, le reste de la ligne sera ignoré car considéré comme un commentaire. Dans l'exemple ci-dessous, le '!' ne sera pas considéré comme un commentaire puisque ce n'est pas le premier caractère d'un mot :

 
password zebra!password


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 Options communes de démarrage

Ces options concernent l'ensemble des démons du paquetage Zebra :

'-d'
'--daemon'
Lancement en tant que démon.

'-f file'
'--config_file=file'
Définit le nom du fichier de configuration.

'-h'
'--help'
Affiche l'aide puis se termine.

'-P port'
'--vty_port=port'
Définit le port du terminal virtuel.

'-v'
'--version'
Affiche la version du programme.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3 Interface de commande du VTY

Le terminal virtuel (VTY pour Virtual Terminal [aka TeletYpe]) est un interpréteur de commande. Il permet à l'utilisateur de saisir des commandes à destination des démons de routage.

3.3.1 Vue d'ensemble du VTY  L'essentiel sur les VTYs
3.3.2 Différents Modes VTY  Définition des modes VTY View, Enable et Other
3.3.3 Utilisation du clavier dans le VTY  Touches de déplacement, d'édition et de gestion des commandes


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3.1 Vue d'ensemble du VTY

VTY est l'acronyme de Virtual TeletYpe. Cela signifie que vous pouvez vous connecter aux démons via telnet.

Pour activer le VTY, vous devez avoir defini un mot de passe. Si ce n'est pas le cas, toute connexion au démon vous sera refusée.

 
% telnet localhost 2601
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Hello, this is zebra (version 0.91)
Copyright 1997-2000 Kunihiro Ishiguro


User Access Verification

Password: XXXXX
Router> ?
  enable            Turn on privileged commands
  exit              Exit current mode and down to previous mode
  help              Description of the interactive help system
  list              Print command list
  show              Show running system information
  who               Display who is on a vty
Router> enable
Password: XXXXX
Router# configure terminal
Router(config)# interface eth0
Router(config-if)# ip address 10.0.0.1/8
Router(config-if)# ^Z
Router#

La commande '?' est très utile. Elle vous permet à tout moment de connaître les commandes que vous pouvez saisir.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3.2 Les différents modes VTY

Le terminal virtuel peut se trouver dans un de ces trois modes :

3.3.2.1 Mode VTY "View"  Mode limité à la consultation
3.3.2.2 Mode VTY "Enable"  Mode permettant la configuration
3.3.2.3 Autre modes VTY  Modes spéciaux(tftp, etc.)

Selon le mode dans lequel se trouve le terminal, certaines commandes ne sont pas accessibles.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3.2.1 Mode VTY "View"

C'est un mode de consultation. Vous vous trouvez dans ce mode après la phase de connexion. Vous pouvez en sortir de deux façons : soit en quittant le système soit en entrant dans le mode privilégié via la commande enable.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3.2.2 Mode VTY "Enable"

Le mode privilégié permet la configuration. Vous pouvez en sortir de deux façons : soit en quittant le système soit en retournant au mode View.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3.2.3 Autres modes VTY

Ce paragraphe décrira les autres modes...


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3.3 Utilisation du clavier dans le VTY

Les touches de clavier utilisables dans l'interpréteur de commandes sont décrites dans ces trois paragraphes :

3.3.3.1 Touches de déplacement  Touches pour le déplacement du curseur
3.3.3.2 Touches d'édition  Touches pour la modification du texte
3.3.3.3 Autre touches  Gestion de la session, etc.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3.3.1 Touches de déplacement

Ces touches sont utilisées pour se déplacer à l'intérieur de l'interpréteur de commande. Le symbole C correspond à la touche CTRL. Le symbole M correspond à la touche ALT.

C-f
FLECHE DROIT
Se déplacer d'une position vers la droite.

C-b
FLECHE GAUCHE
Se déplacer d'une position vers la gauche.

M-f
Se déplacer d'un mot à droite.

M-b
Se déplacer d'un mot à gauche.

C-a
Se placer au début de la ligne.

C-e
Se placer à la fin de la ligne.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3.3.2 Touches d'édition

Ces touches sont utilisées pour éditer le texte sur la ligne. Le symbole C correspond à la touche CTRL. Le symbole M correspond à la touche ALT.

C-h
BACKSPACE
Efface le caractère avant le curseur.

C-d
Efface le caractère sous le curseur.

M-d
Supprime du curseur jusqu'à la fin du mot.

C-w
Supprime du début du mot jusqu'au curseur.

C-k
Supprime jusqu'à la fin de la ligne.

C-u
Supprime toute la ligne.

C-t
Intervertit deux caractères.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3.3.3 Autres touches

Des commandes additionnelles permettent de compléter la ligne de commande en fonction des premiers caractères saisis, d'obtenir de l'aide et de gérer la session de travail.

C-c
Interrompt la saisie en cours et passe à la ligne.

C-z
Interrompt la session de configuration et quitte le mode VTY actuel pour le précédent.

C-n
FLECHE BAS
Parcours vers le bas l'historique des commandes saisies pendant la session.

C-p
FLECHE HAUT
Parcours vers le haut l'historique des commandes saisies pendant la session.

TAB
Commande très utile. Elle permet de compléter automatiquement la commande en cours de saisie.

L'aide en ligne est accessible en tapant la commande help sur une ligne vierge. Si vous appuyez sur la touche ? à la suite d'une commande, vous obtiendrez les différents paramètres qui permettent de compléter cette commande.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4. zebra

zebra coordonne le routage IP. Il met à jour les tables de routage du noyau, permet la consultation de l'état des interfaces réseau et redistribue les routes entre les différents protocoles de routage.

4.1 Lancement de zebra  Options au démarrage de zebra
4.2 Commandes relatives aux interfaces réseau  Commandes pour la gestion des interfaces
4.3 Commandes relatives aux routes statiques  Commandes pour ajouter des routes statiques
4.4 Autres commandes en mode terminal  Commands for zebra's VTY


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.1 Lancement de zebra

En plus des options communes à tous les démons (voir section 3.2 Options communes de démarrage), zebra possède les options spécifiques listées ci-dessous :

'-b'
'--batch'
zebra interprète le fichier de configuration et s'arrête immédiatement.

'-k'
'--keep_kernel'
Au démarrage, zebra conserve les routes dèjà insérées dans la table de routage du noyau.

'-l'
'--log_mode'
Génère un journal détaillé.

'-r'
'--retain'
Lorsque zebra se termine, les routes ajoutées par zebraseront conservées.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2 Commandes relatives aux interfaces réseau

Commande: interface nom_if {}
Entre dans le mode de configuration de l'interface nom_if.

Commande interface: shutdown {}
 
Commande interface: no shutdown {}
Active ou désactive l'interface réseau en cours de configuration.

Commande interface: ip address addresse {}
Définit l'addresse ip de l'interface. [NDT : adresse au format A.B.C.D/M avec M indiquant la longueur du masque en nombre de bits].

Commande interface: description description ... {}
Définit un commentaire pour l'interface.

Commande interface: multicast {}
 
Commande interface: no multicast {}
Active ou désactive le multicast sur cette interface.

Commande interface: bandwidth <1-10000000> {}
 
Commande interface: no bandwidth <1-10000000> {}
Définit la "bande passante" pour l'interface. Cette valeur est utilisée par OSPF pour calculer le coût d'une route. Cette commande ne modifie pas le débit actuel de l'interface.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.3 Commandes relatives aux routes statiques

La route statique est un concept fondamental du routage. Grâce à ce mécanisme, on définit les adresses des réseaux que l'on veut joindre ainsi que les interfaces du routeur qui permettent d'atteindre ces réseaux.

Commande: ip route réseau passerelle {}
réseau correspond à l'adresse IP du réseau destination. Elle doit être indiquée au format A.B.C.D/M (M indique le nombre de bits du masque). passerelle est le moyen d'atteindre réseau. Lorsque passerelle est au format A.B.C.D, on considère qu'il s'agit d'une adresse IPv4. Autrement, on considère qu'il s'agit du nom d'une interface.

 
ip route 10.0.0.0/8 10.0.0.2
ip route 10.0.0.0/8 ppp0

Le premier exemple définit une route statique vers le réseau 10.0.0.0/8 via le routeur d'adresse 10.0.0.2, le second définit la même route mais via l'interface ppp0.

Commande: ip route réseau masque passerelle {}
Cette commande est une alternative à la précédente. Ici, le masque réseau peut être défini au format A.B.C.D.

 
ip route 10.0.0.0 255.255.255.0 10.0.0.2
ip route 10.0.0.0 255.255.255.0 ppp0

Contrairement à l'exemple précédent, on a défini le masque de réseau sur 3 octets.

Définition de routes statiques multiples vers une destination unique :

 
ip route 10.0.0.1/32 10.0.0.2
ip route 10.0.0.1/32 10.0.0.3
ip route 10.0.0.1/32 eth0

Si l'interface eth0 est active mais que les routeurs 10.0.0.2 et 10.0.0.3 ne sont pas joignables, seule la dernière route sera activée dans le noyau.

 
zebra> show ip route
S>  10.0.0.1/32 [1/0] via 10.0.0.2 inactive
                      via 10.0.0.3 inactive
  *                   is directly connected, eth0

Ce mécanisme est connu sous le nom de "route statique flottante".

Commande: ip route réseau passerelle distance {}
[NDT : cette commande permet de définir manuellement le "coût" d'une route. L'intervalle de valeurs pour distance est compris entre 1 (valeur par défaut) et 255. On utilise ce paramètre lorsque plusieurs routes statiques mènent vers un même réseau. La route avec la distance la plus faible sera privilégiée par le routeur. L'administrateur affectera à distance la signification qu'il désire. Classiquement, on indique le nombre de routeurs à traverser pour atteindre network (d'où la notion de distance). Mais rien n'empêche d'utiliser un autre critère (débit, coût de la communication, ...)]

Commande: ipv6 route réseau passerelle {}

Commande: ipv6 route réseau passerelle distance {}

Commande: table num_table {}
Sélectionne la table de routage du noyau à utiliser. Ceci ne fonctionne que sur les noyaux qui supportent plusieurs tables de routage (comme GNU/Linux 2.2.x et suivantes). Après avoir choisi num_table avec cette commande, les routes statiques seront ajoutées à la table spécifiée.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.4 Autres commandes en mode terminal

Command: show ip route {}
Affiche les routes actuellement définies dans la base de données de zebra.

 
Router# show ip route 
Codes: K - kernel route, C - connected, S - static, R - RIP, 
       B - BGP * - FIB route.

K* 0.0.0.0/0              203.181.89.241
S  0.0.0.0/0              203.181.89.1
C* 127.0.0.0/8            lo
C* 203.181.89.240/28      eth0

Command: show ipv6 route {}
Idem à la commande ci-dessus mais pour IPv6.

Command: show interface {}
Affiche l'état des interfaces du routeur.

Command: show ipforward {}
Indique si la fonction "IP forwarding" est activée. Sur la plupart des noyaux, on peut la désactiver et si c'est le cas, le routage ne pourra pas fonctionner.

Command: show ipv6forward {}
Idem à la commande ci-dessus mais pour IPv6.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5. ripd

RIP (Routing Information Protocol) est largement répandu parmi les protocoles IGP (Interior Gateway Protocol). Il a été développé dans les années 70 par Xerox est fait partie du protocole de routage XNS. RIP est un protcole à vecteur de distance basé sur les algorithmes de Bellman-Ford. Un routeur RIP envoie ses tables de routage périodiquement à ses voisins. Ainsi, en cas d'un changement de topologie (panne d'une ligne par exemple), l'information se propage et une convergence s'opère automatiquement entre les différents routeurs RIP du réseau. RIP étant un protocole à vecteur de distance, le routeur expédie à ses voisins la distance qu'il a calculé pour atteindre les réseaux présents dans sa table de routage.

[NDT : RIP est un protocole de routage dit "adaptatif". On parle de routage dynamique car il propage ses tables de routage ainsi que des informations sur les changements de topologie.]

ripd supporte RIP version 2 conforme à la RFC2453 et RIP version 1 conforme à la RFC1058.

5.1 Arrêt et démarrage de ripd  
5.2 Configuration de RIP  
5.3 Comment diffuser les routes avec RIP ?  
5.4 Filtrer les routes RIP  
5.5 Utilisation de la métrique RIP  
5.6 Notion de distance avec RIP  
5.7 Notion de route-map avec RIP  
5.8 Authentification avec RIP  
5.9 Les temporisateurs RIP  
5.10 Afficher les informations concernant RIP  
5.11 Débogage de RIP  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.1 Arrêt et démarrage de ripd

Le nom du fichier de configuration par défaut de ripd est 'ripd.conf'. Lors de son lancement, ripd le cherche dans le répertoire '/usr/local/etc'. Si 'ripd.conf' est absent, alors il cherche dans le répertoire courant.

RIP utilise le port UDP 521 pour envoyer et recevoir les paquets RIP. Le protocole RIP a besoin des informations sur les interfaces gérées par le démon zebra, c'est pourquoi il est indispensable à ripd. Ainsi, les commandes minimales pour activer RIP sont :

 
# zebra -d
# ripd -d

Notez bien que zebra doit être lancé AVANT ripd.

Pour arrêter ripd, utilisez la commande kill 'cat /var/run/ripd.pid'. Certains signaux ont une signification particulière pour ripd.

'SIGHUP'
Recharger le fichier de configuration 'ripd.conf'. Toute la configuration sera réinitialisée. Toutes les routes définies dynamiquement par RIP seront retirées de la table de routage.
'SIGUSR1'
Opère une "rotation" des fichiers journaux de ripd.
'SIGINT'
'SIGTERM'
ripd efface toutes les routes définies dynamiquement par RIP et s'arrête proprement.

En plus des options communes à tous les démons (voir section 3.2 Options communes de démarrage), ripd possède l'option spécifique suivante :

'-r'
'--retain'
Retenir les routes ajoutées par ripd lorsque le démon se termine.

5.1.1 RIP netmask  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.1.1 Masque réseau et RIP

ripd supporte les versions 1 et 2 de RIP ainsi que les masques de sous-réseau. A l'origine, RIP v1 ne véhiculait pas d'information sur les masques réseau. Le masque était uniquement déterminé à partir de la classe de l'adresse. Lorsque l'adresse était de classe A, la longueur du masque était de 8 bits, pour une classe B, il était de 16 et de 24 pour une classe C. Aujourd'hui, la méthode la plus répandue consiste à associer un masque à l'interface. Ce masque est utilisé pour chaque paquet reçu. RIP v2 supporte les masques à taille variable (VLSM : Variable Length Subnet Mask). En étendant le masque réseau par défaut, on peut décomposer l'adresse réseau en sous-réseaux à partir d'une adresse IP unique. Ceci facilite l'administration de réseaux de taille importante ou qui intègrent plusieurs segments LANs et WANs.

Note : ripd ne supporte pas les masques réseau non séquentiels inclus dans RIP v2.

Si ripd reçoit une mise à jour qui intègre une adresse réseau et une métrique déjà connue, l'ancienne information sera remplacée.

Note : pour l'instant, ripd ne supporte pas les routes multiples vers la même destination avec la même métrique.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.2 Configuration de RIP

Commande: router rip {}
Cette commande active le routeur RIP. Pour le désactiver, utilisez la commande no router rip. Le routeur RIP doit être activé avant toute configuration de routage.

Commande: no router rip {}
Désactive RIP.

RIP peut être configuré pour traiter les paquets version 1 ou 2, le mode par défaut étant la version 2 lorsque rien n'est spécifié. Si RIP est forcé sur version 1 (voir commande version), le paramétrage "Version 1" sera indiqué. Par contre, le paramétrage "Version 2" ne sera jamais indiqué, qu'il soit forcé ou non.

Commande RIP: network réseau {}
 
Commande RIP: no network réseau {}
Cette commande active ou désactive le routage RIP sur les interfaces dont l'adresse réseau correspond au préfixe qui a été indiqué. Par exemple, après la commande network 10.0.0.0/24, RIP sera activé sur toutes les interfaces du routeur dont les adresses IP sont comprises entre 10.0.0.0 et 10.0.0.255. La commande no network désactive la commande précédente.

Commande RIP: network nom_if {}
 
Commande RIP: no network nom_if {}
Cette commande active ou désactive RIP sur l'interface nom_if spécifiée. Comme pour la commande précédente, la réception et la transmission de paquets RIP seront activées. La commande no network nom_if désactive RIP sur l'interface nom_if.

Commande RIP: neighbor adresse {}
 
Commande RIP: no neighbor adresse {}
Indique à RIP l'adresse d'un routeur voisin qui ne supporte pas le multicast. Cette commande peut être utile car RIP utilise des adresses de groupe (adresses multicast) pour transmettre ses informations de routage à ses voisins. Cette commande permet à l'administrateur d'établir un lien direct avec un routeur et de le considérer comme un routeur RIP. La commande no neighbor adresse désactive l'appareil d'adresse A.B.C.D comme routeur RIP.

Ci-dessous se trouve une configuration RIP très simple. RIP est activé sur l'interface eth0 et sur les interfaces dont l'adresse réseau correspond avec le préfixe 10.0.0.0/8.

 
!
router rip
 network 10.0.0.0/8
 network eth0
!
[NDT : il faut également indiquer quelles sont les routes à redistribuer (voir 5.3)]

Déclaration d'une interface passive :

Commande RIP: passive-interface nom_if {}
 
Commande RIP: no passive-interface nom_if {}
Cette commande passe l'interface spécifiée en mode "passif". Dans ce mode, les paquets RIP reçus sont considérés comme des paquets "normaux". Le routeur ne les utilise pas pour mettre à jour sa table de routage. ripd n'expédie plus de paquets multicast ou unicast sauf si des voisins RIP ont été définis par la commande neighbor.

Gestion des versions du protocole RIP :

Commande RIP : version version {}
Définir la version de RIP supportée par le routeur. version peut être "1" ou "2".

Commande interface : ip rip send version version {}
version peut être '1', '2' ou '1 2'. Cette configuration propre à l'interface l'emporte sur la version de RIP définie au niveau du routeur par version. Suivant le cas, des paquets RIP v1 et/ou v2 pourront être émis sur cette interface. Si '1 2' est spécifié, les paquets RIP pourront être émis à la fois sous forme de broadcast et de multicast.

Commande interface : ip rip receive version version {}
Suivant le cas, des paquets RIP v1 et/ou v2 seront acceptés sur cette interface.

Gestion du "clivage d'horizon" (split horizon) :

Commande interface : ip split-horizon {}
 
Commande interface : no ip split-horizon {}
Contrôle le "split-horizon" sur l'interface. La configuration par défaut est ip split-horizon. La commande no ip split-horizon permet de désactiver cette fonction. [NDT : le split horizon évite que des boucles infinies ne se créent lors de la diffusion de routes.]


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.3 Comment diffuser les routes avec RIP ?

[NDT : la commande redistribute indique quels types de routes seront intégrés à la table de routage gérée par RIP et donc susceptibles d'être diffusés.]

Commande RIP : redistribute kernel {}
 
Commande RIP : redistribute kernel metric <0-16> {}
 
Commande RIP : redistribute kernel route-map route-map {}
 
Commande RIP : no redistribute kernel {}
La commande redistribute kernel redistribue les informations de routage détenues par le noyau vers la table de routage RIP. La commande no redistribute kernel désactive cette redistribution.

Commande RIP : redistribute static {}
 
Commande RIP : redistribute static metric <0-16> {}
 
Commande RIP : redistribute static route-map route-map {}
 
Commande RIP : no redistribute static {}
La commande redistribute static redistribue les informations de routage statiques vers la table de routage RIP. La commande no redistribute static désactive cette redistribution.

Commande RIP : redistribute connected {}
 
Commande RIP : redistribute connected metric <0-16> {}
 
Commande RIP : redistribute connected route-map route-map {}
 
Commande RIP : no redistribute connected {}
Redistribue les routes de type "connecté" [NDT : adresses réseau déduites de l'adresse IP des interfaces physiquement installées dans le routeur] vers la table de routage RIP.

Commande RIP : redistribute ospf {}
 
Commande RIP : redistribute ospf metric <0-16> {}
 
Commande RIP : redistribute ospf route-map route-map {}
 
Commande RIP : no redistribute ospf {}
La commande redistribute ospf redistribue les informations de routage en provenance de OSPF dans les tables de routage RIP.

Commande RIP : redistribute bgp {}
 
Commande RIP : redistribute bgp metric <0-16> {}
 
Commande RIP : redistribute bgp route-map route-map {}
 
Commande RIP : no redistribute bgp {}
La commande redistribute bgp redistribue les informations de routage en provenance de BGP dans les tables de routage RIP

Commande RIP : default-information originate {}
Autorise la diffusion des routes par défaut.

Vous pouvez indiquer des routes statiques directement dans RIP :

Commande RIP : route a.b.c.d/m {}
 
Commande RIP : no route a.b.c.d/m {}
Cette commande est spécifique à Zebra. La commande route crée une route statique utilisée uniquement par RIP. Cette commande ne devrait être utilisée que par de fins connaisseurs de RIP. Dans la plupart des cas, il est recommandé de créer une route statique dans zebra puis de la redistribuer dans RIP avec un redistribute static.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.4 Filtrer les routes RIP

Les routes RIP peuvent être filtrées par une liste de distribution (distribute-list).

Commande RIP : distribute-list access_list direct nom_if {}
La commande distribute-list permet d'appliquer une liste d'accès à une interface. access_list est le nom de la liste d'accès. direct est soit 'in' pour les paquets entrants, soit 'out' pour les paquets sortants. Cette commande permet de filtrer la constitution de la table de routage ou la diffusion de routes.

Par exemple, dans la configuration ci-dessous, seule la route 10.0.0.0/8 entrant par l'interface 'eth0' sera intégrée à la table de routage :

 
!
router rip
 distribute-list private in eth0
!
access-list private permit 10 10.0.0.0/8
access-list private deny any
!

La commande distribute-list peut être appliquée à la fois sur les flux entrants et sortants.

Commande RIP : distribute-list prefix prefix_list direct nom_if {}
Idem à la commande précédente, on indique une liste de préfixes (prefix-list) à la place de la liste d'accès.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.5 Utilisation de la métrique RIP

La métrique utilisée par RIP représente la distance [NDT : nombre de routeurs traversés, également appelée "saut" ou "hop"] pour atteindre un réseau. Par défaut, ripd ajoute 1 la métrique des routes reçues dynamiquement. La métrique des routes "redistribuées" (voir section 5.3 Comment diffuser les routes avec RIP ?) est initialisée à 1 par défaut.

[NDT : cette métrique est différente de la notion de distance (voir paragraphe suivant) : lorsque la métrique d'une route atteint 16, RIP ne diffuse plus d'information sur cette route à ses voisins.]

Commande RIP : default-metric <1-16> {}
 
Commande RIP : no default-metric <1-16> {}
Cette commande modifie la valeur par défaut (égale à 1) de la métrique affectée aux routes redistribuées. Cette commande n'affecte pas les routes de type "connecté" même si elles sont redistribuées par redistribute connected. Pour modifier cette métrique, utilisez les commandes redistribute connected metric ou route-map.

La commande offset-list permet également de modifier la métrique :
Commande RIP : offset-list access-list (in|out) {}
 
Commande RIP : offset-list access-list (in|out) nom_if {}


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.6 Notion de distance avec RIP

La notion de distance est utilisée par le démon zebra. Par défaut, la distance des routes découvertes par RIP est de 120.

[NDT : il s'agit de la distance administrative. Elle permet de ne conserver dans la table de routage qu'une entrée lorsque le routeur reçoit des routes identiques par différents protocoles. Chaque protocole a une "distance" par défaut (0 pour les réseaux connectés, 1 pour les routes statiques, 110 pour OSPF, 120 pour RIP, etc.). Le démon zebra ne conserve que la route provenant du protocole dont la distance administrative est la plus faible.]

Commande RIP : distance <1-255> {}
 
Commande RIP : no distance <1-255> {}
Définit la valeur par défaut de la distance administrative de RIP.

Commande RIP : distance <1-255> adresse {}
 
Commande RIP : no distance <1-255> adresse {}
Définit la valeur par défaut de la distance administrative de RIP lorsque l'adresse du routeur à l'origine de cette route coïncide avec le préfixe spécifié au format a.b.c.d/m.

Commande RIP : distance <1-255> adresse access-list {}
 
Commande RIP : no distance <1-255> adresse access-list {}
Définit la valeur par défaut de la distance administrative RIP lorsque l'adresse du routeur à l'origine de cette route coïncide avec le préfixe spécifié au format a.b.c.d/m et à la liste d'accès spécifiés.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.7 Notion de route-map avec RIP

Ce paragraphe présente le mode d'emploi de la fonctionnalité route-map avec ripd.

L'argument optionnel route-map MAP_NAME peut être ajouté aux commandes redistribute.

 
redistribute static [route-map MAP_NAME]
redistribute connected [route-map MAP_NAME]
...

Cisco applique les route-map avant que les routes ne soient exportées dans la table de routage de RIP. Dans la version actuelle de Zebra, ripd applique les route-map après que les routes aient été intégrées à la table de routage mais avant que les routes ne soient diffusées. Ceci est une ébauche qui devrait évoluer dans les versions futures.

La commande route-map (voir section 12. Route Map) est nécessaire pour activer cette fonctionnalité sur le routeur.

Commande match :

Commande route-map : match metric n
Vérifie si la métrique de la route correspond à n.

Commande route-map : match ip address access-list
Vérifie si la route de destination est validée par la liste d'accès.

Commande route-map : match ip next-hop adresse
Vérifie si la route possède comme adresse de "prochain saut" (next-hop indiqué par un show ip rip) l'adresse spécifiée.

Commande route-map : match interface nom_if
ripd n'autorise pour l'instant qu'un seul nom d'interface, il s'agit du nom de l'interface sur laquelle le paquet sera envoyé.

Comande set:

Commande route-map : set metric <0-4294967295>
Définit une métrique pour les routes répondant aux critères lors de leur diffusion. La plage de valeur est très importante pour permettre une compatibilité avec d'autres protocoles. Pour RIP, l'intervalle valide est de 1 à 16.

Commande route-map : set next-hop adresse
Définit l'adresse du "prochain saut".


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.8 Authentification RIP

[NDT : ces commandes permettent de mettre en place sur une interface un mécanisme d'authentifcation de routeur RIP à routeur RIP.]

Commande interface : ip rip authentication mode text {}
 
Commande interface : no ip rip authentication mode text {}
Active ou désactive la méthode d'authentification "simple" pour RIPv2 sur l'interface. [NDT : le mot de passe circule en clair !]

Commande interface : ip rip authentication string chaîne {}
 
Commande interface : no ip rip authentication string chaîne {}
Cette commande permet de définir la chaîne d'authentification utilisée dans la méthode "simple" pour RIPv2. La taille de la chaîne ne doit pas dépasser 16 caractères.

Commande interface : ip rip authentication mode md5 {}
 
Commande interface : no ip rip authentication mode md5 {}
Active ou désactive la méthode d'authentification MD5 pour RIPv2 sur l'interface. [NDT : mot de passe crypté, ouf !]

Commande interface : ip rip authentication key-chain key-chain {}
 
Commande interface : no ip rip authentication key-chain key-chain {}
Specifie la clé MD5.

 
!
key chain test
 key 1
  key-string test
!
interface eth1
 ip rip authentication mode md5
 ip rip authentication key-chain test
!


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.9 Les temporisateurs RIP

Commande RIP : timers basic update timeout garbage {}

Le protocole RIP fonctionne avec différents temporisateurs (timers). L'administrateur peut les configurer avec la commande timers basic.

Le paramétrage par défaut est le suivant :

La commande timers basic permet de modifier les valeurs par défaut citées ci-dessus.

Commande RIP : no timers basic {}
Cette commande restaure les valeurs par défaut.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.10 Afficher les informations concernant RIP

Commandes pour afficher les routes connues de ripd.

Commande : show ip rip {}
Cette commande affiche toutes les routes connues par ripd. Pour les routes qui ont été reçues via RIP, la commande affiche l'heure à laquelle le paquet a été reçu ainsi qu'un résumé. Cette commande affiche également les routes qui ont été redistribuées dans RIP.

Commande : show ip protocols {}
Cette commande affiche l'état actuel de RIP. Cela inclut les différents timers gérés par RIP, les informations sur le filtrage, la version du protocole, les interfaces sur lesquelles RIP est activé ainsi que des informations sur les routeurs voisins.

 
ripd> show ip protocols
Routing Protocol is "rip"
  Sending updates every 30 seconds with +/-50%, next due in 35 seconds
  Timeout after 180 seconds, garbage collect after 120 seconds
  Outgoing update filter list for all interface is not set
  Incoming update filter list for all interface is not set
  Default redistribution metric is 1
  Redistributing: kernel connected
  Default version control: send version 2, receive version 2 
    Interface        Send  Recv
  Routing for Networks:
    eth0
    eth1
    1.1.1.1
    203.181.89.241
  Routing Information Sources:
    Gateway          BadPackets BadRoutes  Distance Last Update


[ < ] [ > ]