• Aucun résultat trouvé

Phase de connexion des éléments

d’administration système et réseau

5.4 Principes et implantation de l’algorithme de découverte de la topologiedécouverte de la topologie

5.4.3 Phase de connexion des éléments

Ce n’est pas tout de produire la liste des éléments découverts sur le réseau, on veut aussi détecter de quelle manière ils sont reliés entre eux, pour connaître com-ment passe le trafic réseau entre eux. Les principes, et quelques détails techniques lorsque nécessaire, sont donnés dans cette section.

Étant donnée une adresse Ethernet, c’est-à-dire correspondant à un élément ayant aussi une adresse IP, on cherche : si cette adresse apparaît dans une entrée d’une table ARP d’un autre élément détecté, on en déduit le numéro de l’interface par laquelle l’adresse Ethernet a été apprise (l’interface d’entrée) ; s’il s’agit de rechercher cette adresse dans les informations collectées dans l’agent SNMP d’un commutateur, alors on utilisera aussi la matrice de commutation pour obtenir le numéro de l’interface correspondante. Voici ci-dessous une explication plus détaillée de l’usage que nous faisons de la matrice de commutation.

La matrice de commutation La matrice de commutation d’un commuta-teur (forwarding database) permet à un tel équipement actif de rediriger le trafic entrant vers la bonne interface de sortie. Cette matrice de commutation donne les associations entre les adresses Ethernet des éléments du réseau local et les interfaces du commutateur. Par exemple le numéro d’interface 38 sur l’exemple présenté par la table 5.2, correspond à l’adresse Ethernet 00 :04 :76 :97 :86 :46. C’est-à-dire que si un paquet est pour cette adresse Ethernet, il doit être retrans-mis par le numéro d’interface 38 de notre exemple.

Après de telles déductions, en considérant tous les éléments découverts, on obtient une liste exhaustive qui correspond en fait à l’énumération de tous les chemins de longueur supérieure ou égale à 1 par lesquels du trafic a transité. Par exemple, supposons le petit réseau sur la figure 5.15 par le biais duquel le PC imprime.

2avec l’adresse de diffusion du réseau (label NetworkBroadcastAddress), le nom de la com-munauté SNMP définit par défaut (label SnmpReadDefaultCommunity) et l’oid correspondant à la variable system.sysDescr

Forwarding Database d’un commutateur

Index de hashage dot1dTpFdbAddress dot1dTpFdbPort Adresse Ethernet Le port de sortie 0.4.118.151.134.70 00 :04 :76 :97 :86 :46 38

0.4.118.163.61.144 00 :10 :7B :3A :20 :B5 22 1.128.194.0.0.0 01 :80 :C2 :00 :00 :00 0 1.128.194.0.0.1 01 :80 :C2 :00 :00 :01 0

Tab. 5.2 – Extrait de la MIB BRIDGE dot1dTpFdb

Materiel Actif

+ Agent SNMP Materiel Actif+ Agent SNMP

PC

B A

Imprimante + Agent SNMP

+ Agent SNMP

Fig. 5.15 – Schéma d’un réseau quelconque

L’étape des déductions fournit la liste de la table 5.3. On voit cependant sur cet exemple qu’il n’existe pas de lien direct entre le PC et l’imprimante (pourtant la liste obtenue laisse possible une telle éventualité).

Source → Destination

B → PC PC → B A→B Imprimante→A

B→A PC→A A→PC Imprimante→B

B→Imprimante PC→Imprimante A→Imprimante Imprimante→PC

Tab. 5.3 – Liste résultante de l’énumération des chemins

5.4.3.1 Détermination de la topologie

Il s’agit donc d’arriver à éliminer des éléments de cette liste de sorte à ne conserver que ceux qui correspondent à des connexions directes.

Repérer les liens qui ne peuvent exister par nature : les principes ci-dessous sont utilisés :

– étant donné 2 éléments autre que des commutateurs, routeurs ou concen-trateurs, qui semblent être directement connectés : si on ne détecte aucun élément de type commutateur, routeur ou concentrateur entre eux, alors on peut en conclure qu’ils ne sont pas directement connectés.

– étant donné 2 éléments ne possédant chacun qu’une seule interface réseau (à l’exception d’un routeur), alors il n’est pas possible qu’il existe une connexion physique directe entre eux.

B→PC PC→B A→B Imprimante→A

B→A PC→A A→PC Imprimante→B

B→Imprimante A→Imprimante

Tab. 5.4 – Liste résultante de l’énumération des chemins sans connexion impos-sible

Reprenons l’exemple précédant : étant donnée la liste de la table 5.3, on obtient ainsi la liste expurgée des connexions directes impossibles présentée par la table 5.4.

Repérer les liens de connexions indirectes : On essaye de repérer, par transitivité, des chemins de longueur supérieure à 1 parmi les éléments restant dans la liste. Pour cela, l’idée est de détecter la présence d’au moins un élément de type commutateur (ou concentrateur intelligent). Le principe est le suivant :

– étant donné une paire Source-Destination (plus précisément Destination + numéro de l’interface d’entrée) : intuitivement, un élément intermédiaire est supposé exister car il existe en plus du chemin Source-Destination, il existe au moins un autre chemin qui aboutit à la destination sur la même interface (par exemple PC→B, PC→A et B→A).

Étant donné la liste de la table 5.4, on obtient ainsi la liste expurgée des connexions indirectes, présentée par la table 5.5.

B→PC PC→B A→B Imprimante→A

B→A

A→Imprimante

Tab. 5.5 – Liste résultante de l’énumération des chemins sans connexion impos-sible et indirecte

5.4.3.2 Orientation de la topologie

La topologie (sommets, liens bidirectionnels reliant ces sommets) est donc obtenue. On peut se la représenter comme un graphe. Néanmoins, une telle

to-pologie n’a un sens pour un administrateur que si elle est orientée selon le trafic (montré comme étant un arbre), c’est-à-dire que les nœuds du graphe obtenu sont des équipements actifs. Soit en fonction du trafic à destination de l’extérieur du réseau local (dans ce cas là, la racine de la topologie sera un routeur) ; soit en fonction du commutateur désigné comme le Designated Root conformément à l’al-gorithme du Spanning Tree. De ce fait, l’orientation de la topologie doit mener au fait que pour toute paire d’éléments (e1,e2) on a soit (e1→e2) ou sinon (e2→e1). Nous devons donc repérer les liens qui ne participent pas au trafic ascendant (des feuilles vers la racine). On ne sait pas déterminer à la seule observation des tables ARP, le sens du trafic (ascendant ou descendant). On est obligé de déduire le sens en fonction de la nature des éléments et donc des services qu’ils rendent au sein du réseau.

Détermination des feuilles : Typiquement, si un élément n’a qu’une seule interface physique, il est forcément une feuille et donc, on supprimera tout lien direct pour lequel cet élément serait indiqué comme étant la destination. Ou bien si un élément E n’a pas d’agent SNMP malgré que l’on puisse avoir détecté un lien de cet élément vers un autre élément, ou inversement de cet autre élément vers E, on décide de ne conserver que le lien de E vers cet autre élément en admettant que c’est parce qu’il participe au trafic ascendant. En l’absence d’informations SNMP plus complètes, on ne peut pas faire de déduction plus précise.

Détermination des éléments nœuds : Essentiellement, il s’agit de déter-miner le sens dans lequel les éléments qui composent le cœur du réseau (com-mutateurs, concentrateurs intelligents, routeurs) sont interconnectés. Vu que la gestion du trafic entre commutateurs est déjà forcément orientée suite à l’appli-cation de l’algorithme du Spanning Tree, il suffit de consulter les informations qui en ont résulté. Ainsi on obtient assez simplement (plus de détail sont donnés dans le paragraphe "Description de l’algorithme du Spanning Tree" ci-dessous) la portion de topologie concernée.

Étant donné la liste de la table 5.5, on obtient ainsi la liste présentée par la table 5.6 permettant de construire un arbre représentant la topologie du ré-seau de racine A, en supposant que l’algorithme du Spanning Tree ait désigné le commutateur A comme DesignatedRoot.

B→A PC→B Imprimante→A

Tab. 5.6 – Liste résultante pour la construction de la topologie

A priori, la topologie est exacte et précise. On peut, par exemple, la visualiser graphiquement ou s’en servir en vue de construire des itinéraires (cf le chapitre

suivant). Notre algorithme appliqué sur le réseau présenté par la figure 5.15 a pour topologie résultante le schéma proposé par la figure 5.16.

PC B A Imprimante Workgroup Switch Catalyst Workgroup Switch Catalyst CiscoSystems CiscoSystems

Fig. 5.16 – Topologie obtenue par l’algorithme

Néanmoins pour améliorer la représentation visuelle donnée à l’administra-teur, on sait rajouter des éléments qui ne peuvent pas être détectés parce qu’ils n’ont pas d’adresse IP, bien qu’ils participent effectivement à la réémission de signaux réseau (tels que les concentrateurs). Un concentrateur qui ne dispose-rait pas agent SNMP, est détectable de manière implicite lors de la phase de connexion. En effet, si sur une interface d’un commutateur, on a plusieurs adresses Ethernet apprises, c’est qu’il y a un concentrateur physiquement relié à cette in-terface, et sur lequel sont connectés les éléments correspondant à ces adresses Ethernet.

Bien sûr, si un concentrateur disposait d’un agent SNMP, il aurait été décou-vert lors de la phase de détection, et son interconnexion avec d’autres éléments aurait donc pu être explicitement gérée par l’algorithme.

Description de l’algorithme du Spanning Tree : Le Spanning Tree Protocol (STP) est un protocole de gestion de niveau 2, qui fournit des chemins redondants dans un réseau local tout en évitant les boucles de routage. Le pro-tocole STP utilise un algorithme réparti qui sélectionne un pont (commutateur) d’un réseau, dont la connectique physique engendre des liens de secours (soit en paire torsadée, soit en fibre optique), comme la racine d’un arbre associé à la topologie courante. Comme dans les réseaux Ethernet un seul chemin actif peut exister entre deux stations3, l’installation de liens de secours permet de créer plu-sieurs chemins actifs entre des stations, ce qui cause inévitablement des boucles dans le réseau.

Lorsque les boucles surviennent, certains commutateurs reconnaissent une même station sur plusieurs ports. Cette situation entraîne des erreurs au ni-veau de l’algorithme d’expédition et engendre la duplication de trames qui seront

3Les opérations du Spanning Tree sont transparentes pour les stations d’extrémités (les feuilles de l’arbre de diffusion, c’est-à-dire PCs, imprimantes, etc..).

expédiées. L’algorithme du Spanning Tree fournit un arbre de circulation de l’in-formation en bloquant, dans son arbre de diffusion, un des chemins de données qui engendre la boucle.

Nous utilisons cet arbre pour la construction de notre topologie.

5.5 Mise en œuvre du service de découverte de