corrigé - Réseaux

Transcription

corrigé - Réseaux
Licence Informatique L3
Mai 2011
Département d’Informatique
Épreuve de Réseaux Locaux et Interconnexion
Aucun document autorisé
Durée 2 heures, les 2 parties sont indépendantes
I
On considère le réseau ci-dessous, composé de 6 LAN notés Ni, reliés par 6 ponts notés Pi,
exécutant le spanning tree protocol (STP, sans les extensions du Rapid STP). Toutes les
interfaces ont un poids de 1, et les délais ont la valeur par défaut : Hello_Time 2s,
Forward_Delay 15s, Max_age 20s.
N1
P1
d
d
P2
r
N2
d
d
r
d
P5
d
r
P6
d
N6
b
r
d
d
N3
d
P3
d
r
P4 d
N5
N4
1) On suppose que l’ordre de priorité est celui des numéros des ponts (P1 le plus
prioritaire). Donnez l’arbre construit par le STP, avec l’état des interfaces.
Combien de messages du STP (BPDU) circulent par minute sur chaque lien entre
ponts ? sur le lien entre ponts et LAN ? Par où passent les trames entre N4 et N6 ?
P1 est élu racine. Les ports racines (r) mènent à la racine par le chemin le plus court.
Sur le lien P4 - P5 , il y a deux chemins de même longueur, donc priorité est donnée au
pont le plus prioritaire, l’interface de P5 vers P4 passe en état bloquant. (voir schéma
ci-dessus). Chaque pont envoie un message par Hello-time sur chaque port désigné,
donc 30 messages par minute sur chaque lien. Les trames entre N4 et N6 passent par
P4 P3 P1 P2 P5 P6 .
2) On suppose que chaque LAN engendre un débit de D bits par seconde vers
chaque autre LAN, ainsi qu’un débit B en broadcast. Quel est le débit observé
sur chaque lien Pi-Pj ?
Les trames en broadcast inondent tout le réseau donc le débit broadcast total, quelque
soit le lien, est au total de 6 * B, i * B dans un sens et (6-i)*B dans l’autre. Les trames
entre deux LAN, grâce au filtrage, ne passent que par la portion de l’arbre qui relie les
deux LAN. Par exemple le lien P1 – P3 ne voit passer que le trafic entre N3 ou N4 et
N1 ou N2 ou N5 ou N6, soit 2*4 D dans chaque sens. Les débits observés sont donc :
P1 –> P2 : 3 B + 9 D , P1 –> P3 : 4 B + 8 D, P2 –> P1 : 3 B + 9 D, P2 –> P5 : 4 B + 8
D, P3 –> P1 : 2 B + 8 D, P3 –> P4 : 5 B + 5 D, P4 –> P3 : B + 5 D, P4 –> P5 : 6 B + 0
D, P5 –> P2 : 2 B + 8 D, P5 –> P4 : 0, P5 –> P6 : 5 B + 5 D, P6 –> P5 : B + 5 D
On observe que le trafic unicast est plus fort à proximité de la racine. Le trafic
broadcast est plus fort en s’éloignant de la racine.
3) Quelle est la conséquence de la perte d’un BPDU entre P2 et P5 ? 2
pertes successives ? n pertes successives ?
Tant que le délai max_age n’est pas dépassé sans recevoir de BPDU, il n’y a pas de
conséquence, donc en dessous de 10 pertes. Avec 10 pertes consécutives, il y a 20s
sans BPDU et il y a donc reconstruction de l’arbre. P5 prend l’autre BPDU mémorisé
(venant de P4), donc l’interface de P5 vers P4 devient racine, et celle de P5 vers P2
devient désignée.
4) On suppose que le lien entre P1 et P2 est coupé. Quel pont va détecter la coupure
(justifiez) ? Précisez les différentes étapes avant la stabilisation de l’arbre ainsi
que l’arbre obtenu. Quelle est la durée de la coupure de données entre N1 et N6 ?
P2 ne va plus recevoir de BPDU et détecte la coupure au maximum après max_age
(donc entre 18 et 20 secondes). P4 ne reçoit pas de message BPDU en temps normal
donc ne peut détecter la coupure. Dans certain cas, en fonction de la technologie,
P1 (et P2) pourrait détecter physiquement et très rapidement la coupure et déclarer le
port non opérationnel.
Au déclenchement de max_age, P2 (qui n’a pas d’autre message BPDU mémorisé) se
déclare racine et envoie des BPDU par ses deux ports (initialement désignés). A
réception de ce BPDU, P5 qui a encore un message de la racine P1 via P4, passe son
interface vers P4 en racine et celle vers P2 en désigné et envoie un BPDU à P2. Celui-ci
change donc l’état de son interface vers P5 en racine. Il faut attendre forward_delay
pour que l’interface de P5 vers P4 ne laisse passer les trames de données, soit une
coupure environ de max_age + forward_delay : 35s entre N1 et N6.
Remarque dans STP (par opposition à RSTP), il est possible que le délai max-age se
déclenche sur P5 avant sur P2, dans ce cas la phase intermédiaire où P2 se déclare
racine est évitée.
5) Le lien P1-P2 est maintenant rétabli. Précisez les différentes étapes avant la
nouvelle stabilisation de l’arbre. Les transferts de données entre N1 et N6 ont-ils
été interrompus ? si oui, combien de temps, sinon pourquoi ?
P1 continuait d’envoyer des BPDU, donc au plus tard 2s après le rétablissement, P2
reçoit un BPDU et change d’état (retour à l’état précédant la panne). De même, P2
envoie un nouveau BPDU à P5 qui repasse dans l’état précédent. Donc le port de P5
vers P4 passe tout de suite en BLOCKING. Par contre les ports de P2 et P5 qui sont
passés de racine à désigné ou inversement doivent attendre forwarding_delay avant de
transmettre des données (FORWARDING) : il y a donc coupure pendant 15s entre N1
et N6.
6) Le lien P1-P2 est décidément peu fiable et alterne entre des phases de coupure et
des phases de fonctionnement : cycliquement m secondes de fonctionnement
suivies de n secondes de coupure. Quel est l’impact sur le réseau, en fonction de
m et n ?
Pour des petites valeurs de m et n, cela revient à des pertes plus ou moins aléatoires de
BPDU et le comportement sera assez imprévisible. Supposons m et n > 2s. Si n <
max_age -2 (18s), le pont a le temps d’envoyer un BPDU après chaque coupure, et il
n’y a jamais de timeout, donc le réseau semble fonctionner normalement du point de
vue du STP (même s’il est possible que la liaison soit coupée 18 s sur 20 soit 90% du
temps). Si n > max_age la coupure est détectée par le STP, il y a changement d’état et
coupure pendant 35s d’après la question 5). Si n > forward_delay+ max_age (35s) les
données ont donc le temps de reprendre par le nouvel arbre, 35s après chaque coupure.
Quand le lien est rétabli, le STP met 15s à converger, donc si m < 15 l’arbre initial n’a
pas le temps d’être réutilisé, sinon il est utilisé m – 15 s. Pour résumer, à chaque
cycle, si n > 20, le nouvel arbre est utilisé max (n -35, 0) et l’ancien max (m – 15, 0).
En particulier si 20 < n < 35 et m < 15, le STP n’est jamais opérationnel.
7) Sans changer le matériel du réseau, peut-on réduire le problème en configurant le
STP ?
On peut configurer le STP pour que le lien P1-P2 ne soit pas utilisé en temps normal,
par exemple en donnant un coût très élevé au lien (5 suffit sur cet exemple pour que le
meilleur chemin de P1 à P2 ne passe pas par le lien P1 – P2 ). On pourrait aussi changer
la priorité des ponts pour que P4 soit racine, dans ce cas l’un des deux ports de P1 – P2
sera bloquant. La première solution est plus générale, car elle permettrait de traiter
plusieurs liens non fiables, sous réserve qu’ils appartiennent à un cycle.
8) On souhaite modifier le protocole STP pour traiter automatiquement le problème
du 6). Proposer une extension qui devra si possible préserver la connexité globale
et limiter les oscillations de l’arbre de recouvrement.
L’idée est d’éviter de retourner à l’arbre initial quand le lien est rétabli : quand un port
passe de racine à désigné (et avec le même pont racine) : mémoriser que le lien entre
le pont précédent et celui-ci est rompu mais que l’arbre est toujours connexe (car
même racine). (état = après-panne). Pour être sûr que c’est le lien juste au dessus qui
est coupé (et non un lien plus haut dans l’arbre), il faudrait utiliser la méthode de
RSTP : chaque pont envoie un BPDU tous les Hello_time et non pas quand il reçoit un
BPDU par son port racine. Quand dans l’état « après-panne » on reçoit de nouveau un
BPDU identique à celui d’avant panne : ne pas repasser le port dans l’état racine
(stocker le BPDU reçu, mais ne pas en tenir compte pour le calcul de l’arbre). Si le
BPDU reçu par le port racine change (= autre changement dans l’arbre) : supprimer :
supprimer l’état « après-panne » du port et repasser en calcul normal.
Au lieu de mettre en place ce dispositif après la première panne (ce qui risque de
laisser longtemps l’arbre dans une configuration non optimale), on peut compter les
pannes sur le port, et n’activer le dispositif qu’après un nombre suffisant de panne par
période. De même après une longue période sans panne, on peut aussi revenir au
fonctionnement normal.
II
On considère un réseau IP ci-dessous où les Ri sont des routeurs Ospf, et les Li des LAN, les
autres liaisons entre routeurs sont point-à-point. Tous les liens ont un coût de 1 sauf les liens
R1-R2 (10), R1-R5 (5) et le LAN L2 (10). On suppose pour le moment qu’il y a une seule zone
(area).
R2
Zone 1
L1
R3
R4
R1
Zone 2
R7
R5
L2
L3
R6
1) Quel est le nombre d’annonces d’états des liens (AEL = LSA) stockées dans la base
du routeur R6, du routeur R7 ?
Il y a un AEL de type routeur par routeur, donc 7, et un AEL de type réseau par LAN de
transit, donc 1 (pour L2). Par principe du routage à état des liens, tous les routeurs ont la
même base.
2) Pour chaque routeur, quelle est la ligne de la table de routage pour la destination
L1 ?
Routeur
Next hop
Coût
Routeur
Next hop
Coût
R1
L1
local
R5
R1
6
R2
R5
7
R6
R7
11
R3
R2
8
R7
R4
10
R4
R3
9
3) Quel est le nombre d’AEL différents reçu par R7 suite à la coupure du lien R1-R2 ?
Peut-il recevoir plusieurs fois le même AEL par des liens différents ? Par le même
lien ? Justifiez les différents cas possibles. Généralisez à un routeur quelconque d’un
réseau Ospf.
Les deux routeurs adjacents à la coupure, R1 et R2 détectent la coupure et envoient chacun
un nouvel AEL de type routeur, donc R7 reçoit 2 AEL différents. R4 et R6 vont recevoir
ces AEL, donc ils peuvent chacun les envoyer à R7, donc R7 peut recevoir le même AEL
par ses deux voisins (dépend de l’ordre dans lequel les AEL sont transmis de proche en
proche). Sur un lien point-à-point, le même AEL n’est transmis qu’une seule fois, sauf si
une erreur provoque une retransmission. Généralisation : lors de la coupure d’un lien
point-à-point, un routeur reçoit 2 AEL différents (sauf si le réseau est coupé en deux,
auquel cas il en reçoit un seul). Chaque AEL peut-être reçu de chaque routeur voisin (mais
une seul copie est conservée et propagée).
On considère maintenant que le réseau Ospf est découpé en plusieurs zones, suivant les
pointillés (la zone backbone 0 contient ce qui n’est pas dans les zones 1 et 2).
4) Quelles sont les AEL concernant L1 reçues par R4, R6, R7 ?
R4 reçoit une AEL résumée de R2 (L1,7) et une autre de R5 (L1, 6), et envoie une AEL
résumée dans la zone 2 (L1, 9), de même pour R6 qui envoie (L1, 16) dans la zone 2.
A noter que dans la zone 0, R4 est à distance 11 de R5 car le lien R2 – R5 n’est pas dans la
zone 0. Dans la zone 2, R7 reçoit ces deux AEL et les propagent vers l’autre routeur (donc
R4 reçoit l’AEL envoyé par R6 dans la zone 2, et réciproquement, mais ils les ignorent car
ils sont connectés à la zone 0).
5) Expliquez comment chaque routeur calcule son routage pour L1.
Pour R2 et R5, c’est le routage normal intra-zone. Pour les routeurs de la zone 0 (et pas
dans la zone 1) : R4 calcule le minimum de dist(R4,R2) + dist (R2, L1) = 9 et dist(R4,R5) +
dist (R5,R1) = 13. Le minimum est donc 9. De même, R6 calcule le minimum de
dist(R6,R2) + dist(R2,L1) = 18 et dist(R6,R5) + dist(R5,L1) = 16, soit 16. R7 calcule le
minimum de 9+1 (via R4) et 16+1 (via R6) et le minimum est donc 10. A noter que la
route de R6 vers L1 passe par L2 et a un coût de 16, alors que dans le cas sans zone, la
route passait par R7 et avait un coût de 10. Ceci vient du fait que R6 ne peut pas passer par
la zone 2 pour aller vers un autre routeur de la zone 0 (ou 1).
6) En cas de coupure du lien R2-R5, quelles sont les AEL reçues par R3 ? par R7 ?
(justifiez) Donnez les nouvelles tables des routeurs pour la destination L1
Pour R5, cela ne change pas sa distance à L1, donc pas de nouvelle AEL résumée pour L1.
Pour R2, nouvelle AEL résumée avec distance 11. R3 reçoit cette AEL et calcule le minimum
de 6+10 (via R5) et 11+1 via R2, donc sa distance à L1 qui était 8 passe à 12 (via R2). R4 et R6
reçoivent aussi cette nouvelle AEL résumée. Pour R6 cela ne change pas sa distance à L1 (16),
donc il ne renvoie pas de nouveau résumé pour L1. Pour R4, sa distance à L1 augmente à 13,
donc il envoie un nouveau résumé. R7 reçoit donc le nouveau résumé de R4, et change sa
distance pour L1 (le prochain saut est toujours R4), et la table de routage :
Routeur
R1
R2
R3
R4
Next hop
L1
R1
R2
R3
Coût
local
11
12
13
Routeur
R5
R6
R7
Next hop
R1
R5
R4
Coût
6
16
14
Dans ospf, une zone peut être déclarée « totally stub » (TS). Dans ce cas les routeurs de
bordure de cette zone n’envoient dans cette zone qu’une AEL résumée pour le réseau
0.0.0.0/0 (route par défaut) au lieu d’envoyer un résumé pour chaque destination externe à la
zone.
7) Quels sont les avantages de ce mécanisme ?
Il y a une seule AEL (par routeur frontière) pour toutes les destinations externes à la zone,
donc moins d’AEL à stocker, calcul plus simple, et moins de changements (les
changements à l’extérieur de la zone sont invisibles).
8) Quels en sont les inconvénients ? Donnez des exemples si la zone 1 est « totally stub ».
Depuis un routeur interne à la zone, la route vers toutes les destinations externes est la
même, elle n’est donc pas forcément optimale s’il y a plusieurs routeurs de bordure, donc
potentiellement plusieurs routes possibles. Si la zone 1 est TS, R1 prendra par exemple la
route par défaut fournie par R5 (qui est plus proche que R1). Donc dans le cas de la
coupure de R2 –R5, pour aller vers le réseau R2-R3, le prochain saut sera R5 alors que le
plus court chemin passe par R1.