Cisco : R&S 2

De Justine's wiki
Aller à la navigation Aller à la recherche

Cette page contient l'ensemble de mes notes concernant le cours CCNA : R&S2 de Cisco.  

Chapitre 1 : Concepts du routage

Les réseaux qui nous permettent de communiquer utilisent, au niveau de la couche 2, des commutateurs sur la couche liaison de données, afin de transmettre les trames entre les périphériques d'un même réseau. Cependant, lorsque la destination se trouve sur un réseau différent, on utilise pour cela un routeur, qui relie les réseaux entre eux. Ils utilisent leur table de routage pour déterminer la meilleure route à emprunter; l'efficacité du réseau dépend de l'efficacité de ce routage.  Nous avons déjà vu le concept de passerelle par défaut; nous verrons ici ce que fait un routeur quand il reçoit un paquet qui est destiné à un autre réseau. Nous verrons les détails de la table de routage, y compris les routes connectées statiques, dynamiques.

Caractéristique d'un réseau

De nombreux indicateurs en terme de structures et de performances sont utilisé pour étudier les réseaux:

  • Topologie : On distingue topologie physique (les câbles, périphériques et systèmes finaux) et topologie logique (chemin emprunté par les données dans un réseau, comment les périphériques réseaux sont connectés aux utilisateurs).
  • Vitesse : en bits par seconde (qui est, techniquement, la bande passante et pas la vitesse des électrons sur le câble, ou même la latence...).
  • Coût : Dépense concernant conception, installation, maintenance
  • Sécurité : Niveau de protection du réseau, englobe les informations transmises sur celui-ci.
  • Disponibilité : Probabilité que le réseau soit disponible quand on en a besoin
  • Évolutivité : Facilité avec laquelle le réseau peut acceuillir plus d'utilisateurs et répondre à davantage de demandes.
  • Fiabilité : Capacité des élements constitutifs du réseau à fonctionner sans incidents

Tous ces attributs permettent de comparer différentes solutions réseau.

Pourquoi le routage? Les routeurs en action

On l'a dit, le but d'un routeur est de relier deux réseaux entre eux. La communication entre réseaux serait impossible sans un routeur pour déterminer le meilleur chemin à emprunter vers le prochain tronçon.

Les routeurs sont des ordinateurs : tout comme n'importe quel smarthphone par exemple, il utilisent un CPU, de la RAM, et des supports de stockage. Il s'agit cependant d'un ordinateur spécialisé, qui utilise lui aussi des mémoires volatiles et non volatiles.

Rappel des mémoires d'un routeur :

Memoirerouteur.png

Les routeurs interconnectent les réseaux, d'une façon généralement transparente pour l'utilisateur; le professionnel sait que c'est le routeur qui ets chargé de transmettre le paquet à un autre réseau. Lorsqu'un routeur reçoit un paquet sur une de ses interfaces, il détermine quelle interface utiliser pour retransmettre le paquet à un autre réseau, ou à la destination finale. Chaque interface reçoit un réseau différent, qu'il soit LAN ou WAN. Ils ont deux fonctions principales :

  • Choisir le meilleur chemin
  • Transférer les paquets vers leur destination.

Pour résumer le fonctionnement d'un routeur qui rçoit un paquet :

  • Il reçoit le paquet sur une de ses interfaces
  • Il regarde l'adresse IP de destination du paquet
  • Il regarde dans sa table de routage pour trouver le meilleur chemin vers cette destination (il cherche à la fois l'adresse IP du réseau de destination ou du prochain tronçon, ainsi que l'interface à utiliser).
  • Il réencapsule le paquet IP (couche 3) dans une trame (couche 2) avant de le renvoyer.

Il est possible qu'un routeur réencpasule le paquet dans un autre type de trame que celui qui as été utilisé au départ : il peut recevoir une trame ethernet et la renvoyer sous forme de trame PPP; cela dépend du type d'interface (on peut citer Ethernet, Frame Relay, DSL, câble et sans fil avec 802.11, Bluetooth, etc...).

Mécanisme de transfert des paquets

Les routeur prennent en charge trois mécanismes de transfert de paquets :

  • Commutation de processus : Mécanisme ancien, toujours disponible chez Cisco. Lorsqu'un paquet arrive sur une interface, il est transmis au plan de contrôle (un genre de table d'examen, disons) où le CPU fait correspondre l'adresse de dst avec une entrée de sa table de routage, puis détermine l'interface avant de transmettre le paquet. Cela est répété pour chaque paquet, même si ils sont d'une même série, ce qui rend ce processus lent et peu utilisé : c'est l'équivalent d'un calcul à la main.
  • Commutation rapide : En plus du plan de contrôle habituel, cette méthode utilise un plan de données , lequel contient un cache d'avance rapide, qui contient les informations sur les paquets déjà passés par le routeur. Lorsqu'un paquet arrive, on recherche d'abord une correspondance dans le cache via l'adresse de destination, avant de l'envoyer à défaut au plan de contrôle. Si un paquet à une correspondance dans le cache, il est renvoyé sans intervention du processeur : c'est l'équivalment d'un calcul manuel qui mémorise les solutions pour les problèmes suivants.
  • CEF (Cisco Express Forwarding): Mécanisme de transfert de paquets Cisco le plus récent. Il génère pour sa part une table FIB et une table de contiguïté. Les entrées de table ne sont cependant pas déclenchées par les paquets mais par les changements de topologie du réseau. Du coup, lorsqu'un réseau à convergé, les deux tables contiennent les informations qu'un routeur doit prendre en compte lors d'un transfert du paquet (les tables sont établies au moment où le réseau converge, i.e au moment où il est opérationnel, et elles ne bougent en principe plus tant que lréseau n'est pas modifié). La table FIB contient les informations de recherches pré-informatisées, les informations de tronçon suivant pour les routes incluant l'interface et les informations de couche 2. C'est le mécanisme le plus rapide. C'est comme résoudre en avance tous les problèmes possibles dans un tableur.

Passerelles par défaut

Les périphériques qui ont accès au réseau sont configurés avec:

  • Adresse IP
  • Masque
  • Passerelle par défaut.

La passerelle par défaut sert à envoyer les paquets à un périphérique situé sur un autre réseau, puisqu'un périphérique ne peut pas communiquer directement sur un autre réseau. La passerelle par défaut sert à router le trafic local vers un réseau distant, en général en passant par internet, et c'est généralement l'adresse locale du routeur, qui gère des entrées de table de routage pour les réseaux locaux ainsi que pour les réseaux distants. Un routeur a en général sa propre "passerelle par défaut" : c'est la passerelle de dernier recours, qui est employé quand le routeur ne sait pas quel est le meilleur chemin.

Documentation de l'adressage réseau, activation de l'IP sur un hôte

Lorsque l'on conçoit un réseau, il convient de documenter les adresses, au minimum :

  • Noms des périphériques
  • Interfaces utilisées
  • @IP et masque
  • adresse de gateway.

Cela peut se faire soit sous la forme d'un schéma de topologie logique, soit sous la forme d'un tableau.

Un hôte peut recevoir les informations de façon statique ou dynamique (avec DHCP, SLAAC...).

LEDs des périphériques (sur la carte réseau) et câbles console

Les cartes réseau contiennent en général un ou deux voyants à LED. Une LED verte indique une bonne connexion, tandis qu'une LED verte clignotante fait état d'une activité réseau. La signification dépend du fabricant (chez moi, elles sont vertes et oranges...) mais un voyant éteint est généralement mauvais signe. Les périphériques réseau utilisent souvent plusieurs voyants LED pour donner un aperçu de leur état. Voici un aperçu du fonctionnement des LEDs sur un routeur Cisco 1941 :

Ciscoleds.png

Dans un environnement de production, les périphériques sont administrés via SSH; cependant, il faut bien utiliser un câble console la première fois qu'on les configure. Il peut s'agir d'un câble console, usb vers RS-232, ou d'un câble USB type A vers usb type B (mini USB) pour les équipements plus récents. On utilise ensuite un pilote et un terminal, même si c'est en général une BONNE GALÈRE.

Activation de l'IP sur un commutateur

Sur un switch, les informations IP sont configurées sur une SVI (Interface Virtuelle Commutée), en général VLAN 1.

SVICisco.png

Pour la configuration de base d'un routeur: Cisco (cf Chapitre 6)

Configuration d'une interface série connectée avec un câble DCE (clock rate)

Dans ce cas, il faut utiliser la commande clock rate, en plus des informations concernant l'adressage. Si on a une erreur, c'est qu'on l'utilise sur une interface DTE. La valeur donnée en exemple est 128000, cette valeur correspondant à la vitesse des cycles d'horloge et donc à la bande passante. On peut voir les valeurs possibles avec clock rate ?, 128000 correspondant à 2M.

Configuration d'une interface du routeur en IPv6

Avec des adresses fixes, cela fonctionne de la même façon qu'en IPv4:

RTENOTITLE

Encore une fois, la plupart des informations sont déjà disponibles dans la section Cisco R&S 1.

Configuration d'une interface de bouclage IPv4

On peut changer l'adresse de la loopback sur un routeur : cela ne sert à priori à rien, mais peut s'avérer utile pour certains tests, notamment OSPF.

Router(config)# interface loopback number

Router(config-if)# ip address ip-address subnet-mask

Router(config-if)# exit

On peut avoir plusieurs interfaces de bouclage, mais pas en avoir deux identiques.

Rappel des commandes vérification réseau

Pour rappel, on peut utiliser comme commandes de vérification du réseau:

  • show ip/ipv6 interfaces brief
  • show ip/ipv6 route
  • show running-config interface NomDeL'Interface
  • Show ipv6 interface NomDeL'Interface

Filtrage des résultats de la commande show, historique de commandes

Les commandes qui génèrent de longues sorties se limitent en général à 24 lignes après que l'on doive appuyer sur espace pour voir la suite (on peut utiliser la commande terminal length pour modifier ce nombre de lignes).

On peut cependant filtrer les résultats avec un pipe | .Après le pipe, on peut mettre un mot-clef suivi d'une expression de filtrage (ce que l'on cherche, en gros). Ces mots-clefs sont:

  • section : l'ensemble de la section commençant par l'expression de filtrage
  • Include : toutes les lignes de résultat correspondant à l'expression de filtrage
  • exclude toutes les lignes sauf l'expression de filtrage
  • begin : toutes les lignes de résultat à partir d'un certain point, en commençant par la ligne qui contient l'expression de filtrage.

Exemple :

show ip interface brief | exclude unassigned
show ip route | begin Gateway

Historique des commandes déjà passées

En plus de la traditionnelle flèche haut, on peut utiliser ctrl+P, la flèche bas pouvant être remplacée par ctrl+N. On peut utiliser également :

  • terminal history size : détermine le nombre de commandes qui sont retenues dans le cache
  • show history (avec un éventuel pipe) : montrer l'historique

Fonctions de commutation du routeur

Le routeur fait appel à la fonction de commutation pour acheminer les paquets, qui est la fonction utilisée pour recevoir les paquets d'une interface et les envoyer sur une autre. La fonction de commutation du routeur (on parle bien ici de désigner les paquets sui se déplacent d'une source vers une destination en utilisant ce terme, rien à voir avec les commutateurs de couche 2) a pour responsabilité principale d'encapsuler les paquets dans le type de trame liaison de données adéquat pour la liaison données de sortie. Que fait un routeur d'un paquet qu'il rçoit d'un réseau et qui est destiné à un autre réseau?

  • Il désencapsule l'en-tête et la queue de bande de trame de couche 2 pour isoler le paquet de couche 3
  • Il examine l'IP de destination pour trouver un chemin dans sa table de routage
  • Si il trouve un chemin, il encapsule le paquet de couche 3 dans une nouvelle trame de couche 2 et transfère la trame au périphérique suivant, à l'aide de son adresse MAC (sauf sur une liaison série, qui n'utilise pas d'adresses MAC).

Il est courant que les paquets aient un format de trame différent à l'expédition et à la réception.

Routagetroncons.png

Décisions de routage

Lorsqu'un routeur détermine le meilleur chemin en cherchant dans sa table de routage, il peut choisir un parmi 3 types de chemins :

  • Réseau directement connecté : utilisé quand l'IP de destination est située dans un réseau auquel appartient également une des interfaces du routeur. Le paquet est directement transféré à la destination.
  • Réseau distant : Si l'adresse IP appartient à un réseau distant, le paquet est transféré à un autre routeur (puisque le réseau n'est pas directement accessible).
  • No route determined : Si l'IP n'appartient ni à un réseau local ni à un réseau distant connu, le routeur l'envoie à la passerelle de derniers recours (celle-ci est définie quand une route par défaut est déterminée sur le routeur), si il en a une. Sinon, il largue le paquet.

Laviedunrouteur.png

Meilleur chemin

La détermination du meilleur chemin implique d'évaluer plusieurs chemins menant au même réseau, et de choisir le chemin optimal ou le plus courtpour l'atteindre. Lorsque plusieurs chemins existent vers une destination, chaque chemin part d'une interface différente.

Le meilleur chemin est sélectionné par un protocole de routage qui utilise une valeur (ou métrique) pour déterminer la "distance" à parcourir jusqu'à la destination. Une métrique est une valeur quantitative utilisée pour mesurer la distance jusqu'à un réseau donné. Le meilleur chemin a la métrique la plus faible. Les protocoles de routage dynamique utilisent en général leurs propres règles et métriques pour constituer et màj leur table de routage : l'algorithme génère une métrique pour chaque chemin emprunté. Les métriques peuvent se baser sur différentes caractéristiques d'un chemin, et peuvent être combinées.

Quelques protocoles dynamiques et les métriques qu'ils utilisent :

  • RIP (Routing Information Protocol): nombre de sauts
  • OSPF (Open Shortest Path First) : coût de Cisco basé sur la bande passante cumulée entre la source et la destination
  • EIGRP (Enhanced Interior Gateway Routing Protocol) : bande passant, délai, charge, fiabilité.

Équilibrage de charge

Un routeur peut avoir plusieurs chemins avec une métrique identique. Quand c'est le cas, il répartir la charge entre les deux chemins (on appelle cla équilibrage de charge ou coût égal, load balancing quoi!). Dans ce genre de cas, la table de routage contient un réseau de destination auquel sont rattachés plusieurs interfaces de sortie, une par chemin. Les paquets sont balancés entre les différentes interfaces. Le load balancing améliore les performances. L'équilibrage de charge à coût égal peut être utilisé en routage statique ou dynamique.

Seul EIGRP prend en charge l'équilibrage à coût inégal.

Distance administrative

Un seul et même routeur peut être configuré avec différents protocoles de routage et des routes statiques. Dans ce cas, la table de routage peut disposer de plusieurs sources de route pour un même réseau de destination. Si par exemple j'ai RIP et EIGRP sur un même routeur les deux protocoles peuvent détecter le même réseau de destination, mais avec des chemins différents. Comment le routeur sait quel chemin prendre, puisque les métriques ne sont pas comparables?

Cisco IOS utilise la Distance Administrative (AD) pour déterminer la route à installer dans la table de routage IP. Le domaine administratif représente le degré de fiabilité de la route, le plus faible étant le meilleur. Par exemple, une route statique a un Domaine Administratif de 1, alors qu'une route découverte avec EIGRP a une valeur de 90. Sur les deux routes distinctes, le routeur choisira le plus faible domaine administratif. Ici, la route statique sera prioritaire; de la même façon une route directement connectée (avec un domaine administratif de 0) sera prioritaire sur une route statique.

Ci-dessous, les protocoles de routage et leur domaines adminstratifs.

RTENOTITLE

 

Fonctionnement d'un routeur

La table de routage (show ip route)

La table de routage d'un routeur stocke les informations sur :

  • Les routes connectées directement : elles proviennent des interfaces actives du routeur. Les routeurs ajoutent ce type de route lorsqu'une interface est configurée avec une adresse IP et qu'elle est activée.
  • Les routes distantes : ces routes correspondent aux réseaux distants, connectés à d'autres routeurs. Les routes menant à ces réseaux peuvent être enregistrées de façon statique ou dynamique.

La table de routage est un fichier dans la mémoire vive du routeur qui contient donc des associations de réseaux ou de tronçons suivant. En plus du prochain routeur, l'association de tronçon suivant peut être l'interface de sortie vers la destination suivante. La table de routage, accessible via la commande show ip route (qui peut être suivie d'un réseau de destination pour avoir plus de détails)sur un routeur Cisco, et contient diverses informations sur chaque route : comment elle a été découverte, depuis combien de temps, quelle interface permet de l'atteindre... Les entrées de la table de routage peuvent être ajoutées en tant que :

  • Interfaces de route locale : Affiché uniquement dans IOS 15 et + pour IPv4, et toutes les versions pour IPv6. Ajoutées quand elles sont configurées et actives.
  • Interfaces connectées directements : Ajoutées à la table de routage quand elles sont configurées et actives.
  • Routes statiques : ajoutées quand elles sont configurées et que l'interface de sortie est active
  • Protocole de routage dynamique : ajouté lorsque des protocoles de routage dynamiques les découvrent

La source des entrées de la table est identifiée par un code avec des lettres (plutôt que de le marquer en toutes lettres... ce serait trop facile). Quelques exemples:

  • L : adresse attribuée à l'interface d'un routeur; ceci permet au routeur de déterminer efficacement si un paquet qu'il reçoit lui est destiné. Elle est suivi d'un /32 en ipv4 et d'un /128 en IPv6.
  • C : Réseau directement connecté
  • S : Route statique
    • S* : Indique une route statique qui est candidat éventuel pour être la route par défaut (IPv4 seulement)
  • D : Réseau découvert de façon dynamique avec EIGRP
  • O : Réseau découvert de façon dynamique avec OSPF

Pour C et L, C donne le réseau qui est directement connecté au routeur, et L l'adresse du routeur dans ce réseau.

Savoir lire les entrées de la table de routage : Réseau distant

RTENOTITLE

De gauche à droite : Origine de la route, Réseau de destination, Distance administrative/Métrique, via Tronçon suivant, Découvert depuis (durée), Interface de sortie.

Savoir lire les entrées de la table de routage - Réseau connecté directement

Un routeur sorti de boîte, sans aucune interface de configurée, a une table de routage vide. Avant que celle-ci soit up/up et ajoutée à la table, l'interface doit :

  • avoir une adresse IP valide
  • Être activée avec no shut
  • recevoir un signal porteur d'un autre périphérique.

Une entre de la table de routage pour une route directement connectée se lit comme suit :

RTENOTITLE

De gauche à droite : Origine de la route, réseau de destination, Interface de sortie.

Attention, avant IOS 15, les entrées L en IPv4 n'étaient pas affichées dans la table de routage. De plus, en IPv6, on a une entrée "L FF00::/8" qui sert à la multidiffusion.

Savoir lire les entrées de la table de routage - Routes statiques

Une fois les interfaces connectées et configurées, le routage statique ou dynamique peut être mis en oeuvre. Les routes statiques étant configurées à la main, elles ne sont pas mises à jour automatiquement. Les routes statiques sont plus performantes que l'usage de routes dynamiques (moins de bande passante utilisée, pas de CPU à faire tourner) et permettent de contrôler la sécurité en maîtrisant le routage des paquets. Il existe deux types de routes statiques dans la table:

  • Route statiques vers un réseau donné
  • Routes statiques par défaut

Configurer une route statique vers un réseau en IPv4

La commande est la suivante :

<span class="cmd">Router(config)#</span> <span class="cmd"> ''' ip route ''' </span> <span class="cmd"> ''network mask'' </span> <span class="cmd"> {</span> <span class="cmd"> ''next-hop-ip'' </span> <span class="cmd"> | </span> <span class="cmd"> ''exit-interface'' </span> <span class="cmd">} </span>

 

Configurer une route statique par défaut

La route statique par défaut est comparable à une gateway sur un hôte. Elle est utile quand un routeur ne possède qu'un seul point de sortie, vers un FAI par exemple. La commande est la suivante en IPv4:

 Router(config)# ip route 0.0.0.0 0.0.0.0 { exit-intf | next-hop-ip }

Un exemple : ip route 0.0.0.0 0.0.0.0 Serial0/0/0

Ici, Serial0/0/0 est directement connectée à une box internet, par exemple. On pourrait remplacer Serial0/0/0 par une IP pour avoir une last resort gateway.

Explication de la commande : Si les 0.0.0.0 sont troublants, la première série correspond à "n'importe quelle adresse IP", la deuxième série de 0 correspond à "n'importe quel masque". Ces deux séries de 0 NE CHANGENT PAS (dans le cadre d'une route par défaut). Ce qui les suit est important :

  • Si je met une interface de sortie, tous les paquets seront envoyés à cette interface, peut importe qui est à l'autre bout (ça n'as pas l'air optimal... Il se passe quoi si on a plusieurs trucs différents sur cette interface?)
  • Si je met une IP, ce sera celle de ma "Last Resort Gateway".

La commande pour IPv6 est la suivante:

ipv6 route ::/0 {ipv6-address | interface-type interface-number}

Un exemple : ipv6 route ::/0 Serial0/0/0

Attention, en IPv6, la route est ajoutée à la table sans *, ni Last Resort Gateway.

À quoi ressemble la table de routage avec une route par défaut

En IPv4:

RTENOTITLE

Ici, les deux lignes en orange attestent du fait que la route par défaut à été configurée (avec ip route 0.0.0.0 0.0.0.0 Serial0/0/0). Ici, notre routeur est directement connecté à un autre via serial0/0/0, et ils ont tous les deux une IP; mais on est pas forcé d'utiliser l'IP, l'interface de sortie marche aussi. Le routeur nous previent cependant que ce n'est pas la méthode la plus performante.

En IPv6, c'est un plus simple d'apparence :

RTENOTITLE

Routage dynamique

Les protocoles de routage dynamique effectuent plusieurs tâches, qui comprennent la détection de réseaux et la gestion de la table de routage. La détection de réseaux est la capacité d'un protocole à partager avec les autres routeurs les informations concernant les réseaux qu'il connaît avec les autres utilisant le même protocole. Cela permet d'avoir automatiquement les meilleurs chemins sur le routeur, pour qu'il soient ajoutés à la table et identifiés comme routes dynamiques. Pour schématiser, un routeur en EIGRP arrive sur le réseau et dit "Salut ! Je suis R1 et j'utilise EIGRP pour vous informer que j'accède aux réseaux suivants : 10.0.0.0/8, 89.244.15.0/24. Je suis aussi la passerelle Internet par défaut"; les autres lui répondent de la même façon.

Lors de la phase de découverte du réseau, les routeurs échangent des routes et mettent leur tables de routage à jour. On dit qu'ils ont convergé après avoir terminé leurs échanges et mis à jour leurs tables de routage.

Routage dynamique - les protocoles IPv4

Un protocole de routage dynamique ne sert pas seulement à déterminer le meilleur chemin : il sert aussi à déterminer des chemins de secours, si la topologie change ou qu'un lien est down. Ce genre de protocole fait tout cela de façon automatique et prennent en compte toute modification de la topologie, sans intervention humaine. Les routeurs Cisco prennent en charge plusieurs protocoles, dont :

  • EIGRP
  • OSP
  • IS-IS (Intermediate System to Intermediate System)
  • RIP

Pour déterminer les protocoles de routage mis en place, il suffit d'utiliser la commanderouter ?

Un exemple de table de routage avec des entrées dynamiques :

RTENOTITLE

Ici, on voit que j'ai non seulement une Last Resort Gateway, mais aussi des routes dynamiques. L'entrée "D*EX" signifie :

  • Que j'utilise EIGRP (D)
  • Que c'est une potentielle route par défaut (*)
  • Que c'est une route Externe (EX).

Les deux autres entrées sont le fruit d'un autre routeur ayant mis à jour sa table et annoncés ses LANs.

Routage Dynamique - Les protocoles IPv6

Les routeurs Cisco prennent en charge différents protocoles, dont :

  • RIPng (RIP new generation)
  • OSPFv3
  • EIGRP pour IPv6

La plupart des versions récentes des protocoles de routage prennent en charge IPv6. Il ne faut pas oublier, pour permettre aux routeurs de prendre en charge le trafic IPv6, d'utiliser la commande ipv6 unicast-routing. Les entrées de la table de routage en IPv6 Dynamique n'ont rien d'extraordinaire : Elles sont précédées de D pour EIGRP par exemple, et sont indiquées comme les autres.

 

 

Chapitre 2 - Routage Statique

Pourquoi utiliser le routage statique?

Il offre plusieurs avantages par rapport au routage dynamique, notamment :

  • Les routes statiques ne sont pas annoncées sur le réseau, ce qui est plus sécuritaire
  • Elles utilisent moins de bande passante que le routage dynamique, et aucune ressource CPU
  • Le chemin qu'utilise une route statique est connu.

Il présente cependant des inconvénients :

  • La configuration initiale et la maintenance prennent du temps
  • La configuration présente des risques d'erreur humaine
  • Une intervention humaine est requise pour la mise à jour des informations
  • Difficile à maintenir dans un réseau en expansion
  • Exige une connaissance complète du réseau pour une implémentation correcte.

Le routage statique est utile sur les petits réseaux avec un seul chemin vers l'extérieur, et peuvent offrir de la sécurité sur les réseaux plus grands; quoi qu'il en soit, statique et dynamique ne s'excluent pas mutuellement. Il faut simplement se rappeller de la notion de AD (route administrative), et du fait que les routes statiques sont toujours prioritaires.

Quand utiliser du routage statique?

Le routage statique a trois fonctions principales :

  • Faciliter la maintenance des tables de routage dans les petits réseaux
  • Assurer le routage entre les réseaux d'extrémité (Réseaux accessibles par une seule route)
  • Mettre en place des routes par défaut

Mais elles peuvent éventuellement servir à:

  • Réduire le nombre de routes annoncées en récapitulant plusieurs réseaux contigus sous la forme d'une seule route statique
  • Créer une route de secours en cas de panne d'une route principale

Types et configuration de routes statiques

Route statique standard

Une route statique standard est une route utile pour la connexion d'un réseau distant spécifique. C'est la route statique "normale", telle qu'on la connaît habituellement.

Route statique par défaut

On l'as déjà abordé, mais la route statique par défaut est utilisée quand on ne sait pas où envoyer un paquet (quand aucune entrée de la table de routage ne correspond, ou bien que le routeur n'est connecté qu'à un seul autre routeur, identifié en tant que routeur souche). La configuration d'une route statique par défaut amène en général la création d'une passerelle de dernier recours.

Route statique récapitulative

On peut rassembler plusieurs routes statiques en une seule, dans le but d'écrémer un peu la table de routage, si :

  • Les réseaux de destination sont contigüs et peuvent être récapitulés dans une adresse réseau unique
  • Les routes statiques utilisent toutes la même interface de sortie ou tronçon suivant.

Par exemple, je pourrais faire une route qui sert à accéder aux réseaux suivants :

  • 172.20.0.0/16
  • 172.21.0.0/16
  • 172.22.0.0/16
  • 172.23.0.0/16

Sous la forme d'une seule route vers 172.20.0.0/14.

Route statique flottante

Une route statique flottante est un genre de route utilisé pour fournir un chemin de secours à une route dynamique ou statique principale, en cas de défaillance de la liaison. Elle n'est utilisée que si la route principale n'est pas disponible. Elle est pour cela configurée avec une Distance Administrative plus élevée. Il n'y a que ça à faire si je veux créer une route statique flottante : lui donner une valeur administrative plus élevée. Par exemple, si je veux créer une route flottante pour suppléer à une route Dynamique en EIGRP (DA : 90), je ferais une route statique avec une DA de 95.

Exemple : Je veux configurer une route statique par défaut, et un autre route statique par défaut mais flottante, qui servira de relais en cas de problème :

  • ip route 0.0.0.0 0.0.0.0 172.16.5.254    #Ma route statique par défaut, avec une DA par défaut à 1
  • ip route 0.0.0.0 0.0.0.0 10.10.10.2 5 #Ma route flottante, je mets sa DA à 5
  • Je pourrais tester ma deuxième route en désactivant l'interface de la première, afin de voir si cela fonctionne bien.

Exemple 2 : Même scénarion en IPv6

  • ipv6 route ::/0 2001:acad:db8:666::1 #Ma première route, avec une DA de 1
  • ipv6 route ::/0 2001:acad:db8:667::2 5 #Ma deuxième route, avec une DA de 5

Syntaxe complète de la commande ip route

ip route <adresseréseau> <masque> {<iptronçonsuivant> | <interface de sortie>} <distance>

Le paramètre distance est facultatif, il sert à indiquer la distance administrative souhaitée (pour une route flottante par exemple).

On peut utiliser l'IP de tronçon suivant (si il est lointain, par exemple), ou l'interface de sortie (si le tronçon est directement connecté), ou les deux.

Route statique récursive

Il est bon de rappeller que lorsqu'un routeur essaye de résoudre un paquet qu'il reçoit (il détermine alors sa résolvabilité, ou plutôt celle de sa route) et qui est destiné à un réseau distant, il commence par chercher dans sa table une correspondance avec l'IP de destination du paquet, en trouve une et en tire une adresse de tronçon suivant. Il rééfectue alors une recherche dans sa table de routage pour savoir comment atteindre ce tronçon suivant : il fait deux vérifications en tout, et non une seule ! Il s'agit d'une recherche récursive, et on essaye de les éviter car elles consomment des ressources. Une route statique récursive n'est valide que si la résolution du tronçon suivant aboutit et donne une interface de sortie à utiliser.

Configuration d'une route statique connectée directement (i.e, quand j'ai plusieurs réseaux qui sont connectés directement à mon routeur)

Au lieu d'utiliser un tronçon suivant, on peut s'économiser la récursivité en configurant une route statique sur une interface connectée directement (du type : ip route 172.16.1.0 255.255.255.0 s0/0/0) plutôt qu'un tronçon suivant. Imaginons que dans ce cas j'ai plusieurs autres routeurs connectés à s0/0/0, un paquet destiné à 172.16.1.0 sera envoyé directement en broadcast MAC? Je ne suis pas sûre. C'est mal expliqué, scrogneugneu !

https://static-course-assets.s3.amazonaws.com/RSE6/fr/index.html#2.2.1.4

RTENOTITLE

Dans cette configuration réseau, mes routes configurées avec cette méthode (ip route 192.168.3.0 g0/1 par exemple) fonctionnent. PC0 peut parler à PC1 sans que j'ai configuré le moindre tronçon suivant où que ce soit ! Je suppose que du coup, le routeur router0 se contente de prendre le paquet de PC0, trouver le réseau de destination dans sa table de routage, et l'envoyer en broadcast MAC sur son interface de sortie. Mais, ça fonctionne aussi avec des adresses de tronçon suivant, et c'est plus simple à comprendre...

 

 

Configuration d'une route statique entièrement spécifiée.

Dans ce genre de route, on précise à la fois l'interface de sortie et l'adresse IP du tronçon suivant. Ce genre de route était utilisé avant le protocole CEF. Dans ce genre de cas, le tronçon suivant doit être directement connecté à l'interface de sortie. Ces routes excluent CEF ! On peut en mettre une en oeuvre comme ça :

ip route 192.168.1.0 255.255.255.0 g0/1 172.16.1.3

Il faut faire attention à ce que le résultat soit cohérent. Il semble dans tous les cas préférable, quand c'est possible, d'utiliser des adresses de tronçon suivant. Il est à noter que cela ne fonctionne pas quand CEF est utilisé, ce qui est le cas par défaut de tous les routeurs Cisco relativement récents.

Vérification des routes statiques

Les routes statiques peuvent être vérifiée grâce aux commandes:

  • show ip route static
  • show ip route 192.168.1.56
  • etc

En IPv6 :

  • show ipv6 route
  • show ipv6 route static
  • show ipv6 route 2001:db8:666::

Lors de la vérification d'une route statique par défaut, show ip route nous donne quelque chose comme ça :

  • S*      0.0.0.0/0 [1/0] via 172.16.2.254

Il est à noter que le /0 signifie qu'aucun des bits ne doit correspondre (0.0.0.0/0 veut donc dire bien dire "n'importe quelle adresse"); ce qui est logique, et un /1 indique que les bits doivent correspondre.

Routes statiques IPv6

La syntaxe d'une route statique IPv6 est la suivante :

ipv6 route ipv6-prefix/prefixlength [ipv6-address|exit-interface}

Une route statique IPv6 peut être utilisée comme :

  • route statique standard
    • Avec un tronçon suivant
    • Avec une interface de sortie
    • Entièrement spécifiée
  • route statique par défaut
    • du type : ipv6 route ::/0 {ipv6-address|exit-interface}
    • Attention, la table de routage en IPv6 n'indique pas que la route par défaut est la passerelle de dernier recours...
  • route statique récapitulative
  • route statique flottante

Quoi qu'il en soit, il faut utiliser ipv6-unicast routing pour que ces routes statiques soient prises en compte. Le principe de récursivité s'applique de la même façon qu'en IPv4, et le principe est de façon générale le même qu'en IPv4, pour ce qui est des routes statiques en tout cas.

Cas dans lesquels, en IPv6, une route doit être entièrement spécifiée

En IPv6, une route statique doit être entièrement spécifiée dans un cas :

  • Si la route utilise une adresse de lien local comme tronçon suivant.

C'est le cas parce que les adresses de lien-local ne figurent pas dans la table de routage : elles ne sont uniques que dans une liaison donnée... Il se pourrait en effet que plusieurs réseaux connectés au routeur utilisent une adresse de lien-local identique (même si c'est peu probable). Si l'on essaye de rentrer route sans spécifier l'interface, IOS nous renvoie un message d'erreur. Il faut utiliser ce genre de commande :

ipv6 route 2001:db8:ACAD:2::/64 s0/0/0 fe80::2

Routes d'hôtes installées automatiquement (ou pas)

Une route d'hôte est une adresse IPv4 avec un masque à 32 bits, ou une adresse IPv6 avec un masque à 128 bits. Il existe trois façons d'en ajouter une à la table de routage :

  • Installées automatiquement quand une IP est configurée sur le routeur: Installée par IOS automatiquement, elle permet d'optimiser le processus d'envoi des paquets au routeur, par rapport au transfert de paquets. Elle s'ajoute à la route connectée (désignée par la lettre C), et est désignée par la lettre L : c'est une "route locale", une route qui mène là où je suis déjà, en somme.
  • Configurée comme une route d'hôte statique : on peut la configurer manuellement pour diriger le trafic vers un périphérique spécifique, comme un serveur d'authentification par exemple. Elle utilise un masque /32 ou /128, et est désignée elle aussi par la lettre S.
    • Exemple de configuration : ipv6 route 2001:db8:acad:666::1/128 via s0/0/0 fe80::2 : Ici, tous les paquets envoyés vers l'interface de mon routeur 2001:db:acad:666::1 sont renvoyés vers fe80::2 sur mon interface s0/0/0.
  • Route obtenue par d'autres moyens (cours ultérieur...).

Rappel des commandes utiles quand une route statique ne fonctionne plus

Les commandes utiles pour détecter ce genre de problèmes :

  • ping
  • traceroute
  • show ip route
  • show ip interface brief
  • show cdp neighbors detail

 

Chapitre 3 : routage dynamique

Protocoles de routage dynamique

Ces protocoles sont utilisés depuis la fin des années 80. RIPv1 a été publié en 1988, mais certains de ses algorithmes de bases étaient déjà utilisés sur ARPAnet en 1969. Les protocoles ont évolué avec les réseaux : RIPv2 en et arrivé, mais deux protocoles plus adaptés à la croissance du réseau sont arrivés aussi : OSPF et IS-IS. Cisco a développé IGRP puis EIGRP, qui s'adaptent bien aux réseaux plus grands.

Il a aussi fallu interconnecter des interréseaux et assurer le routage entre ces derniers : le protocole BGP (Border Gateway Protocol) est désormais utilisé par les FAI pour leurs clients privés importants, ou entre les FAIs. 

Les protocoles de routage dynamique sont des ensembles de processus qui permettent de faciliter l'échange des informations de routage entre les routeurs. La fonction des protocoles de routage dynamique inclut :

  • Découverte des réseaux distants
  • Actualisation des informations de routage
  • Choix du meilleur chemin vers des réseaux de destination
  • Capacité à trouver un nouveau meilleur chemin si le chemin actuel n'est plus disponible.

Les principaux composants de ces protocoles sont :

  • Structures de données : Ces protocoles utilisent des tables / des bases de données, stockées en mémoire vive.
  • Messages de protocoles de routage : Ils utilisent différents types de messages pour découvrir les routeurs voisins, échanger des informations de routages, etc
  • Algorithme : Il permettent de faciliter l'échange d'informations de routage et de déterminer le meilleur chemin d'accès.

Les meilleurs chemins, une fois déterminés, atterissent dans la table de routage (à défaut d'avoir une autre route avec une meilleure distance administrative). L'échange constant entre les routeurs permet de parer aux problème en cas de modification de la topologie du réseau. Les nouveaux réseaux et meilleurs chemins sont automatiquement ajoutés.

Utilisations du routage statique

Rappellons-nous alors les avantages du routage statique :

  • Faciliter la maintenance dans les petits réseaux qui ne se développeront pas
  • Permettre le routage dans les réseaux d'extrémité, qui n'ont qu'une route vers l'extérieur
  • Accéder à une seule route par défaut.

Cela présente des inconvénients : Les routes statiques sont chiantes à mettre en oeuvre dans un grand réseau, la gestion des configurations prend du temps (comme ce cours), et le trafic n'est pas réacheminé en cas de perte d'un lien. Du coup...

Utilisation du routage dynamique

Le routage dynamique permet de gérer la configuration et la maintenance des routes plus simplement. Sur un grand réseau, c'est inévitable.

Les avantages :

  • Marche sur toutes les topologies à plusieurs routeurs
  • Généralement indépendant de la taille du réseau
  • Adpate automatiquement la topologie.

Inconvénients :

  • Plus complexe à mettre en oeuvre (au niveau des commandes, surtout)
  • Moins sécurisé, il faut gérer des paramètres pour la sécurisation
  • La route dépend de la topologie en cours (avec des routes statiques aussi...)
  • Demande plus de ressources.

Configuration de RIP (Routing Information Protocol) sur le routeur

Mode de configuration RIP :

conf t
router rip #On passe en mode de configuration RIP
#Plusieurs commandes sont alors possibles

RIPv1 est le protocole par défaut.

Annonce des réseaux

Le routeur n'utilise pas encore RIP ; il doit savoir quelles interfaces utiliser pour parler avec les autres routeurs et quels réseaux annoncer. Pour activer le routage RIP pour un réseau :

network <addressereseau>

Cette commande active le protocole sur toutes les interfaces qui appartiennent à un réseau connecté directement (celui donné dans la commande). Il faut le faire pour chaque réseau connecté directement. Les interfaces associées à ces réseaux envoient et reçoivent désormais les informations de routage. Cette commande annonce aussi le réseau spécifié dans les mises à jour de routage RIP envoyées toutes les 30 secondes.

RIPv1 est fait pour IPv4  AVEC LES CLASSES. Si une adresse réseau CIDR est rentrée, elle est convertie en adresse par classe !

Vérifier le routage RIP

La vérification s'effectue via la commande show ip protocols :

  • "Routing protocol is rip" : RIP fonctionne
  • "Sending updates every 30 seconds; etc..." : les valeurs des différents compteurs
  • "Default version control : send version 1, receive any version, ..." : On utilise RIPv1
  • "Automatic network summarization..." : Le routeur récpaitule bien les réseaux (par classe)
  • "Routing information sources" : Les voisins et leurs infos

Activer et vérifier RIPv2

Pour passer en RIPv2 pour les envois (une routeur en RIP, quelque soit sa version, peut recevoir toutes les versions de RIP), une fois en mode de configuration rip, on utilise la commande version 2. Attention, pour que cela marche, il vaut mieux que tous les routeurs du réseau utilisent la même version...

Configurer des interfaces passives

Par défaut, les màj RIP sont envoyées via toutes les interfaces compatibles. Cependant, elles doivent en réalité être envoyées aux interfaces connectées aux autres routeurs compatibles. L'envoie de màj non nécessaires gaspilles des ressources (réseau et matérielles), et compormet un peu la sécurité. Pour avoir une interface passive, en mode de configuration RIP, il suffit d'utiliser :

passive-interface <nomdelinterface>

Une interface passive n'envoie plus d'annonces, mais son réseau est quand même annoncé. Tous les protocoles de routage prennent cette fonction d'interface passive en charge. On peut aussi faire en sorte que ce soit le comportement par défaut :

passive-interface default

Et passer une interface en mode actif :

no passive-interface

Propagation d'une route par défaut

Dans un scénario du type : "j'ai un réseau, et sur tous les routeurs de ce réseau, un seul a accès au net", il peut être intéressant de faire en sorte que ce routeur en question (appellons-le Paul le routeur) ait une route par défaut et qu'il la transmette aux autres, plutôt que de s'embêter à faire des routes statiques. Ainsi, Paul transmettra sa route par défaut à tous ses camarades routeurs, qui sauront directement où envoyer leurs paquets. Pour que cette route par défaut se propage, Paul doit avoir les élements suivants :

  • Une route statique par défaut (ip route 0.0.0.0 0.0.0.0)
  • La commande de configuration du routeur default-information originate. Cette commande indique à Paul qu'il doit propager sa route par défaut.


Tables de routage et routage dynamique

Une table de routage créée dynamiquement contient de nombreuses informations. Ce n'est pas une base de données linéaire; c'est une structure hiérarchique. Cette hiérarchie comprend plusieurs niveaux, décrits comme :

  • Meilleure route (ou route finale?) : contient une adresse de tronçon suivant ou une interface de sortie. Les routes connectées directement, routes dynamiques et routes locales sont considérées comme étant de meilleures routes.
  • Route de niveau 1 : route possédant un masque de sous-réseau inférieur ou égal au masque par classe de l'interface de sous-réseau. Par conséquent, elle peut être :
    • Une route de réseau (route dotée d'un masque de sous-réseau égal à celui du masque de classe)
    • Une route de super-réseau : dotée d'un masque inférieur au masque par classe, par exemple une adresse récapitulative
    • Une route par défaut
  • Route parent de niveau 1 : Une route de niveau 1 divisée en sous-réseaux (les sous-réseaux sont les enfants).
  • Route enfant de niveau 2 : Un sous-réseau d'une adresse réseau par classe.

Pour résumer un peu mieux que cette merde de Cisco!, voici :

  • Meilleure route : 192.168.50.0/24 via 10.0.0.2
  • Route de niveau 1 :
    • Route de réseau : 192.168.1.0/24 via fa0/1
    • Route de super-réseau : 192.168.0.0/16 via fa0/1
    • Route par défaut : 0.0.0.0 via fa0/2
  • Route parent de niveau 1:
    • 192.168.1.0/26 via fa0/1
  • Route enfant de niveau 2:
    • 172.16.1.0 via ... (Alors qu'on a déjà quelque part une route vers 172.16.0.0)

Processus de recherche de route

Quand il reçoit un paquet, le routeur examine l'adresse de destination et recherche dans sa table de routage. Il se passe alors :

  • Si la meilleure correspondance est une route de niveau 1, elle est utilisée.
  • Si la meilleure correspondance est une route parent de niveau 1 , passez à l'étape suivante
    • En cas de correspondance avec une route enfant de niveau 2, elle est utilisée
    • Sinon, on passe à l'étape suivante
  • En cas de correspondance avec une adresse de sur-réseau de niveau 1 ou une route par défaut, on l'utilise.
  • Si toujours pas de correspondance, on supprime le paquet.

Si on utilise pas CEF, une route faisant référence à une adresse de tronçon suivant mais pas à une interface de sorte doit être résolue vers une route ayant une interface de sortie.

Meilleure route = correspondance la plus longue

La meilleure correspondance pour un paquet est la plus longue, c'est-à-dire la route ayant le masque le plus long. En effet, on essaye d'être le plus spécifique possible. Du coup, entre :

  1. 172.16.0.0/12
  2. 172.16.0.0/18
  3. 172.16.0.0/24

On prendra la troisième, plus spécifique. Dans tous les cas, une route est une correspondance quand elle possède au moins le nombre de bits correspondant indiqué par le masque de sous-réseau de la route.

Table de routage en IPv6

Vu qu'IPv6 est classless, toutes les routes sont de niveau 1. Il n'y aucun parent de niveau 1 pour les enfant de niveau 2.