Routage IPv4 - Introduction

Routage IPv4 - Introduction

Vue générale

La fonction d'un routeur est de faire transiter les paquets entrant vers l'interface de sortie la plus appropriée pour les acheminer à leur destination, a priori en diminuant la distance restant à parourir (si possible).

Internet propose un routage hierarchisé à 2 niveaux :

  • routage inter-réseau (inter-network) basé sur l'adresse réseau
  • acheminement à l'intérieur d'un réseau basé sur l'adresse de l'hôte

La frontière entre les 2 parties est définie :

  • par le netmask ou la longueur du préfixe ( prefix length en notation dite CIDR ou VLSM depuis 1990 [RFC de référence?]).
  • localement
Classe netmask prefix intervalle
A 255.0.0.0 /8 0.0.0.0 - 127.255.255.255
B 255.255.0.0 /16 128.0.0.0 - 191.255.255.255
C 255.255.255.0 /24 192.0.0.0 - 223.255.255.255

Nous ne parlerons pas des adresses de classe D (224.0.0.0 - 239.255.255.255) réservées aux réseaux multicast qui ne sont pas abordés dans ce chapitre,ni les adresses de classe E (240.0.0.0 - 255.255.255.255) réservées aux réseaux expérimentaux.

Cette technique, bien que devenue obsolète, à laisser des traces dans le protocole de routage RIPv1 que nous verrons plus loin (même si l'usage de RIP tend à disparaître lui-aussi pour d'autres raisons)

L'adressage par classe a été jusqu'au année 1990 le principe du routage entre les réseaux.

Même dans le contexte précédent, un administrateur d'un réseau important devait souvent redécouper son espace d'adressage pour s'adapter aux contraintes topologiques de son réseaux.

Cette première technique, parfois dénommée "VLSM" pour "Variable Length Subnetting Mask" permet à un administrateur d'étendre le netmask d'un certain nombre de bits pour réaliser un plan d'adressage compatible avec ces contraintes.

Même un protocole ancien comme RIPv1 prend en compte (avec certaines réserves) cette technique.

Ceci ne résolvait pas les problèmes qui ont commencé à apparaitre sur les routeurs ïnter-network" au cours des années 1980 avec l'ouverture d'Internet aux entreprises et au grand public. L'explosion du nombre de réseaux a très vite saturé les tables de routages et une évolution pour le passage à l'échelle était nécessaire.

Dès 1993 (RFC1519- revue en 2006 RFC4632), CIDR ( Classless Internet Domain Routing ) a été formalisé et généralisé.

Pourquoi ?

  • réduire la taille des tables de routage avec l'aggrégation de routes
  • permettre un découpage plus pertinent de l'espace d'adressage pour économiser les adresses

Cette technique permet l'aggrégation de route qui consiste à regrouper en une seule entrée des adresses réseaux ayant un préfixe commun et un même prochain saut (il faut aussi que les métriques soient compatibles).

La longueur minimale de masque est 0 (1 pour pouvoir faire un peu de routage) et la longueur maximale est 30.

Dans chaque classe d'adresse est définie un plage d'adresse privée utilisable localement.

Classe plage d'adresses notation
A 10.0.0.0 - 10.255.255.255 10.0.0.0/8
B 172.16.0.0 - 172.31.255.255 172.16.0.0/12
C 192.168.0.0 - 192.168.255.255 192.168.0.0/16

Travail personnel : déterminer les RFC ayant trait aux adresses réservées et précisées leurs valeurs.

Une entrée de table de routage peut etre résumée sous la forme :

network address netmask next hop interface admin.metric origine
La notion de métrique administrative est utile lorsque les routes proviennent de plusieurs sources (processus de routage dynamique, route statique) et permet d'arbitrer les choix lorsqu'une meme destination est annoncée par plusieurs sources. L'origine mémorise comment la route a été apprise.

Lors de l'arrivée d'un paquet, l'adresse de destination est extraite.

Pour tester une entrée de la table de routage, le netmask est appliquée à l'adresse de destination pour en extraire la partie network. Si elle est égale à la network address, la route correspond ( match ), sinon cette dernière est rejetée.

L'entrée la plus précise ( netmask correspondant au préfixe le plus long) est toujours choisie en priorité, si plusieurs entrées sont sélectionnables.

La route par défaut ( 0.0.0.0/0 ), si elle est définie, est donc choisie seulement si toutes les autres routes ont été rejetées.

Les implémentations sont souvent plus performantes que la méthode exposée ici.

D'autres paramètres peuvent etre pris en compte dans le processus de décision, que ce soit avant (PRE) ou après (POST) la consulatation de la table de routage (routage politique, QOS, choix de la table de routage ou VRF, NAT, PAT, ...).

Les techniques de NAT et PAT seront vues ultérieurement (en TP et en cours).

Acquisition des routes

La construction de la table de routage est basé sur différentes sources :

  • connected : en IPv4, une interface est liée à une adresse (et un netmask); le réseau correspondant est donc directement inséré dans la table et ce, tant que l'interface demeure active.
  • static : saisie par l'opérateur - elle n'est jamais enlevée.
  • dynamic : injectée dans la table par un processus de routage (RIP, OSPF, IS-IS, EIGRP, BGP, ...), elle peut etre enlevée automatiquement si la route est perdue; les routes dynamiques peuvent etre calculée où provenir d'une "redistribution" ( routes issues d'autres processus de routages, connectées ou statiques ).

Configuration des interfaces

  • Principe IPv4 : une seule adresse par interface (généralement le cas)
  • Possibilités de créer des "sous-iterfaces" virtuelles sur une interface physique, chacune d'elles à sa propre adresse IPv4 dans son propre sous-réseau.
  • En générale, configuration statique des adresses IP sur les routeurs (pas de DHCP)
  • sous Linux (au plus simple):
/sbin/ifconfig <interface> <adresse IPv4>/<prefix length>
  • sous IOS Cisco :
(config)#interface <type> <number>
(config-int)#ip address <adresse IPv4> <netmask>
(config-int)#no shutdown

D'autres paramètres peuvent etre ajoutés selon le type d'interface. À noter que sur un routeur, une interface doit etre explicitement activée (administrativly up).

Routes statiques

  • manière la plus directe
  • entièrement sous contrôle
  • peu adaptatif et reconfigurable
  • difficulté du passage à l'échelle (no scalibility)
  • pour la route par défaut dans les cas simples
  • pour les connexions distantes/VPN (routes statiques ajoutées ou retirées par les pare-feu)
Ajouter par l'opérateur à l'aide d'une commande :
  • Cisco
(config)#ip route <network> <netmask> [ <nextHop | interface> ] <metric>
  • Linux
# traditionnel
route add -net <network/prefix> gw <nextHop>  metric <metric>
#iproute2 (au plus simple)
ip route add  <network/prefix> [ metric <metric> ] nexthop via <ip address> [ dev <interface> ] ...

Suffisante dans les situations simples, cette méthode nécessite systématiquement des modifications par l'opérateur pour s'adapter aux modifications de la topologie (évolutions du réseaux, pannes) et devient rapidement fastidieuse.

Routage dynamique

3 familles d'algorithmes :

  • vecteur de distance (RIP, EIGRP, RIPnG)
  • état des liens (OSPFv2, IS-IS, OSPFv3)
  • politique, vecteur de chemin (BGP)

Vecteur de distance

  • version distribuée de Bellman-Ford-Moore (1956-1957-1958) pour RIP ou algorithme DUAL (Diffusing Update Algorithm 1997) pour EIGRP de Cisco (public depuis 2015)
  • Aucune initialisation (interfaces connectées)
  • chaque routeur diffuse sa table de routage à ses voisins immédiats
  • apprentissage des nouvelles destinations (distance = distance annoncée + distance jusqu'à annonceur)
  • route déjà connue ? conserver la plus courte
  • disparition de route : délais de garde ou destination annoncée à distance "infinie"
  • RIP basé sur UDP (port 520), EIGRP sur RTP (Reliable Transfer Protocol)

État des liens

  • OSPF (Open Shortest Path First de l'IETF - RFC 2328 - 1998) et IS-IS ( Intermediate System to Intermediate System de l'ISO - ISO/IEC 10589:2002 )
  • chaque routeur maintient une base de données de tous les liens du réseaux
  • applique localement l'algorithme SPF (Shortest Path First 1959) de E.W.Dijkstra ($O(n*log(n))$ en version optimale)
  • diffusion des mises à jour à tous les autres routeurs à chaque changement d'état d'un lien
  • disparition des boucles (si mise à jour terminée)
  • chemin toujours optimale
  • cout mémoire et calcul important pour chaque routeur/ maintien à jours des données répliquées
  • OSPF encapsulé dans IP, IS-IS sur niveau 2 au sens OSI (mais RFC pour IP)

Vecteur de chemins

  • ne concerne que BGP (Border Gateway Protocol)
  • classé parfois dans la catégorie utilisant les "vecteurs de distances" car échanges uniquement avec voisins "immédiats" (connexions TCP)
  • échange du chemin complet
  • mais en termes d'AS (Autonomous System) : unité autonome de gestion d'un ou plusieurs réseaux
  • concerne surtout les ISP entre eux et avec leurs clients
  • routage "politique" plus que politique de routage
  • peu abordé dans ce cours

Conclusion

  • IPv4 : routage hierarchique (2 niveaux : réseau/numero hôte)
  • décision à chaque noeud
  • plusieurs algorithmes de routages selon les situations
  • 2 familles : vecteur de distance, à état des liens, en principe IGP (Interior Gateway Protocol)
  • et BGP classé en EGP (Exterior Gateway Protocol)