L’agrégation (ou summarization) de routes | Théorie et pratique

Publié par Geoffrey Sauvageot-Berland le

I. Introduction

L’expansion d’Internet a entraîné l’augmentation de la taille des tables de routage sûr de nombreux routeurs, notamment les routeurs des fournisseurs d’accès à Internet. Pour alléger de manière considérable ces tables de routage, une solution permettant d’agréger plusieurs routes (statique) en une seule a dû être mise en place : c’est le principe de l’agrégation de routage (aussi appellé : sur-réseau (supernet en anglais).

Avantage de l’aggrégation de routes :

  • Réduire le nombre d’entrée dans une table de routage
  • Gain en terme de visibilité, un réseau pour résumé x réseaux
  • Gain de performance physique (minime à une petite échelle, mais non négligeable sur un réseau fortement sollicité)
  • Très utilisé notament par les protocoles de routage de type EGP (Exterior Gateway Protocol) comme BGP, MP-BGP.

Afin de mettre en application, tous ces beaux principes, Je vous propose d’étudier les cas d’utilisation suivants :

II. Exemples

A. Premier exemple

Soit une entreprise x qui souhaite faire communiquer son nouveau réseau segmenté et son ancien réseau historique. Tous deux étant reliés par un réseau inter routeur. Le but est d’obtenir une route agrégée des 6 sous-réseaux du nouveau réseau gobal de l’entreprise, afin que la table de routage du routeur 1 soit allégée, et que l’ancien réseau puisse communiquer avec les nouveaux sous-réseaux. (partie de droite)

Nouveau réseau, segmenté en 6 sous réseaux (gauche)

  • Réseau 1 : 10.0.10.0/24
  • Réseau 2 : 10.0.20.0/24
  • Réseau 3 : 10.0.30.0/24
  • Réseau 4 : 10.0.40.0/24
  • Réseau 5 : 10.0.50.0/24
  • Réseau 6 : 10.0.51.0/30

Réseau inter routeur (milieu)

  • Réseau 7 (Inter-routeur) : 172.16.0.0/30

Ancien réseau (droite)

  • Réseau 8: (Ancien réseau global, toujours en service) : 192.168.1.0/24
    • Celui-ci, va simplement nous permettre de vérifier que le routage s’effectue bien, et que nous pouvons communiquer avec tous les sous-réseaux de l’entreprise X. (partie de gauche)

Dans le cadre de la mise en place de routage statique (qui est encore acceptable pour la taille de ce réseau), nous devons repérer les sous-réseaux commençant avec la même base octale. (Dans notre cas : 10.0.x.x)

Sans agrégation, nous devrions alors avoir 6 routes statiques dans la table de routage de R1. Notre but final va être de réduire ce nombre afin d’obtenir une seule route qui pourra englober les 6 sous-réseaux. Pour cela, je vais utiliser la technique suivante :

Concentrons-nous sur le troisième octet de chaque sous-réseau, afin de visualiser la valeur la plus haute sur celui-ci parmi les 6 sous réseaux. 51 est la valeur la plus haute sur le troisième octet (10.0.51.0). Nous le gardons de côté, et nous allons réaliser le calcul suivant :

Rappel: Nous travaillons sur le troisème octet car les deux premiers octets sont communs à tout les sous réseaux. (10.0.x.x)

  • Quelle puissance de 2 est supérieur strictement à 51.

2^? > 51?

2^6 = 64

255.255.[256-64=192].0

24-6 = /18

Nouveau CIDR = /18 – Masque de sous-réseaux en décimal pointé : 255.255.192.0

ip route 10.0.0.0 255.255.192.0 <next hop>
# Nous sommes obligés de fixer la valeur du troisième octet à 0, car nos sous-réseaux ne sont pas tous compris dans l'ordre de grandeur d'une puissance unique de 2. Contre exemple dans la section IV. 

Afin de mieux percevoir la portée de l’agrégation de routage, je vous propose de télécharger une version fonctionnelle de mon petit réseau packet tracer et une où vous devez réaliser le routage statique vous-même : https://le-guide-du-secops.fr/wp-content/uploads/2021/08/lgds-agregation-de-routage-ressources-pkt.zip

Pour les trois exemples qui vont suivrent, je ne fournis pas de fichier packet tracer, mais simplement la méthodologie théorique et les pièges à éviter en fonction des cas présentés.

B. Deuxième exemple :

Aggrégé le lot d’adresse suivante :

  • 192.168.1.0/24
  • 192.168.2.0/24
  • 192.168.3.0/24
  • 192.168.4.0/24

Pour rappel, un des premiers signes qui doit aiguiller votre raisonnement est de classer les adresses réseaux dans l’ordre (repérer les sous-réseaux commençant avec la même base octale. (192.168.x.x)) puis observer la dernière adresse qui comporte l’octet le plus haut après la base commune. (ici : 192.168.4.0)

2^? > 4

2^2 = 4

Attention à ne pas allez trop vite ! Il faut un nombre strictement supérieur à 4, ce qui n’est pas le cas avec 2^2. En effet, nous devons englober l’ordre de grandeur octale (ici de .1. à .4.).

.4. représentant le résultat d’une puissance de 2 (2^2), il faudrait prendre la puissance de 2 suivante (2^3), afin que la dernière adresse 192.168.4.0/24 soit aussi comprise dans la création de notre supernet.

2^3 = 8

255.255.[256-8=248].0 -> 255.255.248.0

24-3 = /21

Nouveau CIDR = /21 – Masque de sous réseaux en décimal pointé : 255.255.248.0

ip route 192.168.0.0 255.255.248.0 <next hop>

C. Troisième exemple – Avec des sous réseaux VLSM (Masque variable)

Réaliser une route optimiser avec le lot d’adresse suivante :

Remarque : Ici, le classement des adresses ne se fait pas en fonction du CIDR (du plus petit au plus grand), mais en fonction de la valeur du quatrième octet qui est polymorphe en fonction de nos 5 adresses.

  • 10.10.1.0/27
  • 10.10.1.32/28
  • 10.10.1.48/26
  • 10.10.1.64/25
  • 10.10.1.128/25

2^? > 128

2^8 = 256

255.255.255.[256-256=0]

32-8 = 24

Voici notre route agrégée pour ces réseaux :

ip route 10.10.1.0 255.255.255.0 <next hop>

D. Quatrième exemple – Cas particulier :

Réaliser une ip route agrégée la plus optimiser possible avec le lot d’adresse suivante :

  • 192.168.11.0/24
  • 192.168.12.0/24
  • 192.168.13.0/24
  • 192.168.14.0/24

Dans cette démonstration, je réalise les deux routes agrégées. Les deux sont justes, mais la deuxième est la plus optimisé, et ne pourra pas mettre en porte à faux votre routeur si vous avez des sous-réseaux adjacents à ceux-ci (ex : 192.168.14.0/24, 192.168.15.0/24192.168.16.0/24, etc., 192.168.20.0/24) qui se dirige vers une autre destination (routeur)

2^? > 14

2^4 = 16

255.255.[256-16=240].0 -> 255.255.240.0

24-4 = /20

ip route 192.168.8.0 255.255.248.0 <next hop>

Comme je l’ai dit précédemment, cette route agrégée est juste, mais nous avons encore le moyen de resserrer l’étau le cas échéant. En effet dans des cas d’utilisation rares comme celui ci-dessous, vous devez ajuster votre route agrégée afin qu’elle n’englobe pas d’autres sous réseaux d’une autre destination finale. (Le schéma ci-dessous vous sera d’une grande utilité pour comprendre le « pourquoi du comment » ^^)

Dans le cadre de ce schéma, la route barée s’avère fausse. Mais dans une autre architecture réseau, elle peut s’avérer juste.

a. Démonstration du cas particulier « fully optimised »

Vu que notre 3e octet de chaque adresse se trouve dans entre l’ordre de grandeur suivant x.x.8.x et x.x.15.x, nous pouvons nous permettre de réaliser une route agrégée en gardant .8. pour le troisième octet.

Nos quatre adresses de l’énoncé (192.168.11-12-13-14.0/24) sont dans l’ordre de grandeur de 2^3 = 8, car les troisièmes octets de chaque adresse se suivent et ils sont inférieurs strictement à 16. Les adresses sont donc présentes dans cette échelle de grandeur (8-16).

Cette « super optimisation » est possible seulement si les adresses IP sont présentes dans un ordre de grandeur unique comme celui de cet énoncé par exemple. À contrario, il ne serait pas possible de réaliser la même optimisation avec le premier exemple car les adresses ne se suivent pas et ne sont pas comprises dans la même échelle de grandeur. (valeurs comprises entre deux puissances de 2)

x.x.8.x

x.x.9.x

etc.

x.x14.x

x.x.15.x

x.x.16.x

De surcroît, vu que notre routeur R1 est relié à des réseaux ayant une « base similaire » (192.168.x.x), nous devons impérativement optimiser cette route agrégée, afin qu’elle n’induise pas en erreur la table de routage de R1. (cf schéma)

Voilà comment je procède :

2^3 = 8

255.255.[256-8=248].0 -> 255.255.248.0

24 – 3 = 21

Nouveau CIDR = /21 – Masque de sous réseaux en décimal pointé : 255.255.248.0

ip route 192.168.8.0 255.255.248.0 <next hop>

III. Conclusion

J’espère que j’aurai été clair et bon pédaguoge. Si-vous avez des questions, les commentaires sont fait pour cela, ou vous pouvez si vous le souhaitez nous envoyer un message sur Twitter.

Merci à Benjamin Varnet pour sa relecture !

Geoffrey


En savoir plus sur Le Guide Du SecOps

Subscribe to get the latest posts sent to your email.


Geoffrey Sauvageot-Berland

Ingénieur diplômé par l’état en Informatique et Cybersécurité. Généraliste, à l'origine administrateur systèmes et réseaux, j’occupe actuellement un poste d’auditeur en sécurité offensive. J’apprécie également la programmation/automatisation. Fondateur du blog : "Le Guide du SecOps", anciennement "Le Guide du SysOps"

En savoir plus sur Le Guide Du SecOps

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Continue reading