Routage IP

Acheminement de données par leur adresse IP (couche 3 du modèle OSI)

Table de routage

Une table de routage représente la liste de règles à laquelle un appareil réseau se réfèrera pour décider par quelle interface et à quelle adresse faire acheminer du trafic en fonction de l'adresse IP de destination. 

Tous les appareils possédant une adresse IP possèdent une table de routage. Même si elle ne peut pas toujours être personnalisée, la "passerelle par défaut" (default gateway) ou "passerelle de dernier recours" (gateway of last resort) représentera généralement l'adresse IP du routeur d'un réseau lorsqu'un seul routeur se situe dans ce réseau. Ceci implique que votre cellulaire, votre ordinateur, votre imprimante, votre télévision intelligente ainsi que votre ampoule intelligente possèdent tous une table de routage.

Ex. d'une table de routage sous Windows :

PS C:\Users\alexa> route print -4

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0        10.60.9.1       10.60.9.69    281
        10.60.9.0    255.255.255.0         On-link        10.60.9.69    281
       10.60.9.69  255.255.255.255         On-link        10.60.9.69    281
      10.60.9.255  255.255.255.255         On-link        10.60.9.69    281
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    281
        224.0.0.0        240.0.0.0         On-link        10.60.9.69    281
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link        10.60.9.69    281

Ex. d'une table de routage sous Linux : 

info@GNS3-H25:~$ ip route
default via 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 metric 100 
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 100 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown

Ex. d'une table de routage sous Cisco IOS :

R1#show ip route
Codes: L - local, C - connected, S - static, R - RIP, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF

Gateway of last resort is not set

      172.16.0.0/16 is variably subnetted, 8 subnets, 3 masks
C        172.16.0.0/26 is directly connected, Ethernet0/1
L        172.16.0.1/32 is directly connected, Ethernet0/1
S        172.16.0.64/26 [1/0] via 172.16.0.254
S        172.16.0.128/26 [1/0] via 172.16.0.250
C        172.16.0.248/30 is directly connected, Ethernet0/2
L        172.16.0.249/32 is directly connected, Ethernet0/2

Ex. d'une table de routage sous MikroTik RouterOS :

[admin@R3] > /ip/route/print
Flags: D - DYNAMIC; A - ACTIVE; c - CONNECT, s - STATIC
Columns: DST-ADDRESS, GATEWAY, DISTANCE
#     DST-ADDRESS      GATEWAY       DISTANCE
0  As 172.16.0.0/26    172.16.0.249         1
1  As 172.16.0.64/26   172.16.0.245         1
  DAc 172.16.0.128/26  ether8               0
  DAc 172.16.0.244/30  ether3               0
  DAc 172.16.0.248/30  ether2               0

On peut observer ici que peu importe le système/manufacturier, une route comprend toujours trois composantes :

Le réseau de destination et sa passrellent décrivent l'étendue d'adresses de destination auxquelles cette règle s'appliquera et la passerelle représente soit l'interface directement connectée à cette étendue d'adresse ou au routeur qui sera responsable d'acheminer le trafic vers sa destination.

Routage statique

Route par défaut

Que le routage à l'intérieur de votre réseau soit statique ou dynamique, la route par défaut qui est ultimement le point de sortie de votre réseau sur l'appareil faisant face au réseau étendu sera généralement statique (ou DHCP si votre fournisseur d'accès à Internet vous fourni une adresse dynamqiue plutôt que statique). Lorsqu'un appareil possède une adresse IP statique ainsi qu'une passerelle par défaut, cette passerelle devient sa route par défaut et donc le point de sortie de son réseau IP. 

Parfois nommée "passerelle de dernier recours", il s'agit de la route qui sera la moins prioritaire au sein de votre réseau mais qui englobera comme destination toutes les adresses IPv4 existantes. Le réseau incluant toutes les adresses IPv4 existantes est 0.0.0.0/0.

Dans l'exemple suivant qui est une table de routage de Windows, la passerelle (l'adresse du routeur) par défaut est 10.60.9.1. Le réseau 10.60.9.0/24 est directement accessible par l'adaptateur mais pour tout autre réseau, le trafic sera envoyé au routeur.

PS C:\Users\alexa> route print -4
===========================================================================
Interface List
 14...d8 cb 8a 35 f2 9a ......Hyper-V Virtual Ethernet Adapter #3
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0        10.60.9.1       10.60.9.69    281
        10.60.9.0    255.255.255.0         On-link        10.60.9.69    281
       10.60.9.69  255.255.255.255         On-link        10.60.9.69    281
      10.60.9.255  255.255.255.255         On-link        10.60.9.69    281

Dans ce cas, la configuration IP de l'interface réseau est statique.

image.png

Dans l'exemple suivant, Le routeur MikroTik accepte une route par défaut provenant d'un serveur DHCP. Puisque la distance est supérieure à la route directement connectée, elle sera moins prioritaire.

[admin@MikroTik] > /ip/dhcp-client/print
Columns: INTERFACE, USE-PEER-DNS, ADD-DEFAULT-ROUTE, STATUS, ADDRESS
# INTERFACE  USE-PEER-DNS  ADD-DEFAULT-ROUTE  STATUS  ADDRESS
0 ether1     yes           yes                bound   10.4.20.249/24

[admin@MikroTik] > /ip/route/print
Flags: D - DYNAMIC; A - ACTIVE; c - CONNECT, d - DHCP
Columns: DST-ADDRESS, GATEWAY, DISTANCE
    DST-ADDRESS   GATEWAY    DISTANCE
DAd 0.0.0.0/0     10.4.20.1         1
DAc 10.4.20.0/24  ether1            0

Route statique

Dans la topologie suivante, le routeur 1 a besoin d'une route vers le réseau 172.16.0.64/26 en direction du routeur 2 et le routeur 2 a besoin d'une route vers le réseau 172.16.0.0/26 en direction du routeur 1 pour permettre la communication entre tous les appareils. En ce qui concerne des commutateurs et des PCs, comme ils n'ont qu'un seul routeur dans leur réseau, ils peuvent utiliser une route par défaut en direction de leur routeur respectif et tous les appareils pourront communiquer ensemble.

image.png

Les routeurs ont besoin de savoir quels réseaux sont situés derrière leurs voisins donc leur table de routage contient les réseaux distants (de l'autre côté) :

R1#show ip route 
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

Gateway of last resort is not set

      172.16.0.0/16 is variably subnetted, 5 subnets, 3 masks
C        172.16.0.0/26 is directly connected, Ethernet0/1
L        172.16.0.1/32 is directly connected, Ethernet0/1
S        172.16.0.64/26 [1/0] via 172.16.0.254
C        172.16.0.252/30 is directly connected, Ethernet0/0
L        172.16.0.253/32 is directly connected, Ethernet0/0
R2#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

Gateway of last resort is not set

      172.16.0.0/16 is variably subnetted, 5 subnets, 3 masks
S        172.16.0.0/26 [1/0] via 172.16.0.253
C        172.16.0.64/26 is directly connected, Ethernet0/1
L        172.16.0.65/32 is directly connected, Ethernet0/1
C        172.16.0.252/30 is directly connected, Ethernet0/0
L        172.16.0.254/32 is directly connected, Ethernet0/0

Puisque les routeurs s'occupent d'acheminer le trafic au bon endroit, les commutateurs ont seulement besoin de savoir que le routeur est le point de sortie de leur propre réseau donc seulement une route par défaut est configurée sur ces appareils :

1#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

Gateway of last resort is 172.16.0.1 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 172.16.0.1
      172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C        172.16.0.0/26 is directly connected, Vlan1
L        172.16.0.2/32 is directly connected, Vlan1
2#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

Gateway of last resort is 172.16.0.65 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 172.16.0.65
      172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C        172.16.0.64/26 is directly connected, Vlan1
L        172.16.0.66/32 is directly connected, Vlan1

Même chose pour les PCs :

PC1> show

NAME   IP/MASK              GATEWAY           MAC                LPORT  RHOST:PORT
PC1    172.16.0.3/26        172.16.0.1        00:50:79:66:68:00  10014  127.0.0.1:10015
PC3> show

NAME   IP/MASK              GATEWAY           MAC                LPORT  RHOST:PORT
PC3    172.16.0.67/26       172.16.0.65       00:50:79:66:68:02  10018  127.0.0.1:10019

Projet GNS3 adapté à cette machine virtuelle incluant GNS3

Ajoutons maintenant un troisième routeur/réseau à la configuration. Chaque routeur doit maintenant être informé du (ou des) réseau(x) situés derrière ses voisins pour permettre la communication entre tous ces appareils.

image.png

La table de routage de R1 sera informée du réseau 172.16.0.128/26 situé derrière R1 par une entrée statique dans sa table de routage indiquant que pour rejoindre 172.16.0.128/26, le trafic doit être acheminé à 172.16.0.250.

R1#show ip route

Gateway of last resort is not set

      172.16.0.0/16 is variably subnetted, 8 subnets, 3 masks
C        172.16.0.0/26 is directly connected, Ethernet0/1
L        172.16.0.1/32 is directly connected, Ethernet0/1
S        172.16.0.64/26 [1/0] via 172.16.0.254
S        172.16.0.128/26 [1/0] via 172.16.0.250 !<<< Nouvelle route
C        172.16.0.248/30 is directly connected, Ethernet0/2
L        172.16.0.249/32 is directly connected, Ethernet0/2
C        172.16.0.252/30 is directly connected, Ethernet0/0
L        172.16.0.253/32 is directly connected, Ethernet0/0

La même chose s'applique pour R2 mais plutôt que d'acheminer le trafic à 172.16.0.250, il acheminera le trafic à 172.16.0.246 qui est l'adresse de R3 qui lui est directement connectée.

R2#show ip route

      172.16.0.0/16 is variably subnetted, 8 subnets, 3 masks
S        172.16.0.0/26 [1/0] via 172.16.0.253
C        172.16.0.64/26 is directly connected, Ethernet0/1
L        172.16.0.65/32 is directly connected, Ethernet0/1
S        172.16.0.128/26 [1/0] via 172.16.0.246 !<<< Nouvelle route
C        172.16.0.244/30 is directly connected, Ethernet0/2
L        172.16.0.245/32 is directly connected, Ethernet0/2
C        172.16.0.252/30 is directly connected, Ethernet0/0
L        172.16.0.254/32 is directly connected, Ethernet0/0

En ce qui concerne notre nouveau routeur, il doit aussi être informé des réseaux IP situés derrières ses voisins pour que le trafic soit correctement acheminée. Dans l'extrait de configuration suivant, on observe la configuration IP des interfaces du routeur (cette fois-ci un MikroTik) ainsi que les routes statiquées configurées pour accéder aux réseaux situés derrière R1 et R2

[admin@R3] > /ip/export 
# 2025-01-27 00:14:19 by RouterOS 7.16.2
# software id = 
#
/ip address
add address=172.16.0.250/30 interface=ether2 network=172.16.0.248
add address=172.16.0.246/30 interface=ether3 network=172.16.0.244
add address=172.16.0.129/26 interface=ether8 network=172.16.0.128
/ip route
add dst-address=172.16.0.0/26 gateway=172.16.0.249
add dst-address=172.16.0.64/26 gateway=172.16.0.245

Projet GNS3 adapté à cette machine virtuelle incluant GNS3

Routes statiques multiples/alternatives

Puisque nous avons maintenant trois routeurs et que ces trois routeurs sont tous reliés, il est maintenant possible de créer des routes alternatives entre ces routeurs pour améliorer la résilence de la connectivité entre nos hôtes en cas de coupure de lien entre deux routeurs. Plusieurs facteurs doivent être pris en compte avant de définir les routes et leur priorité tels que leur rapidité, latence, le nombre de sauts, leur robustesse, etc. Dans l'exemple suivant, les routes seront priorisées manuellement en fonction du nombre de sauts entre les routeurs pour rejoindre le réseau de destination.

Il s'agit du même réseau que l'exemple précédent mais permettons maintenant à R1 de rejoindre R3 à travers R2, à R2 de rejoindre R1 à travers R3 et R3 de joindre R2 à travers R1 et vice-versa.

Ces nouvelles routes doivent avoir une priorité différente des routes principales pour être empruntées seulement en cas de coupure de lien entre deux routeurs. Dépendament du système, il faut parfois mentionner une "distance" administrative, un "coût" administratif ou une métrique. 

Cisco IOS affiche seulement les routes actives avec la commande "show ip route" mais on peut voir dans la configuration de R1 et R2 que les routes alternatives par R3 sont configurées avec une métrique de "2" pour être secondaires.

R1 :

R1#show ip route static

Gateway of last resort is not set

      172.16.0.0/16 is variably subnetted, 8 subnets, 3 masks
S        172.16.0.64/26 [1/0] via 172.16.0.254
S        172.16.0.128/26 [1/0] via 172.16.0.250

R1#show run | b ip route
ip route 172.16.0.64 255.255.255.192 172.16.0.254
ip route 172.16.0.64 255.255.255.192 172.16.0.250 2
ip route 172.16.0.128 255.255.255.192 172.16.0.250
ip route 172.16.0.128 255.255.255.192 172.16.0.254 2

R2 :

R2#show ip route static

Gateway of last resort is not set

      172.16.0.0/16 is variably subnetted, 8 subnets, 3 masks
S        172.16.0.0/26 [1/0] via 172.16.0.253
S        172.16.0.128/26 [1/0] via 172.16.0.246

R2#show run | b ip route
ip route 172.16.0.0 255.255.255.192 172.16.0.253
ip route 172.16.0.0 255.255.255.192 172.16.0.246 2
ip route 172.16.0.128 255.255.255.192 172.16.0.246
ip route 172.16.0.128 255.255.255.192 172.16.0.253 2

MikroTik affiche toutes les routes configurées, qu'elles soient actives ou en relais.

R3 : 

[admin@R3] > ip route print
Flags: D - DYNAMIC; I - INACTIVE, A - ACTIVE; c - CONNECT, s - STATIC; H - HW-OFFLOADED
Columns: DST-ADDRESS, GATEWAY, DISTANCE
#      DST-ADDRESS      GATEWAY       DISTANCE
0  As  172.16.0.0/26    172.16.0.249         1
1   s  172.16.0.0/26    172.16.0.245         2
2  As  172.16.0.64/26   172.16.0.245         1
3   s  172.16.0.64/26   172.16.0.249         2

Avec une telle configuration, un lien pourrait être coupé sans interrompre la communication entre les clients du réseau.

Projet GNS3 adapté à cette machine virtuelle incluant GNS3

Routes résumées

Une route ne doit pas nécessairement pointer vers un réseau existant. Le routeur vérifie seulement l'adresse IP de destination d'un paquet et vérifie dans quelle règle l'adresse IP de destination se situe et ce, peu importe le masque de sous-réseau configuré au bout de la ligne. Il est donc possible de résumer des routes si les différents réseaux situés derrière la route peuvent être regroupés ensemble par un réseau IP plus grand. Par exemple, si un routeur héberge les réseaux 192.168.0.0/26 et 192.168.0.64/26, ces deux sous-réseaux peuvent être résumés par le réseau 192.168.0.0/25. Une route en direction de ce routeur pour la destination 192.168.0.0/25 résumerait les deux réseaux hébergés par le routeur et suffirait à rejoindre tous les appareils de ces deux réseaux.

Dans un montage réseau comme le suivant, toutes les routes menant vers le coeur du réseau peuvent être des routes par défaut (0.0.0.0/0 via [passerelle]) et chaque route réseau se dirigeant vers les extrémités peut regrouper plusieurs réseaux. À titre d'exemple, le routeur R1 a seulement besoin de savoir que 192.168.0.128/25 est situé derrière l'adresse IP 172.16.0.254 du routeur R2, a seulement besoin de savoir que 192.168.0.0/26 est situé derrière l'adresse IP 172.16.0.250 du routeur R3 et de savoir que 192.168.0.64/26 est situé derrière l'adresse IP 172.16.0.246 du routeur R4. Les autres routeurs s'occuperont d'acheminer le trafic de façon plus granulaire.

Table de routage de R1 :

[admin@R1] > ip route print
Flags: D - DYNAMIC; A - ACTIVE; c - CONNECT, s - STATIC
Columns: DST-ADDRESS, GATEWAY, DISTANCE
#     DST-ADDRESS       GATEWAY       DISTANCE
  DAc 172.16.0.244/30   ether6               0
  DAc 172.16.0.248/30   ether7               0
  DAc 172.16.0.252/30   ether8               0
0  As 192.168.0.0/26    172.16.0.250         1
1  As 192.168.0.64/26   172.16.0.246         1
2  As 192.168.0.128/25  172.16.0.254         1

Table de routage de R2 :

R2#show ip route
Codes: L - local, C - connected, S - static

Gateway of last resort is not set

      172.16.0.0/16 is variably subnetted, 6 subnets, 2 masks
C        172.16.0.236/30 is directly connected, Ethernet1/1
L        172.16.0.237/32 is directly connected, Ethernet1/1
C        172.16.0.240/30 is directly connected, Ethernet1/2
L        172.16.0.241/32 is directly connected, Ethernet1/2
C        172.16.0.252/30 is directly connected, Ethernet1/3
L        172.16.0.254/32 is directly connected, Ethernet1/3
      192.168.0.0/24 is variably subnetted, 3 subnets, 2 masks
S        192.168.0.0/25 [1/0] via 172.16.0.253
S        192.168.0.128/26 [1/0] via 172.16.0.242
S        192.168.0.192/26 [1/0] via 172.16.0.238

image.png

Dans cette configuration, seulement les routeurs R3, R4, R5 et R6 savent réellement quels sous-réseaux sont existants, les autres acheminent simplement le trafic leur étant destiné et ce, peu importe à quel réseau situé derrière eux.

Projet GNS3 adapté à cette machine virtuelle incluant GNS3

Boucles de routage

Introduction

Une boucle de routage est le résultat d'une mauvaise configuration des routes où deux routeurs se pointent mutuellement pour la même destination. Ceci peut découler d'une mauvaise configuration de routes statiques ou d'une erreur de configuration dans un protocole de routage à vecteur de distance tel que RIP ou EIGRP. 

Une boucle de routage peut être aussi simple que deux routeurs qui se pointent mutuellement ce qui est généralement rapide à diagnostiquer mais peut aussi impliquer plusieurs routeurs. Lorsqu'un protocole de routage dynamique à vecteur de distance est configuré, plus il y aura de routeurs au sein d'un réseau, plus il y aura de chances de créer une boucle de routage advenant le cas ou deux routeurs annonceraient le même sous-réseau IP et plus il sera difficile de diagnostiquer la situation. Il est donc impératif de bien planifier et bien documenter les sous-réseaux utilisés pour éviter ce genre de situation.

Heureusement, contrairement à une boucle de commutation, un paquet IP a un délai maximal d'existance et sera abandonné après un certain nombre de sauts évitant ainsi de complètement saturer les liens entre les routeurs.

Exemples

Routage statique a deux routeurs

Puisqu'une route directement connectée a toujours une distance de 0 et sera toujours prioritaire à tout autre type de route, ces réseaux ne seront généralement pas victimes d'une boucle de routage. On peut observer ceci en configurant deux réseaux derrière deux routeurs qui se pointeront mutuellement pour leur route par défaut (0.0.0.0/0). Les clients des réseaux situés derrière ces routeurs pourront communiquer ensemble mais toute tentative de contact envers d'autres destination causera une boucle de routage.

Imaginons le scénario suivant. Le routeur R1 est directement connecté aux réseaux 172.16.0.0/26 et 172.16.0.252/30. Ceci implique que la distance de ces routes est 0 et ces routes auront priorité. Idem pour R2 qui est directement connecté à 172.16.0.64/26 et 172.16.0.252/30. Ils pourront donc correctement acheminer le trafic destiné à ces deux réseaux.

dIoimage.png

Toutefois, la route par défaut de R1 pointe vers R2 et la route par défaut de R2 pointe vers R1. Les deux PCs seront en mesure de communiquer ensemble mais toute tentative de communication à l'extérieur de ces trois sous-réseaux causera une boucle de routage. On peut observer à l'aide d'une capture de paquets entre les deux routeurs que la requête ainsi que la réponse sont correctement acheminées.

L'extrait de terminal suivant est le résultat d'un ping de PC1 vers PC2.

PC1> ping 172.16.0.66

84 bytes from 172.16.0.66 icmp_seq=1 ttl=62 time=15.451 ms

image.png

Toutefois, si un ping est envoyé à une destination qui n'est pas directement connectée à un de ces routeurs, on pourra observer que les deux routeurs se relanceront continuellement la requête jusqu'à son délai d'expiration. On observe ici que le "Time To Live" a expiré en chemin.

PC1> ping 8.8.8.8

*172.16.0.254 icmp_seq=1 ttl=63 time=31.106 ms (ICMP type:11, code:0, TTL expired in transit)

Dans la capture d'écran suivante, on peut observer que les adresses MAC de source et de destination s'alternent à chaque saut. Il s'agit de chaque routeur qui se renvoie la requête jusqu'à son expiration.

image.png

Projet GNS3 adapté à cette machine virtuelle incluant GNS3

Routage statique à trois routeurs

Dans la situation suivante, R1 pointe vers R3 pour sa route par défaut, R3 vers R2 et R2 vers R1. Lorsque le PC2 tente de joindre le PC3, on voit sa requête passer entre R2 et R1 puis entre R1 et R3. La réponse passe ensuite de R3 à R2. Quoi que fonctionnel, cette situation se nomme du routage asymétrique. 

image.png

PC2> ping 172.16.0.130 -c 1

84 bytes from 172.16.0.130 icmp_seq=1 ttl=62 time=12.107 ms


image.png

image.png

image.png

En cas de tentative de contact vers une adresse qui n'est pas directement connectée à un de ces trois routeurs, on pourra encore une fois observer que la requête ne fait que circuler entre les trois routeurs. Notez ici le TTL qui diminue de 3 à chaque fois que la requête repasse entre les routeurs R3 et R2. Ceci est causé par le fait que la requête a effectué deux autres sauts avant de repasser par ce lien.

image.png

Le résultat de la commande indiquera encore que le délai d'expiration a été atteint.

PC2> ping 8.8.8.8

*172.16.0.65 icmp_seq=1 ttl=64 time=61.277 ms (ICMP type:11, code:0, TTL expired in transit)

Projet GNS3 adapté à cette machine virtuelle incluant GNS3

Routage dynamique

Routage dynamique

Variables et métriques de routage dynamique

La majorité des protocoles de routage dynamique se fient à une panoplie de variables pour déterminer le chemin idéal à emprunter pour établir une connexion entre deux points dans un réseau.

Coût/distance administrative

Valeur configurée par les administrateurs pour prioriser manuellement certaines routes.

Bande Passante

La bande passante représente simplement la vitesse du lien établi entre deux routeurs.

Nombre de sauts

Le nombre de sauts représente le nombre de routeurs que devra traverser un paquet pour rejoindre sa destination

Charge

La charge représente le pourcentage d’utilisation d’un lien entre deux routeurs.

Délai

Le délai représente la latence totale d’un chemin entre une source et sa destination. entre deux routeurs directement connectés.

Fiabilité

La fiabilité représente le pourcentage de paquets incomplets et retransmis reçus. Une mauvaise fiabilité de lien augmente aussi la charge du lien.

 

Routage dynamique

Routage à vecteur de distance

Le routage à vecteur de distance permet l’échange dynamique de routes entre plusieurs routeurs directement connectés. Quoi qu’il soit possible de redistribuer les routes apprises par ce type de routage à d’autres voisins pour établir une convergence (où tous les routeurs connaissent toutes les routes vers tous les réseaux), cette convergence prend un certain temps car les routeurs s’échangent périodiquement les routes réseau plutôt que de déclencher une convergence complète lors du changement de l’état d’un lien.

Les protocoles de routage à vecteurs de distance principaux sont BGP, RIP et (E)IGRP. Quoi que plus faciles à configurer que des protocoles de routage à état de liens, ces protocoles viennent avec de sévères limitations.

Dans une configuration comme celle ci-dessous, le routeur 1 informerait le routeur 2 qu'il connait les routes vers les réseaux 192.168.0.0/27 et 192.168.0.32/27, le routeur 3 informerait le routeur 2 qu'il connait les routes vers les réseaux 192.168.0.64/27 et 192.168.0.128/27. Le routeur 2 redistribuerait l'information aux routeurs 1 et 3.

Puisqu'un protocole à vecteur de distance serait emprunté ici, R1 ne serait pas informé de l'existence de R3 et vice-versa, ils seraient seulement informé des réseaux connus par R2.

image.png

Routage dynamique

Routage à état de liens

Lorsqu’on parle de routage à état de lien, on parle de protocoles permettant aux routeurs participant à ce réseau de connaître l’ensemble de la topologie. Chaque changement d’état d’un lien déclenche une modification de la topologie auprès de tous les routeurs participant, permettant une convergence considérable plus rapide que le routage à vecteur de distance. De plus, il permet une balance de charge plus aisément qu’un protocole comme RIP et est généralement moins sujet à des boucles de routage.

Le protocole de routage à état de liens le plus répandu et standardisé est OSPF (Open Shortest Path First).

Routage inter-VLAN

Tout comme lorsque deux domaines de diffusion sont délimités par un routeur, il est nécessaire d'utiliser une passerelle pour atteindre un VLAN voisin puisqu'il s'agit du même genre de segmentation. Différentes méthodes sont employées pour effectuer le routage entre différents VLANs. Il est possible d'installer un routeur par VLAN, de configurer plusieurs interfaces d'un seul routeur et d'en relier une à chaque VLAN, de configurer un routeur à un bras ou les interfaces de chaque VLAN passeront par la même interface en ajoutant un identifiant à chaque trame pour identifier le VLAN auquel est destiné le trafic ou encore de configurer un commutateur de couche 3 qui sera lui-même directement relié à chaque VLAN et servira de passerelle aux clients de chaque VLAN.

Plusieurs routeurs

Tout comme il est possible de relier plusieurs réseaux en traversant plusieurs routeurs, chaque VLAN étant son propre réseau insinue qu'il est possible d'installer un routeur par VLAN et de router le trafic entre les VLANs à travers plusieurs routeurs. Ce genre de configuration pourrait être observée lorsqu'un VLAN doit sortir à un emplacement physique et un autre VLAN à un autre emplacement. On pourrait imaginer ici que les visiteurs de votre entreprise ont une connexion internet séparée de votre réseau corporatif et que cette entrée Internet est située dans un différent bâtiment tandis que vos VLANs corporatifs doivent sortir par votre salle des serveurs.

image.png

Avec une telle configuration, le routeur 1 aurait une interface dans le VLAN 10 et une route vers le VLAN 20 passant par le routeur 2 puis le routeur 2 aurait une interface dans le VLAN 20 et une route vers le VLAN 10 passant par le routeur 1. Dans l'exportation suivante, 10.0.0.0/30 relie les deux routeurs et chaque routeur occupe l'adresse .1 de son sous-réseau respectif.

Projet GNS3 adapté à cette machine virtuelle incluant GNS3

Routeur à plusieurs interfaces

Si tous les VLANs partagent un point de sortie commun et que votre routeur ne supporte pas l'étiquetage de VLANs, il est aussi possible de relier plusieurs interfaces du routeur dans différents VLANs. Ici, plutôt que d'utiliser deux routeurs distincts, le routeur 2 est éliminé du montage réseau et l'adresse qu'occupait le routeur 2 est assignée à une deuxième interface sur notre routeur 1. Plutôt que de devoir traverser un routeur supplémentaire, le routeur 1 sera directement relié aux deux VLANs et pourra effectuer le routage directement entre ses deux interfaces.

image.png

Projet GNS3 adapté à cette machine virtuelle incluant GNS3

Routeur à un bras / routeur sur un bâton

Tout comme les commutateurs, la plupart des routeurs peuvent aussi étiquetter les VLANs sur le trafic le traversant. Il est par conséquent possible de relier un routeur à un "trunk" pour le relier à plusieurs VLANs par un seul port. Ceci est souvent nommé un "one-armed router" (routeur à un bras) ou un "router-on-a-stick" (routeur sur un bâton).

image.png

Il est intéressant ici d'observer le trafic circulant entre la switch et le routeur pour bien comprendre son rôle. Une capture rapide avec Wireshark d'un ping de PC1 vers PC2 nous permet de visualiser la démarche du routeur pour permettre la communication entre les appareils.

image.png

On observe ici que la requête ICMP arrive dotée de l'étiquette de VLAN (ID) 10 pour permettre au routeur d'assigner ce trafic à son interface VLAN 10 et ressort dotée de l'étiquette de VLAN 20 pour que le commutateur sache à quel VLAN assigner le message et le même processus à l'envers est appliqué pour acheminer la réponse. 

Projet GNS3 adapté à cette machine virtuelle incluant GNS3

Commutateur multicouches

Pour éviter une situation comme la précédente où le trafic passe en double sur un lien pour être acheminé d'un VLAN à un autre, il est possible d'attribuer le rôle de routeur à certains commutateurs le supportant. Le trafic pourrait alors être routé d'un VLAN à un autre sans même quitter la switch.

Dans une configuration ou plusieurs circuits réseau physiques divisés en plusieurs VLANS sont interreliés, des commutateurs multicouches ou des commutateurs de couche 3 (ou réseau) feront office de routeurs pour les clients de chaque VLAN. L'avantage d'une telle situation est que puisque ce commutateur peut être lié à plusieurs autres commutateurs d'accès (commutateurs dans lesquels des hôtes du réseau sont connectés), le routage entre les VLANs ne nécessitera pas d'équipement supplémentaire (ex. il ne sera pas nécessaire de traverser un routeur pour qu'un poste de travail contacte une imprimante).