# Réseau : Cours 3 : Routage

## Introduction

Dans un gros réseau, pour raisons de sécurité et organisation, on divise le réseau en créeant des sous réseaux par service.

Pour router les messages entre les réseaux, le routeur utilise une table de routage qui contient les réseaux connectés et les interfaces qui les relient, ainsi que le routes pour atteindre les réseaux distants.

On peut configurer les routes manuellement ou via un protocole de routage.

Composants d'une route : 

- Réseau destination
- Masque sous réseau
- Adresse de passerelle ou d'interface
- Coût de la route (nb de sauts, bande passante)

Etapes de résolution : 

- Récupère l'adresse d'hôte et l'adresse de réseau dans le paquet
- Consulte le masque associé à chaque route dans la table et l'applique à l'adresse du paquet
- Comparer le résultat à l'adresse de la route dans la table
- Si correspondance, envoie sur cette route

## Types de routes (C)

### Routes connectés directement

Routes des réseau locaux ajoutées à la configuration des interfaces

### Routes statiques (S)

Configuration manuelle d'une route statique vers un réseau donné. Ne change qu'en cas d'action manuelle de l'administrateur

### Routes dynamiques (selon le protocole)

Crées et gérées automatique par les protocoles de routage. Ces derniers échanges des informations entre les routeurs pour remplir les tables de routage.

### Route par défaut

Route statique qui spécifie une passerelle quand la table de routage ne permet pas de router un paquet.

### Configuration des routes statiques

```bash
ip route <réseau destination> <masque sous réseau> <adresse passerelle>
```
ou
```bash
ip route <réseau destination> <masque sous réseau> <interface sortie>
```

![Routes statiques](./assets/routes-statiques.png)
![Routes statiques](./assets/routes-statiques2.png)

## Protocoles de routage

Permet de faire du routage sans avoir besoin de configurer, les routes sont découvertes grâce à des algorithmes de routage. Deux types principaux : veteur de distance et état de liens.

Vecteur de distance : Chaque routeur effectue une diffusion d'info de routage vers les autres noeuds du réseau. Evalue la distance et la direction vers la destination pour trouver le meilleur chemin.

Etat des liens : mise à jours des voisins à partir des modif de la topologie réseau, grâce aux infos d'état de lien. Cela correspond à IP/masque de l'interface, status d'une liaison, type de réseau coût de liaison et routeurs voisins. Evalue le cout des liaisons vers la destination pour évaluer le meilleur chemin.

## Protocole RIP

Protocole de routage à vecteur de distance qui utilise le nombre de sauts comme matrice de routage. 

Avantages : 

- Simple à mettre en oeuvre
- Répandu

Inconvénients : 

- Pas + de 15 sauts
- Traffic pour envoyer les copies des tables aux voisons
- Lent sur les gros réseaux

Il convient pour les petits réseaux mais pas pour les gros

### Configuration

```
router rip
version 2
network <adresse réseau>
```

![Configuration RIP](./assets/config-rip.png)

Config sur R1 : 

```
router rip
version 2
network 192.168.1.0
network 192.168.0.0
network 172.16.0.0
exit
```

Config sur R2 : 

```
router rip
version 2
network 192.168.2.0
network 182.168.0.0
network 182.168.4.0
```

Config sur R3 : 
```
router rip
version 2
network 192.168.2.0
network 192.168.1.0
network 10.0.0.0
```

## Protocole IGRP

Protocole de routage à vecteur de distance propriétaire Cisco qui est une amélioration de RIP car il marche avec + de 15 sauts (224). Utilises l'algo DUAL. Il utilise deux tables supplémentaires : table de voisinage (infos sur les routeurs voisins) et table topologique (calcul du chemin le plus court à partir des infos des voisins).

## Protocole OSPF

Protocole de routage à état de liens non propriétaire (RFC 2328) : 

- Utilise l'algo SPF (Shortest Path First) pour calculer le coût le plus le plus bas vers une destination
- Envoie des mises à jours seulement en cas de modification de la topologie
- Convergence rapide
- Prend en charge le masque sous réseau de longueur variable et les sous réseaux discontinus
- Authentification de la route

## Routage dans une organisation

Les routeurs peuvent avoir plusieurs protocoles de routage installé (avec chacun leurs route préférées différente) + éventuellement des routes statiques. Comment faire pour choisir une route.
On utilise la DA (distance administration), qui indique la fiabilité de la route. Plus la DA est faible plus la route est fiable : 
Route directement connectée (0) < Route statique (1) < Route OSPF (110) < Route RIP (120)

### Choix du routage

- 1 passerelle : Routes statiques
- Jusqu'à 15 routeurs : RIP
- + De 15 routeurs : OSPF ou EIGRP

## Protocole de Routage extérieur : BGP

Internet est divisé en réseau appelés système autonomes (AS) controlés de manière indépendante (Ex : FAI). Chaque AS a un ASN (Autonomous System Number) utilisé pour le routage des paquets via internet.

IGP (Interior Gateway Protocol) : protocole de routage interne comme RIP, EIGRP et OSPF.<br>
EGP (Exterior Gateway Protocol) : protocole de routage externe comme BGP.

BGP pour Border Gateway Protocole est un procole EGP basé sur l'aggregation de routes. Le protocole permet aux AS d'échanger entre eux les informations d'accessibilité (mesure du niveau d'accessibilité d'un réseau).

### Configuration BGP

```
router bgp <numéro AS>
neighboor <adresse ip routeur voison> remote-as <numéro AS>
network <adresse réseau> mask <masque réseau>
```

![Routage BGP](./assets/bgp.png)

Config du routeur C1 :

```
router bgp 100
neighboor 10.10.10.10 remote-as 100
network 172.19.0.0
```
