<h1>Travaux pratiques 1
Protocole de routage BGP
</h1>
<h2>
Enzo Cecotti
</h2>
<h2>
1.2 Configuration de base
</h2>
<h3>
1. Configurez les vlan sur les commutateurs en fonction du schéma.
</h3>
| Commutateur | SA | Vlans(port) |
| ----------- | ------ |:-----------------:|
| S1 | AS 100 | 10(1-4)/20(5-7) |
| S3 | AS 200 | 200(1-4)/201(5-7) |
| S5 | AS 300 | 45(1-4)/46(5-7) |
| S7 | AS 200 | 11(1-4)/12(5-7) |
Cette configuration s'est faite de façon graphique :

<h4>
2. Configurez les interfaces des routeurs R1, R2, R3, R4 et R5 en fonction du schéma
</h4>
Tableau qui associe les routeurs aux différents réseaux auquels ils appartiennent.
| Router | Interface | Add IP | Mask |
| ------ |:----------:|:---------------:|:----:|
| R1 | s0/0 | 129.213.1.2 | /30 |
| R1 | f1/0.10 | 155.24.32.254 | /24 |
| R1 | f1/0.20 | 160.78.45.254 | /24 |
| R2 | s0/0 | 129.213.1.1 | /30 |
| R2 | eth1/1 | 175.220.212.254 | /24 |
| R2 | eth1/0 | 197.5.1.1 | /30 |
| R3 | eth1/0 | 197.5.1.2 | /30 |
| R3 | eth1/1.200 | 175.220.5.254 | /24 |
| R3 | eth1/1.201 | 180.98.78.254 | /24 |
| R3 | eth1/3 | 197.5.1.9 | /30 |
| R3 | eh1/2 | 197.5.1.5 | /30 |
| R4 | eth1/0 | 197.5.1.6 | /30 |
| R4 | eth1/1 | 175.220.1.254 | /24 |
| R4 | s0/0 | 130.1.7.1 | /30 |
| R5 | s0/0 | 130.1.7.2 | /30 |
| R5 | f1/0.46 | 109.2.5.254 | /24 |
| R5 | f1/0.45 | 120.62.30.254 | /24 |
| R6 | eth1/0 | 197.5.1.10 | /30 |
| R6 | eth1/1 | 200.10.0.1 | /30 |
| R7 | eth1/0 | 200.10.0.2 | /30 |
| R7 | eth1/1.11 | 200.10.11.0 | /24 |
| R7 | eth1/1.12 | 200.10.12.0 | /24 |
<h4>
3. Mettez en place le protocole de routage OSPF à l’intérieur de l’AS 200 dans l’aire 0
</h4>
Dans cette configuration nous ne mettons pas les reseaux qui sont entre 2 routeurs de différentes aires ou de différents AS.
```
R3(config)#router ospf 1
R3(config-router)#network 197.5.1.0 0.0.0.3 area 0
R3(config-router)#network 197.5.1.4 0.0.0.3 area 0
R3(config-router)#network 175.220.5.0 0.0.0.255 area 0
R3(config-router)#network 180.98.78.0 0.0.0.255 area 0
```
```
R2(config)#router ospf 1
R2(config-router)#network 197.5.1.0 0.0.0.3 area 0
R2(config-router)#network 175.220.212.0 0.0.0.255 area 0
```
```
R4(config)#router ospf 1
R4(config-router)#network 197.5.1.4 0.0.0.3 area 0
R4(config-router)#network 175.220.1.0 0.0.0.255 area 0
```
<h4>
Connectez un PC hôte sur chaque réseau desservit par un routeur (R1, R2, R3, R4 et R5)
et configurez son adresse IP par l’intermédiaire de la console VPCS. La commande help vous
permet d’identifier les commandes à utiliser pour configurer l’IP et sauvegarder la configuration.
</h4>
Pour chaque PC :
```
pc1#ip ADD/MASK GATEWAY
pc1#save
```
<h4>
5. Vérifiez que tous les vlan d’une même AS peuvent se voir, et que des vlan d’AS différents ne se voient pas. Visualisez les tables de routage de R1, R2, R3, R4 et R5.
</h4>
table de routage de R1 (qui n'est dans aucune zone de routage), cela est aussi valable pour R5 qui n'est pas dans le même AS:

table de routage de R3 (dans zone OSPF 0) :

Pour les autres tables de routages aucunes information d'une zone n'est à trouver.
<h3>
1.2.2 Configuration de BGP
</h3>
<h3>
1.2.2.1 Activation de BGP
</h3>
Pour que les paquets puissent transiter entre les AS, il faut mettre en place un protocole de routage externe (type EBGP). Sur Internet, c’est actuellement BGP v.4 qui est utilisé. La commande suivante en mode de configuration active le processus BGP sur un routeur appartenant à une AS :
`router bgp numero AS`
Par exemple, pour activer BGP sur R1, il faut rentrer la commande
`router bgp 100`
Visualiser les voisins bgp :
`show ip bgp neighbors`
<h4>
6. Activer le processus BGP sur R1, R2, R4 et R5
</h4>
Configurer EBGP signifie configurer BGP entre 2 routeurs de 2 AS différents. Comme un routeur de bordure. Alors :
Pour R1:
`router bgp 100`
Pour R2 et R4:
`router bgp 200`
Pour R5:
`router bgp 300`
<h3>
1.2.2.2 Configuration des voisinages
</h3>
Pour maintenant mettre en place le protocol BGP, il faut déclarer les différents voisins qui eux aussi utilisent BGP comme protocol de routage.
Commande suivante permet d’établir une connexion TCP entre deux voisins :
`neighbor ip-address remote-as number`
<h4>
7. Définissez le lien de voisinage BGP entre R1 et R2 puis entre R4 et R5
</h4>
Nous assossions l'adresse IP du routeur voisin et son AS.
Pour le lien R1-R2 :
```
R1#neighbor 129.213.1.1 remote-as 200
R2#neighbor 129.213.1.2 remote-as 100
```
Pour le lien R4-R5:
```
R4#neighbor 130.1.7.2 remote-as 300
R5#neighbor 130.1.7.1 remote-as 100
```
<h4>8. Visualisez les voisins actifs avec la commande
</h4>

On observe bien que la connexion est établie avec "established" et que R2 est bien connecté au routeur R1 avec l'adresse IP qui lui est associé.
<h4>
9. Sur l’interface s0/0 de R2, lancez une capture de trame via wireshark (clic droit sur l’interface)
</h4>
Simple clique droit puis capture sur une ligne de connexion entre 2 routeurs, ici R1 et R2.
<h4>
10. Sur R1 ou R2, ré-initialisez la connexion bgp par la commande :
</h4>
Cette commande permet de rédémarrer le protocol BGP pour que l'on puisse voir tout ce qui doit trafiquer entre les 2 routeurs comme si nous venions de configurer à l'instant le protocol BGP. A l'aide de la commande :
`clear ip bgp *`

<h4>
11. bservez les flux générés lors de l’établissement du lien de voisinage.
</h4>
- protocole transport : TCP
- ports d’écoute : 179 - 18459
- Nous observons des messages SYN/SYN, ACK/ACK qui est caractéristique du 3 handshakes d'une connection TCP. Cela permet aux 2 routeurs de pourvoir être en connexion TCP.

<h4>
12. Configurez une interface de bouclage sur R2 et R4 d’adresses respectives 100.2.0.1/32 et
100.4.0.1/32.
</h4>
Le routeur voisin doit informer BGP de l’utilisation d’une interface de bouclage plutôt qu’une interface physique pour initier la connexion TCP avec la commande :
`neighbor ip-address update-source interface`
Création d'une Loopback qui permet d'avoir une interface virtuelle qui permet la connexion entre tous les routeurs, car si une interface tombe tout le réseaux associés tombent eux aussi.
Pour R2:
```
R2#int Loopback 1
R2#ip add 100.2.0.1 255.255.255.255
R2#end
```
Pour R4 :
```
R4#int Loopback 1
R4#ip add 100.4.0.1 255.255.255.255
R4#end
```
<h4>
13. Les deux voisins n’étant pas en lien direct, établissez une route statique entre les deux interfaces de bouclage sur R3
</h4>
Ici on indique par une route statique où sont les 2 loopback de R2 et R4 au routeur R3.
```
R3#ip route 100.2.0.1 255.255.255.255 197.5.1.1
R3#ip route 100.4.0.1 255.255.255.255 197.5.1.6
```
<h4>
14. Créez un lien de voisinage entre R2 et R4 en utilisant les interfaces de bouclage.
</h4>
On indique maintenant les voisins, même non directement connecté au protocol BGP en informant les loopback comme interface du voisin.
Pour R2:
```
router bgp 200
neighbor 100.4.0.1 remote-as 200
neighbor 100.4.0.1 update-source lo1
```
Pour R4:
```
router bgp 200
neighbor 100.2.0.1 remote-as 200
neighbor 100.2.0.1 update-source lo1
```
<h4>
15. Visualisez le voisinage entre R2 et R4.
</h4>
Avec la commande `show ip bgp neigbors` de R4 :

On observe bien que R4 voit bien son voisin indirect R2 avec comme adresse, son adresse de Loopback.
<h4>
16. Visualisez les flux BGP sur la capture de trames.
</h4>
Rien est à voir pour l'instant car R3 n'est pas encore dans le protocol de routage BGP donc aucunes communications peut être faite entre les différents routeurs avec BGP.
<h4>
17. Expliquez les tables de routage de R1, R2, R4 et R5
</h4>
Table de routage de R2:

Table de routage de R1 :

On ne voit pas les tables de routgaes avec BGP car les routes ne peuvent être diffusées entre le routage entre OSPF et BGP. Donc R1 ne connait que ses routes directement connectées. Ce qui est la même chose pour R5 qui est lui aussi voisin d'un routeur d'un autre AS.
Pour R2 on observe la même chose mais en plus les routes diffusés par OSPF sont disponible, ce qui nous aidera plus tard pour la diffusion de routes dans BGP.
<h3>
1.2.2.3 Annonce de route
</h3>
Une des façons d’envoyer des informations sur le réseau à l’aide de BGP est d’utiliser la commande network. Le format est :
`network network-number mask network-mask`
<h4>
18. Annoncer les réseaux des vlan 10 et 20 sur R1 à l’aide de la commande network
</h4>
On met maintenant les réseaux directement connecté au routeur et on les diffuse grâce à la commande donnée juste avant. Sur R1:
```
R1#network 155.24.32.0 mask 255.255.255.0
R1#network 160.78.45.0 mask 255.255.255.0
```
<h4>
19. Même question pour le routeur R5 et les réseaux des vlan 45 et 46
</h4>
```
R5#network 109.2.5.0 mask 255.255.255.0
R5#network 120.62.30.0 mask 255.255.255.0
```
<h4>
20. Sur Wireshark, quel est le nom du message BGP généré lors de l’annonce de route.
</h4>
Le message BGP envoyer lors de l'annonce de la nouvelle route est "UPDATE Message"
<h4>
21. Sur Wireshark, observez les différents champs présents.
</h4>

Les nouvelles sont ajoutées grâce à ce nouveau message. On observe bien das Network LAyer Reachability Information les 2 réseauux de R1 être diffusés vers R2.
:::info
Il est également possible d’injecter directement les réseaux connectés au routeur dans BGP avec la commande suivante :
```
router bgp numero AS
redistribute connected
```
:::
<h4>
22. Injectez avec cette commande dans bgp les réseaux directement connectés à R2
</h4>
Maintenant on peut faire diffuser les routes que connait R2 qui sont liées à BGP avec la commande suivante :
```
R2#router bgp 200
redistribute connected
```
<h4>
23. Même question pour R4
</h4>
```
R4#router bgp 200
redistribute connected
```
<h4>
24. Vérifiez que les tables de routage des routeurs R1, R2, R4 et R5 sont correctement renseignées
</h4>
Pour R1 :

Pour R4:

Les routes sont correctes. Pour R4 les routes OSPF sont celles du début et sont toujours bonne avec le préfixe O. Les routes directement connectées avec le préfixe C sont elles aussi correctes, et le préfixe B nous permet de voir les routes que BGP a transmit à R4. R4 a bien les 4 routes que nous avons configurés avant, soit les VLans 10,20, 44 et 46.
<h4>
25. Faites un ping d’un poste du vlan 10 de l’AS 100 vers un poste situé dans le réseau 175.220.212.0 de l’AS 200. Même question vers le réseau 175.220.1.0 de l’AS 200. Même question entre les réseaux 175.220.212.0 et 175.220.1.0 de l’AS 200. Donnez une explication claire et détaillée de ce que vous observez. Vous vous appuyerez sur des captures de trames et sur les tables de routages, en particulier.
</h4>
Ping entre AS100 VLAN 10 et AS200 Vlan 175.220.212.0:


Le ping arrive à s'efftuer du fait du protocol de routage de BGP qui permet au routeur R1 de pouvoir connaitre le réseau dans l'AS 200 de R2 directement connecté. Sur la table de routage R1 et R2 ont les réseaux envoyés avec BGP.
Le pring entre les 2 réseaux coupé par le routeur R3 n'abouti pas :


Ce ping ne peut pas s'effectuer car les 2 réseaux sont effectivement tout 2 dans enrolés dans le protocol BGP mais il y a le routeur R3 qui lui, fait le lien entre R1-R2 avec R4, qui n'est pas dans le protocol BGP et seulement dans le protocol de routage OSPF.
<h4>
26. Une solution pour résoudre ce problème de connectivité est de d’activer BGP sur R3. Configurez BGP sur R3 et vérifiez que vous avez une connectivité complète entre les trois AS
</h4>
Pour mettre R3 dans le protocol de routage BGP nous mettons l'AS auquel il appartient, puis nous déclarons ses différents voisins.
Pour R3:
```
router bgp 200
neighbor 197.5.1.1 remote-as 200
neighbor 197.5.1.6 remote-as 200
```
Nous devons ensuite déclarer R3 comme voisin pour R2 et R4.
Pour R2:
```
neighbor 197.5.1.2 remote-as 200
```
Pour R4:
```
neighbor 197.5.1.5 remote-as 200
```
On peut voir que maintenant l'AS100 peut communiquer avec toute l'AS 200 :
AS100 vers AS 200 connecté à R4 :

AS100 vers AS 300 connecté à R3

<h3>
1.2.2.4 Routage OSPF multi-aires
</h3>
<h4>
27. Configurez les interfaces de R3, R6 et R7 en fonction du schéma
</h4>
Nous mettons les adresses IP que nous avons choisies dans les premières questions.
<h4>
28. Configurez le protocole OSPF dans l’aire 1 sur R6 et R7
</h4>
Nous configurons le protocol de routage OSPF dans l'aire 1, nous déclarons les réseaux directement connectés dans le protocol OSPF pour R7 et R6.
Sur R7:
```
R7#router ospf 1
R7#network 200.10.0.0 0.0.0.3 area 1
R7#network 200.10.11.0 0.0.0.255 area 1
R7#network 200.10.12.0 0.0.0.255 area 1
```
Sur R6 nous ne mettons pas le réseaux entre R6 et R3 car cela sera servi pour faire un lien dans l'aire 0 pour R3-R6:
```
router ospf 1
network 200.10.0.0 0.0.0.3 area 1
```
<h4>
29. Configurez les gateway de R6 et R7
</h4>
C'est vers R3 que se trouve les autres réseaux et c'est R6 qui est connecté à R3. C'est donc sur R6 que nous configurons une route par défaut et nous la diffusons dans ospf dans l'aire 1.
```
ip route 0.0.0.0 0.0.0.0 197.5.1.9
router ospf 1
default*information originate
```
<h4>
30. Configurez sur R6 le réseau 197.5.1.8/30 dans l’aire 0
</h4>
Nous avons juste à connecté le réseau de R6 à R3 dans la configuration d'OSPF pour R3 et R6.
```
R3/R6#network 197.5.1.8 0.0.0.3 area 0
```
<h4>
31. Annoncer le préfixe réseau de l’aire 1 sur R6
</h4>
Pour diffuser de façon moins importantes tous les réseaux, pour éviter de donner chaques routes une par une nous donnons une route résumé :
```
area numéro d’aire range préfixe masque
```
Ici dans R6 :
```
area 1 range 200.10.0.0 /16
```
<h4>
32. Visualisez et expliquez la table de routage de R2, R3 et R4
</h4>
Pour R4:

Pour R3 :

Pour R2:

Pour ces 3 captures, nous avons bien la diffusion du réseau résumé 200.10.0.0/16 fait par R6 sur l'aire 0. Que l'on voit avec le préfixe O IA.
Ensuite nous avons les mêmes choses qu'avant, rien n'a changé.
<h4>
33. Visualisez les tables de routage de R1 et R5. Les routes de l’aire 1 de l’AS 200 sont-elle annoncées ? Pourquoi ?
</h4>

Les routes de l'aire 1 de l'AS 200 ne sont pas diffusées du fait que c'est le protocol OSPF qui a permit de diffuser les routes de la zone 1 vers la zone 0.
BGP n'étant pas directement lié au protocol OSPF toutes les routes sur OSPF doivent être rentrées manuellement pour qu'elle puissent être diffusées dans BGP.
:::info
Pour redistribuer les routes apprises par OSPF dans BGP, la commande est :
router bgp numero AS
`redistribute ospf numero match | route-map | metric`
:::
:::info
Le format d’une mise en correspondance de route est le suivant :
route-map map-tag [[permit | deny] | [sequence-number]]
:::
:::info
Le numéro de séquence est une indication de la position d’une nouvelle mise en correspondance de route dans la liste des mises en correspondance de route déjà configurées avec le même nom :
route-map MYMAP permit 10
route-map MYMAP permit 20
:::
:::info
Supposons que l’on veuille que R2 redistribue dans l’AS 200 à OSPF les routes 160.78.45.0 et 155.24.32.0 avec une mesure de 2. Les autres routes auront une métrique de 5. La configuration
de R2 serait :
```
router ospf 1
network 175.220.212.0 0.0.0.255 area 0
network 197.5.1.0 0.0.0.3 area 0
redistribute bgp 200 route-map EXEMPLE
router bgp 200
neighbor 100.4.0.1 remote-as 200
neighbor 100.4.0.1 update-source Loopback1
neighbor 129.213.1.1 remote-as 100
route-map EXEMPLE permit 10
match ip address 1
set metric 2
route-map EXEMPLE permit 20
set metric 5
access-list 1 permit 160.78.45.0 0.0.0.255
access-list 1 permit 155.24.32.0 0.0.0.25
```
:::
<h4>
34. En vous inspirant de l’exemple précédent, proposez une syntaxe pour la redistribution unique du préfixe réseau 200.10.0.0/16 d’OSPF vers BGP avec une métrique de 2
</h4>
Nous nommerons cette configuration TEST. Comme nous volons que cela soit BGP qui recoive les routes d'OSPF nous configurons dans OSPF la commande :
`redistribute ospf 200 route-map TEST`
Puis nous appliquons cette réglè avec une métrique de 2. Et au cas où nous mettons un permet de 20 avec une métrique de 20 en cas de soucis.
```
R3#router bgp 200
R3#redistribute ospf 200 route-map TEST
R3#route-map TEST permit 10
R3#match ip address 1
R3#set metric 2
route-map TEST permit 20
set metric 5
R3#access-list 1 permit 200.10.0.0 0.0.255.255
```
<h4>
35. Mettez en place cette redistribution sur R3
</h4>
<h4>
36. Visualisez et expliquez les tables de routage de R1 et R5
</h4>

On observe que R4 a reçut de nombreuses routes avec le protocol BGP, comme on le voit avec le préfixe B, on observe tous les Vlans de réseaux configurés dans BGP mais aussi les routes que R3 avaient dans la table de routage OSPF.