Réseau
Notions Théoriques liées au réseau.
- Réseau - Adressage IPV4
- Réseau - L'agrégation de liens (LAGG)
- Réseau - Modèle OSI
- Réseau - Protocole DHCP
- Réseau - Protocole DNS
- Réseau - Protocole RIP
- Réseau - Protocole STP/RSTP
- Réseau - sockets
- Réseau - Topologies
Réseau - Adressage IPV4
|
Difficulté : Débutant Notions : Réseau, adressage Modèle OSI Couche 3. |
Voir la ressource sur le modèle OSI : Réseau - Modèle OSI
I.Introduction
Cette page a pour but d’introduire les notions d’adressage ip dans la norme IPV4.
1.1 Un besoin, une solution
Avec l’arrivée des réseaux, les ordinateurs se sont vu offrir la capacité de communiquer entre eux pour échanger des informations.
Cela a ouvert la voie au modèle client/serveur, puis plus tard a internet qui est l’assemblage des mot inter(entre eux) network (réseau) soit, littéralement, un ensemble de réseaux interconnectés.
Mais pour que cela fonctionne, il faut déjà pouvoir savoir qui est qui. Pour ensuite savoir qui veut parler à qui.
Il faut donc un système permettant “d’adresser” la communication. C’est là qu’intervient le système d’adressage IP.
1.2 Analogie avec le réel
Pour faire une analogie simple, il faut voir cela comme des villes. Avec leurs rues, immeubles et numéros.
Pour envoyer un colis (un paquet) à Mr Dupuis, il faut lui envoyer cela dans la ville de Lyon, Rue Descola au numéro 108.
Pour un ordinateur, c’est la même chose. Pour envoyer un paquet (réseau cette fois), il faut avoir soi-même une adresse et connaître celle de son interlocuteur.
En complément de cela, comme les ordinateurs sont dans des réseaux interconnectés, il faut savoir dans quel réseau son interlocuteur se trouve. Pour cela deux notions sont importantes :
-
L'adresse de réseau
-
L’adresse hôte
II. Fonctionnement
Défini dans la 4
2.1 Structure
Les adresses IPV4 sont construites en 4 blocs. Chaque bloc étant un octet (8bits). Ce qui donne un total de 32 bits.
Ces blocs sont séparés par un point. Cela donne quelque chose comme :
192.168.1.27
2.2 Le binaire
Question 1 : d’où viennent ces chiffres ?
c’est en réalité assez simple. Voici un octet :
Composé de 8 bits, cet octet est vide. Sa valeur totale est donc 0.
Le binaire est un système de comptage en base 2 (nous comptons en base 10).
Il n’y a donc pour chaque bit que deux états possibles : 0 ou 1.
Pour l’ordinateur, un bloc d’adresse ressemble donc à ceci :
Question 2 : Comment convertir ce nombre binaire en nombre compréhensible par un humain ?
Avec une table de conversion. Chaque bit d’un octet a une valeur décimale. Voici la table de conversion :
Pour calculer combien cela fait en décimal, il faut ajouter les chiffre correspondant à chaque 1.
Dans cet exemple : 128+64+8+2+1 = 203.
Ainsi voici l’adresse complète ci-dessus :
Une adresse est donc ‘codée’ sur 32 bits.
2.3 Le masque de sous-réseau
Il est maintenant possible de comprendre l’adresse d’un machine, mais il manque un point essentiel :
Question 1 : Comment peut-on savoir à quel réseau appartient cette machine ?
En effet, comme dit en introduction, pour pouvoir communiquer avec une autre machine, son adresse ne suffit pas. Il faut aussi savoir dans quel réseau elle se trouve.
Pour éviter de gérer trop de données et d’adresses différentes, faciliter les communications et permettre une découpage sur mesure des réseaux, une solution a été trouvée :
L’adresse IP contiendra à la fois les informations du réseau ET de la machine.
C’est là que rentre en jeu une seconde donnée importante : le masque de sous-réseau
Question 2 : Comment tout cela fonctionne ?
Les choses se corsent un peu, mais sans devenir réellement plus complexes.
Si l’on reprends l’exemple ci-dessus : 192.168.1.27
Cette adresse contient en réalité les deux informations. Mais comment les différencier ?
A l’aide du masque de sous-réseau.
Celui-ci est sous la forme 255.255.255.0
Il est construit de la même manière que l’adresse. 4 blocs de 8 bits pour un total de 32 bits.
Ce n’est pas une coïncidence si les deux données font 32 bits. En effet, si cela s’appelle un masque, c’est qu’il doit se superposer à l’adresse. Voici à quoi ressemble ce masque en binaire.
Normalement, quelque chose doit sauter aux yeux. Tous les 1 sont d’un côté et tous les 0 de l’autre.
Et voila comment la ‘magie’ opère. Pour savoir quelle partie est l’adresse réseau et quelle partie est l’adresse machine, il faut séparer les 1 (partie réseau) et les 0 (partie machine).
Pour plus de clarté dans l’affichage, la table de conversion ne sera plus affichée.
Reprenons les exemples ci-dessus et Appliquons le masque:
Ici, l’on peut donc voir sur l’adresse que : 192.168.1 est la partie réseau et .27 la partie machine.
En déplaçant le curseur du masque (appelée "longueur de préfixe"), on peut ajuster la taille des réseaux et ainsi le nombre de machines qu’ils peuvent accueillir. Par exemple, si l’on reprends l’adresse 192.168.1.27 mais que l’on applique cette fois un masque en 255.255.0.0 , On obtient :
Le ‘curseur’ peut bien sûr être positionné au milieu d’un bloc pour ajuster le nombre de machine au plus près du besoin.
Question 3 : A quoi ça sert d’avoir différente tailles de réseaux ?
A avoir des réseaux plus ou moins grands.
La première limitation de ce système, c’est que le fait de déplacer ce curseur signifie que l’on va jouer sur les quantités de réseaux disponibles et de machines par réseaux. Les adresses sont constituées de 32 bits. Ni plus, ni moins.
Moins l’on alloue de bits à la partie réseau, plus on en alloue à la partie machine et vice versa.
En pratique, cela signifie que l’on a :
- Soit, peu de gros réseaux avec beaucoup de machines par réseau.
- Soit, beaucoup de petits réseaux, mais avec un nombre limité de machines par réseau.
Question 4 : Et pourquoi avoir tous ces différents réseaux ?
De base, les ordinateurs ne peuvent communiquer qu’entre membres d’un même réseau.
Donc il est important de pouvoir adapter la taille de celui-ci au nombre de machines que l’on veut mettre dedans.
Cela permet de segmenter les réseaux pour les spécialiser, mais aussi les sécuriser en séparant des réseaux plus ou moins exposés ou avec des usages différents.
Les réseaux pourront ensuite êtres interconnectés entre eux en utilisant des 'passerelles'.
III. Applications
3.1 Les adresses réservées
En se basant sur tout ce qui a été expliqué avant, l’on peut comprendre que pour un octet, la valeur minimale est donc 0 et la valeur maximale est la somme des valeurs de tout ses bits, soit 255.
Cependant, deux choses rentrent également en ligne de comptes :
-
De la même façon qu’il faut pouvoir définir une ville par son nom, il faut pouvoir définir un réseau par une adresse, qui sera son identifiant (son code postal en quelque sorte).
-
Il a donc été défini que lorsque la partie machine de l’adresse est égale à 0 (c’est a dire que tous ces bits sont a Zéro), cette adresse est réservée comme identifiant du réseau
-
*ici, si l’on met tous les bits de la partie machine a 0, l’adresse du réseau est donc 192.168.1.0
-
En réseau, il est non seulement possible d’envoyer un paquet à une machine, mais également d’envoyer un paquet à toutes les machines d’un réseau en même temps. On appelle cela un Broadcast.
-
Et pour cela, utiliser une adresse spéciale où tous les bits de la partie machine sont égaux à 1.
-
*ici, si l’on met tous les bits de la partie machine a 1, l’adresse de broadcast est 192.168.1.255
Lorsque l’on calcule donc la capacité d’un réseau en nombre d’adresses machine, il faut retirer ces deux adresses du nombre d’adresses disponibles. Qui sont donc la première et la dernière adresse de la plage.
Dans l’exemple du réseau pris dans ce chapitre, voici donc ses données :
-
Adresse réseau : 192.168.1.0
-
Masque réseau : 255.255.255.0
-
Adresse de broadcast : 192.168.1.255
-
Nombre d’adresses machines disponibles : 254
Ainsi les machines pourront avoir les adresses suivantes :
-
192.168.1.1
-
192.168.1.2
-
192.168.1.3
-
… … …
-
192.168.1.254
3.2 Exemples courants
Voici une table des tailles de masques avec pour chacune le nombre de réseaux et de machines disponible.
|
nombre de bits de la partie réseau |
masque |
nombre d’adresse disponible |
|---|---|---|
|
24 |
255.255.255.0 |
254 |
|
16 |
255.255.0.0 |
65 534 |
|
27 |
255.255.255.224 |
30 |
|
28 |
255.255.255.240 |
14 |
3.3 Les passerelles
Étant donné que les machines ne peuvent communiquer qu’entre machines d’un même réseau, il faut utiliser des machines pour servir de passerelles entre les réseaux. Ces machines doivent évidement disposer d’une adresse dans chaque réseau auxquels elles seront connectées.
Il faut donc prévoir dans son calcul de réserver les adresses pour ces passerelles.
Ces machines seront appelées ‘routeurs’.
Cours sur le routage : todo
IV. Conventions
4.1 La notation CIDR
Par facilité, une notation alternative à la notation adresse + masque a été mise au point.
Il s’agit ici de noter l’adresse et y accoler le nombre de bits de cette adresse constituant la partie réseau.
Ainsi 192.168.1.0 et 255.255.255.255 deviennent 192.168.1.0/24
Et l’on peux aussi utiliser cette notation pour désigner une machine 192.168.1.27/24
Ainsi, l’on a en une fois à la fois l’adresse d’une machine et les informations permettant de savoir à quel réseau elle appartient.
4.2 Les classes d’adresses
Les adresses sont réparties en 4 classes définies par le nombre de bits alloués aux réseaux afin de regrouper ensemble les réseaux de même capacité.
Ainsi, les réseaux de classe A ont un premier octet compris entre 1 et 126*. soit un bit de poids fort égal à 0.
Les réseaux de classe B ont un premier octet compris entre 128 et 191. soit deux bits de poids fort égaux à 10.
Les réseaux de classe C ont un premier octet compris entre 192 et 223. Soit 3 bits de poids fort égaux à 110.
Les réseaux de classe D sont un cas particulier. Ils ont un premier octet compris entre 224 et 239. Soit 3 bits de poids fort égaux à 1. Il s’agit de réseaux et adresses réservées pour le multicast.
Cours sur le multicast : todo
Une dernière classe existe, avec un premier octet compris entre 240 et 255. Il s’agit de la classe E. Ces adresses sont réservées pour l’expérimentation et ne DOIVENT PAS être utilisées.
*le réseau de classe A 127 est réservé.
4.3 Les IP privées et publiques
Défini dans la rfc1918
En plus de ces classes, il faut différencier les plages d’adresses réservées à un usage public, par les opérateurs internets notamment et celles, privées, utilisable par les particuliers et les entreprises.
Actuellement les adresses privées utilisables sont les suivantes :
-
classe A : 10.0.0.0 à 10.255.255.255
-
classe B : 172.16.0.0 à 172.31.255.255
-
classe C : 192.168.0.0 à 192.255.255.255
Sachant que la plupart des réseaux domestiques sont en 192.168.1.0/24 ou 192.168.1.0/24 il est recommandé d’utiliser d’autres plages pour des réseaux de LAB ou d’entreprise.
Notamment ceux de classe B, qui ne sont pas utilisés en usage domestique ou en IoT.
4.4 Les ip particulières
Dans les plages existantes il y a un certains nombres d’adresses ou de réseaux qui sont réservés à des usages particuliers et qui ne sont par conséquent pas utilisables :
-
127.0.0.1 : adresse générique utilisée pour désigner la boucle locale (localhost)
-
0.0.0.0 : adresse utilisée pour indiquer une route par défaut (tout le monde).
-
255.255.255.255 : broadcast général.
V. Conclusion
Pour résumer,
Au sein d’un LAB ou d’une entreprise. Il est possible de découper plusieurs sous-réseaux. Dans la limite des IP privées des classes A,B et C. Avec une préconisation pour l’usage d’adresses de classe B.
Aller plus loin :
-
cours sur le NAT/PAT : Réseau - Le NAT / PAT
-
cours sur les ports et les sockets : Réseau - Définition du socket
-
Adressage IPV6 : Réseau - Adressage IPv6
Réseau - L'agrégation de liens (LAGG)
|
Difficulté : Débutant Notions : Réseau, interfaces, agrégation de liens. |
I.Différents scenarii
Cette fiche a pour but d’expliquer le fonctionnement des agrégations de liens (Link aggregation ou LAGG)
2.1 Scenario 1 : Agrégation de lien (actif/actif)
Le but de ce scénario est d’agréger la bande passante afin de cumuler les bandes passantes de toutes les cartes.
Dans cette configuration, une interface virtuelle est créée.
Elle va utiliser les deux adaptateurs physique afin de cumuler leurs débit.
Les cartes fonctionnent ensemble et si l’une des deux est coupée. L’ensemble n’est plus actif et le lien ne fonctionne plus.
2.2 Scenario 2 : Failover (actif/passif)
Le but de ce scénario est d’avoir un lien de secours pour anticiper une éventuelle panne de matériel.
Dans cette configuration, une interface virtuelle est créée.
Elle va utiliser le premier adaptateur en lien nominal et le second en lien de secours.
En cas de rupture du lien nominal, la carte de secours sera utilisée.
Cela apporte une sécurité mais n’augmente pas le débit.
2.3 Scenario 3 : LACP (actif/actif + Redondance)
Ce scénario nécessite un switch manageable prenant en charge le LACP.
Le LACP est la fusion des deux scenarii ci-dessus.
Dans cette configuration, une interface virtuelle est créée.
Les deux adaptateurs sont activement utilisés, en cas de coupure d’un lien, le système fonctionne en mode dégradé
Réseau - Modèle OSI
|
Difficulté : Débutant Notions : réseau, modèle OSI |
I. Introduction
Le modèle OSI (Open Systems Interconnection) est un modèle conceptuel en couche développé par l'International Standardisation Organisation (ISO).
Il permet de conceptualiser les communications réseaux entre les ordinateurs en divisant le processus de communication en 7 couches distinctes.
Chaque couche à un rôle spécifique et interagis avec les couches directement situées en dessous et au dessus d'elle.
Cette approche, en plus de visualiser le fonctionnement des communication réseau en permet un diagnostic efficace.
Voici la représentation des différentes couches.
Lors des communications entre machines, celles-ci seront encapsulées les unes dans les autres donnant alors ce que l'on appellera une 'trame' réseau.
II. Les couches du modèle OSI
2.1 Couche 1 : Physique
Il s'agit de la couche matérielle. Celle permettant de porter le signal réseau.
Elle est constituée des câbles réseaux, fibres optiques, ondes WIFI et des contacts électroniques des cartes réseaux.
Il s'agit de ce que l'on appelle le 'medium de propagation du signal'
| câble RJ45 | connecteurs fibre |
antenne wifi |
Outils de diagnostics
- vérification du câble ou fibre
- état des voyants sur l'interface
- état de la carte : 'link up / link down'
2.2 Couche 2 : Liaison
Il s'agit de la couche permettant aux machines de communiquer entre elles au plus bas niveau et de se transmettre le signal d'un nœud à un autre. En d'autre terme, d'établir une 'liaison' entre elles.
On y retrouve notamment les adresses MAC (Media Access Control).
Une adresse MAC est un identifiant physique unique permettant d'identifier l'interface réseau au plus bas niveau.
Les plages d'adresses MAC sont distribuées aux constructeurs de matériel réseau et chaque interface matérielle est dotée de sa propre adresse MAC unique au monde.
Les protocoles utilisés à ce niveau sont :
- Ethernet
- PPP
- ...
C'est à ce niveau que va s'opérer le contrôle d'erreur (CRC) et la commutation par les switches. La gestion des VLAN, etc...
2.3 Couche 3 : Réseau
La couche réseau est la plus connue et manipulée directement par les administrateurs réseaux et systèmes.
Il s'agit de la couche qui permet de faire abstraction de la couche matérielle afin de construire des topologies réseau logiques.
Celles-ci pourront de ce fait être cartographiées et des 'routes' permettrons d'interconnecter ces topologies entres elles.
C'est à ce niveau là qu'interviens le protocole IP et que l'on retrouve nos adresses logiques uniques sur le réseau.
A ce niveau, l'on parle de trames ip. Ces trames ont une taille limite de 65536 Octets. Mais celle-ci ne sera que rarement atteinte, car elle va être limitée par la taille maximale que les réseaux qui la portent peuvent supporter.
Cela se négocie grâce au MTU (Maximum Transfer Unit). Passé cette taille, les trames seront fragmentées.
Cette fragmentation est gérée par le routeur.
Attention : Rien ne garantis à ce stade que les paquets arriveront dans le bon ordre. Cela sera géré sur la couche suivante.
Voici les en-têtes présents sur cette couche :
| en-tête | Description |
| TTL (Time To Live) |
ce champs permet de définir une expiration sur les paquets afin que ceux-ci puissent "s'autodétruire" si leur durée de vie est expirée. Empêchant ainsi une saturation du réseau. |
| SRC (Source address) |
Adresse IP de la source de la transmission. |
| DST (Destination address) |
Adresse IP de la destination de la transmission. |
| Checksum |
Somme de contrôle IP. |
C'est sur cette couche que sont géré entre autre le routage, le diagnostic et les tests de connectivité (avec ICMP).
Outils de diagnostics
- ping
- general failure : problème sur la pile TCP ou pas de signal
- vérifier câble et configuration IP
- host unreachable : le ping n'est pas parvenu à l'hôte de destination
- vérifier l'état de la passerelle, les configuration IP et le routage
- Request timed out : l'hôte de destination a bien reçu la requête mais n'a pas renvoyé de réponse.
- pare-feu ? route retour ?
- TTL expired in transit : le paquet a dépassé le nombre de saut maximum (sans doute une boucle de routage).
- Anwer from <host> : OK
- general failure : problème sur la pile TCP ou pas de signal
- tracert / traceroute : permet de voir les sauts pour vérifier la route empruntée
2.4 Couche 4 : Transport
La couche 4 sert à faire passer des communication à travers le réseau IP.
On y retrouve principalement 2 protocoles de transfert :
- TCP (Transmission Control Protocol) : un protocole permettant un transfert de donnée contrôlé avec une gestion des erreurs.
- UDP (User Datagram Protocol) : un protocole sans contrôle d'erreur, mais permettant des interactions plus rapide.
La différence majeure entre les deux tient au fait que TCP gère la transmission, là ou UDP se contente d'envoyer des paquets sans aucun contrôle de la transmission.
2.4.1 TCP
Un paquet TCP est appelé un Segment.
TCP prends en charge la gestion des erreurs. A chaque trame transmise, des informations de contrôle y sont adjointes.
Ces informations permettent ainsi au récepteur de pouvoir s'assurer du numéro de paquet dans la transmission, du fait que le paquet soit complet et reçu sans erreur, de gérer les erreur éventuelles en demandant un nouvel envoi de paquet et enfin de savoir quand la transmission est complétée.
Cela le rends donc idéal pour tous les protocoles nécessitant que la donnée soit reçue de façon certaine. Par exemple pour le FTP, SFTP, SMB, HTTP, etc...
Un échange TCP se déroule de la façon suivante :
| Etape | Message | Description |
| 1 | SYN |
Un message SYN est envoyé par la machine 1, dans le cadre d'un processus appelé 'handshake'. Ce paquet est issu afin d'initier la connexion et synchroniser les deux machines. |
| 2 | SYN / ACK | Ce paquet est envoyé par la machine 2 après réception du paquet de la machine 1 permettant de valider la réception de la demande d'échange. |
| 3 | ACK | Ce message sera ensuite envoyé après chaque transmission, afin d'en valider la réception. |
| 4 | DATA | Une fois la connexion établie, les données sont transmises à travers des messages data, qui seront 'acknowledged'. |
| 5 | FIN | A la fin de la transmission, ce paquet est utilisé pour clôre proprement la session. |
| # | RST | Ce paquet est utilisé en lieu et place du paquet FIN si il y a eu un problème durant la transmission. Celui-ci terminera alors de façon abrupte la communication. |
Ainsi, les données importantes présentes dans les trames TCP Sont :
| en-tête | Description |
| SRC (Source address) |
Adresse IP de la source de la transmission. |
| DST (Destination address) |
Adresse IP de la destination de la transmission. |
| SRC port | Le port source de la transmission. |
| DST port |
Le port de destination de la transmission. |
| Sequence Number | Lors de l'établissement de la connexion, le premier paquet reçois un numéro initial aléatoire. il constituera le premier numéro de la séquence à transmettre. |
| ACK Number | Après l'envoi d'un bloc de donnée ayant reçu un Sequence Number, le nombre du prochain bloc reçois le nombre de séquence + 1 et ainsi de suite. |
| Checksum |
Somme de contrôle, pour vérifier l'intégrité du paquet. |
| Data | Là où se situe la donnée envoyée dans la trame. |
| Flag | Ce champ détermine comment la trame doit être traitée par les deux machines durant le processus de Handshake. ( SYN / ACK / FIN / RST ) |
Cela permet de s'assurer que la transmission se déroule bien, de gérer les erreurs.
2.4.1 UDP
Un paquet UDP est appelé un Datagrame.
Contrairement à TCP, le protocole UDP ne prends pas en charge de contrôle de transmission ou d'erreur. Ce qui rends la perte de paquet irrémédiable.
Mais cette absence de contrôle en fait également son point fort. En effet, du fait de sa simplicité, il est très utile pour gérer des flux continus.
Cela rends UDP parfait pour des transmissions continues et massive, comme par exemple des flux vidéos, VoIP ou autres...
Outils de diagnostics
| Outils | DIgnostics |
| netstat | Ports, sessions, TCP states |
| ss | Sockets, queues, states |
| tcpdump | Flags, handshake, resets |
| Wireshark | analyse complète |
| lsof | Process ↔ port mapping |
| telnet / nc | Disponibilité du port |
| curl / wget | TCP errors, resets |
| (PowerShell) test-netconnection | Windows TCP diagnostics |
| iperf | Throughput, retransmissions |
| ssldump | TLS handshake issues |
2.5 Couche 5 : Session
La couche 5 permet le contrôle des 'sessions' de communications entre les applications.
C'est ici que les échanges vont être commencé, suivis, terminés entre les interlocuteurs.
C'est également ici que les erreurs de communications, les mises en attentes de paquets vont être gérées.
2.6 Couche 6 : Présentation
La couche 6 permet la mise en forme préalable des données de la couche suivante, soit sa 'présentation'.
C'est sur cette couche que ce fait par exemple le chiffrement du flux de données avant l'envoi de la trame (SSL / TLS).
C'est donc aussi sur cette couche que s'opèrera le déchiffrement.
Si des algorithmes de compression de flux sont mis en œuvre, ils se reposeront aussi sur cette couche pour la compression et décompression des flux.
2.7 Couche 7 : Application
C'est enfin sur cette couche que passe la communication des différents services et application.
C'est là que se retrouvent l'ensemble des protocoles liés aux applications comme le DNS, DHCP, NTP, HTTP, etc...
Outils de diagnostics
Côté client, tester la connexion TCP avec telnet, netcat ou autre.
Telnet
III. Conclusion
Lors d'un diagnostic sur un problème réseau, il est important d'avoir ce modèle en tête et de réfléchir au problème couche par couche en partant de la plus basse.
Cela permet de gagner du temps sur la résolution d'un problème.
A moins bien sûr que la couche qui pose problème soit clairement identifiée au départ par le retour obtenu ou le message d'erreur.
Basiquement, pour une résolution de problème sur la connectivité des VM, les questions à se poser sont :
- La carte réseau existe et est connectée
- Je suis situé sur le bon Vswitch (VMBR)
- Je suis dans la bonne plage IP des deux côté
- Les pare-feu / routeurs sont bien configurés
Si le signal est OK et que le ping passe,
- Le service est démarré sur le serveur,
- Le port est ouvert
- la configuration de mon service est correcte
- le contenu est accessible.
Réseau - Protocole DHCP
|
Difficulté : Novice Résumé :
|
I. Introduction
Le protocole DHCP (Dynamic Host Configuration Protocol) est un protocole permettant la configuration réseau automatique d'un ou plusieurs hôtes par un serveur.
Cela permet de gérer un grand nombre d'hôtes sans nécessiter une intervention des administrateurs.
Les échanges entre le client et le serveur se font entre la couche 5 et 7 du modèle OSI.
II. Diagramme
1 - DHCP Discover
L'hôte configuré en DHCP envoie un broadcast général. Il place son adresse MAC dans le paquet.
Il utilise l'ip 0.0.0.0 en source et envoie son broadcast à 255.255.255.255 en destination.
Cela lui permet d'adresser toutes les machines présentes sur le réseau.
Si un serveur DHCP se trouve à portée, il captera le broadcast et répondra alors.
2 - DHCP Offer
Le serveur DHCP reçoit la requête et, comme le PC de destination n'a pas d'adresse IP, il va alors répondre également en broadcast.
Info : Certains clients acceptent une réponse en unicast. Le DHCP pourra alors être configuré pour leur répondre en unicast.
Il va envoyer dans le paquet la configuration réseau (ip, masque, passerelle, dns, etc...) ainsi qu'une durée de bail et l'adresse MAC du pc demandeur.
Si plusieurs serveurs DHCP sont présents, selon leurs configuration, l'un d'entre eux ou tous répondront à la requête et le client fera son choix (généralement basé sur la réponse la plus rapide).
3 - DHCP Request / DHCP Decline
L'ensemble des hôtes présents sur le réseau reçoivent la réponse.
Comme le demandeur avais placé son adresse MAC dans le paquet, il comprends que la réponse lui est adressée. Les autres hôtes lisent l'adresse MAC, et comme ce n'est pas la leur, ignorent le message.
Si plusieurs serveurs DHCP ont répondus, le client fera alors son choix (généralement basé sur la réponse la plus rapide).
Ensuite, deux scénarii :
- Le client vérifie sa configuration, voit que la configuration proposée correspond à son besoin et ne rentre pas en conflit avec l'une de ses configuration déjà existantes. Il demandera alors au serveur si il peut utiliser cette configuration avec un message DHCP Request.
- Le client vérifie sa configuration et voit que la configuration proposée rentre en conflit avec l'une de ses configuration. Il refuse donc l'offre et renvoie un message DHCP Decline. Puis l'échange s'arrête là.
4 - DHCP Ack
Le serveur qui a reçu le message de requête va alors la prendre en compte et renvoyer au client un message en lui indiquant qu'il a bien Validé cette demande.
Suite à cet échange
Une fois cet échange terminé le serveur va alors enregistrer dans sa base l'adresse MAC du PC ayant fait la demande ainsi que la configuration qui lui a été attribuée ainsi que la durée du bail.
Un compteur se met alors en route. A la fin de celui-ci, le bail étant terminé, le serveur va libérer cette configuration et la remettre dans son pool de disponibilité. Elle pourra donc ensuite être réattribuée à un autre hôte qui fera une demande.
III. Configuration
Lors de la configuration d'un serveur DHCP, il va falloir un minimum d'informations :
- l'adresse IP de début de plage (la première qui sera proposée aux hôtes)
- l'adresse IP de fin de plage (la dernière qui sera proposée)
- toutes les adresses IP qui seront entre les deux constitueront la Plage DHCP ou le Pool d'adresses.
- le masque de sous-réseau
- l'adresse de la passerelle
Il est possible de fournir au client plus de configurations :
- Les serveurs de noms (DNS)
- Les serveurs de temps (NTP)
- Les serveurs TFTP (serveurs de démarrage réseau, pour faire booter un PC sur une image situé sur le réseau)
- etc...
IV. Autres principes
Réservation : Il est possible de réserver une configuration. Lorsqu'un hôte obtient une configuration, on pourra demander au serveur de lui réattribuer systématiquement la même.
Plage d'exclusion : Il est également possible de définir à l'intérieur des plages d'adresses des exclusions, afin de préciser que certaines adresses ne doivent pas être distribuées.
IV. Relais DHCP
Comme vu plus haut, le DHCP s'appuie essentiellement sur des broadcasts. Hors, le problème est que les broadcast ne passent pas les routeurs.
Si l'on veut distribuer des adresses sur un ou plusieurs réseaux se situant derrière des routeurs, il faudra donc utiliser un relai DHCP.
Le rôle de celui-ci sera de prendre le broadcast envoyé par le client et de le renvoyer sous forme d'unicast au serveur DHCP. Puis de récupérer la réponse de celui-ci et de la retransmettre en broadcast dans le réseau d'origine.
Ainsi :
V. Cas de plusieurs réseaux
Dans le cas où un serveur devrait servir plusieurs étendues réseaux, lors du passage du relais, celui-ci glisse dans le paquet (champ giaddr) son adresse IP.
En se basant sur cette adresse, le serveur DHCP choisit alors l'étendue adaptée et fait une proposition dans ce sens.
C'est ainsi que le tri se fait entre les demandes.
Info : A noter que si le relai DHCP peut être une machine dans le réseau, certains routeurs proposent nativement cette fonctionnalité.
Réseau - Protocole DNS
|
Difficulté : Novice Résumé :
|
I. Introduction
Le protocole DNS (Domain Name System) permet de traduire les noms de domaine lisibles par l’homme (comme www.example.com) en adresses IP compréhensibles par les machines (192.0.2.1). Il joue un rôle fondamental dans la navigation sur Internet et dans la résolution de noms au sein des réseaux locaux.
Les échanges DNS se situent entre les couches 5 à 7 du modèle OSI, bien qu’ils reposent sur des mécanismes de transport en UDP ou TCP selon le contexte.
II. Diagramme
1 - Vérification locale (cache)
Lorsqu'une résolution est nécessaire ; effectuée par l'utilisateur ou le système ; la machine va dans un premier temps consulter son cache local.
- Si l'enregistrement s'y trouve, il va utiliser celui-ci.
- Si l'enregistrement ne s'y trouve pas :
2 - Vérification locale (fichier)
Le client va vérifier si ses fichiers 'Hosts' contiennent l'enregistrement.
- Si oui, il sera lu et mis en cache puis l'utiliser.
- Si non :
3 - DNS Query
Le client va interroger le(s) serveur(s) déclarés dans sa configuration réseau.
Il existe 3 types de requêtes :
Source : geeksforgeeks
- Requête récursive : Si le resolver (client) ne trouve pas l'enregistrement il va interroger le(s) DNS paramétré(s) et attends une réponse complète.
- Le serveur va alors interroger ses forwarder et ainsi de suite jusqu'à ce qu'une réponse revienne au client.
- Requête Itérative : Si le resolver (client) ne trouve pas l'enregistrement, il va interroger le(s) DNS paramétré(s) et attend une réponse au moins partielle.
- Le serveur va alors chercher un autre serveur qui a une information plus complète et renvoyer son adresse au client, qui pourra alors lui adresser sa requête, ainsi de suite jusqu'à résolution complète.
- Requête non récursive : Si le resolver (client) ne trouve pas l'enregistrement il va interroger le(s) DNS paramétré(s) et demande de consulter le cache.
- Le serveur regarde dans son cache, soit il a l'information et la transmet au client, soit il n'a pas l'information et renvoie qu'il ne l'a pas. La recherche s'arrête là.
Dans tous les cas, si un serveur ne dispose pas de la réponse, il vérifiera si l'un de ses forwarder ou si les serveurs racine ont la réponse et soit fera la recherche pour le client (Récursive) soit lui donnera l'adresse d'un forwarder ou serveur racine (itérative).
4-5 - Vérification du cache
Tout comme le client effectue de son côté une vérification de son cache et de ses fichiers locaux aux étapes 1 et 2, les serveurs relais vont effectuer la même opération. Cela permettra une réponse plus rapide.
6 - Mise à jour du cache
Une fois la réponse obtenue, le cache local du resolver est mis à jour.
Ces enregistrements resterons mis en cache pour la durée du TTL.
III. Principes de bases
3.1 Le cache DNS
Chaque enregistrement DNS dispose d'un TTL (Time To Live). Lorsqu'un enregistrement est mis en cache, il périmera à l'expiration du TTL. Celui-ci sera alors supprimé du cache et rajouté à nouveau lors d'une prochaine requête.
Astuce : Tous les systèmes disposent de commandes pour vider manuellement ce cache.
Info : C'est cette mécanique qui est utilisée lors des attaques par empoisonnement de cache DNS (DNS poisoning).
3.2 La hiérarchie des serveurs DNS
L’architecture DNS se compose d’un système de résolution de nom hiérarchique et décentralisé pour les ordinateurs, les services ou toute autre ressource connectée à Internet ou à un réseau privé. Il stocke les différentes informations associées des noms de domaine attribués à chacune des ressources.
La hiérarchie DNS repose sur plusieurs niveaux qui peuvent intervenir lors d’une résolution DNS :
- Tout en haut : Les serveurs DNS racines
- Ceux qui gèrent les domaines de niveaux supérieurs.
- Puis en dessous les serveurs de domaine de premier niveau
- Les domaines nationaux par exemple .fr, .eu, etc... (ou encore d'autres comme .com, .net, etc...).
- Au niveau intermédiaire les serveurs DNS d'autorité
- Les serveurs faisant autorité pour les domaines complets comme mfrstegreve.fr ou labs404.com (souvent ceux du registar)
- Puis les DNS récursifs et itératives
- Ce sont les serveurs enregistrés dans les paramètres de la connexion (souvent ceux du FAI ou les DNS locaux).
Liste des serveurs racines
Actuellement, il existe 13 serveurs DNS racines dont une grande majorité se trouvent aux USA.
| Serveurs DNS racines | Adresse IPv4 | Adresse IPv6 | Opérateur |
|---|---|---|---|
| A | 198.41.0.4 | 2001:503:ba3e::2:30 | VeriSign |
| B | 192.228.79.201 | 2001:478:65::53 | USC-ISI |
| C | 192.33.4.12 | 2001:500:2::c | Cogent Communications |
| D | 199.7.91.13 | 2001:500:2d::d | University of Maryland |
| E | 192.203.230.10 | NASA | |
| F | 192.5.5.241 | 2001:500:2f::f | ISC |
| G | 192.112.36.4 | U.S. DoD NIC | |
| H | 128.63.2.53 | 2001:500:1::803f:235 | US Army Research Lab |
| I | 192.36.148.17 | 2001:7FE::53 | Autonomica |
| J | 192.58.128.30 | 2001:503:c27::2:30 | VeriSign |
| K | 193.0.14.129 | 2001:7fd::1 | RIPE NCC |
| L | 199.7.83.42 | 2001:500:3::42 | ICANN |
| M | 202.12.27.33 | 2001:dc3::35 | WIDE Project |
3.3 Les types de domaines
Il en existe 3 types :
- Les domaines Génériques : Des domaines sans rattachements géographiques mais mondialement reconnus et utilisés.
- .org, .com, .net, ...
- Les domaines Nationaux ou Coutry Code Domain : Domaines attachés à une origine géographique.
- .fr, .uk, .au, .ru, .us, ...
- Les domaines inverses : Utilisé pour les 'Reverse lookup'. Les recherches inversées. Notamment utilisés pour vérifier qu'une IP est bien dans le domaine recherché.
- .arpa
IV. Types d'enregistrements DNS
Les enregistrements DNS sont des parties importantes de la Système de nom de domaine (DNS). Il existe plus de 30 types d'enregistrements, chacun servant de saisie de base de données qui fournit des informations spécifiques sur un domaine, y compris son adresse IP, ses serveurs de messagerie et sa sécurité. Ces enregistrements sont stockés dans des fichiers DNS Zone et gérés par les serveurs DNS.
4.1 Terminologie DNS
Avant de voir les types de dossiers DNS spécifiques, il est utile de comprendre une terminologie DNS de base.
Voici quelques termes clés utiles dans la compréhension de DNS Records.
-
Enregistrement des ressources: L'élément de données de base dans le DNS. Chaque enregistrement spécifie des informations sur un domaine.
-
Nom: Le nom de domaine auquel l'enregistrement s'applique.
-
TTL (temps de vie): La durée pour laquelle le dossier est mis en cache par les DNS Resolvers.
-
Classe: Spécifie la famille du protocole. Dans (Internet) est le plus courant.
-
Taper: Le type d'enregistrement DNS (par exemple, a, aaaa, cname).
-
Donnés: Les données spécifiques de l'enregistrement, telles qu'une adresse IP.
-
Fichiers de zone: Fichiers contenant des mappages entre les noms de domaine et les adresses IP.
-
Nom du serveur: Un serveur qui gère les enregistrements DNS pour un domaine.
4.2 Types d'enregistrements DNS les plus courants
Chaque type d'enregistrement DNS a une fonction spécifique, ce qui aide à gérer les noms de domaine et à garantir un approvisionnement approprié du trafic Internet.
source : Wikipedia
4.3 Champs spécifiques
Certains protocoles se basent sur l'utilisation de champs spécifiques. La plupart du temps, il s'agit de champs TXT devant être formatés de manière très précise.
C'est le cas par exemple pour la vérification des serveurs de messageries qui peuvent utiliser les champs DMARK et SPF.
Ou la VoIP.
V. Principes avancés
5.1 Recherche inversée
Tout comme il est possible avec le DNS de savoir quelle adresse IP corresponds à quel nom d'hôte, il est également possible d'effectuer une recherche inversée pour avoir les noms attachés à une adresse IP.
Cela sert dans le cadre de vérification ou de diagnostic.
Cette recherche s'appuie sur une zone de recherche inversée contenant les champs en .arpa.
5.2 DNSsec
Le DNSSEC (Domain Name System SECurity extensions) est une extension du protocole DNS qui ajoute une couche de sécurité en garantissant l'authenticité des réponses DNS.
Chaque zone DNS est signée avec une clé privée.
La clé publique est placée dans l'un des champs de la zone et permet à un client qui ferai une requête de vérifier l'authenticité de la réponse.
Cela permet de se prémunir des attaques de type "DNS spoofing" ou de "cache poisoning".
Attention : Cela permet de garantir l'authenticité de la réponse mais ne chiffre pas les échanges. De plus tous les équipements ne seront pas forcement compatible avec ce protocole.
Les enregistrements spécifiques utilisés sont :
- RRSIG : contiens la signature cryptographique d'un enregistrement DNS.
- DNSKEY : contient la clé publique utilisée pour vérifier les signatures.
- DS : sert à déléguer la vérification entre zones.
5.3 DoH / DoT
Le DoH (Dns Over Https), vise à faire passer les requêtes DNS par le biais d'un canal chiffré par HTTPS. Rendant son interception et sa modification plus difficile.
Si aujourd'hui beaucoup de navigateurs l'intègre nativement, il est très peu présent sur les équipements réseaux.
Le DoT (Dns Over Tls) vise à faire passer les requêtes DNS par le biais d'un canal chiffré par TLS. Les avantages sont les mêmes qu'avec le DoH. Mais il utilise un port à part (853), permettant de le différencier du trafic HTTPS, mais également de faire un filtrage plus fin sur les pare-feu.
Réseau - Protocole RIP
|
Difficulté : Confirmé Notions : Protocoles réseaux, routage, routage dynamique. |
I. Introduction
Le protocole RIP pour Routing Information Protocol est un protocole permettant aux routeurs d'échanger automatiquement leurs tables de routage. Il fait partie des protocoles IGP (Interior Gateway Protocol) qui sont utilisés à l'intérieur d'un même réseau ou organisation.
C'est un protocole de couche 3.
Cela facilite la gestion du parc, permettant notamment de mettre à jour automatiquement les tables de routages en cas d'ajout ou suppression d'un réseau, rendant celui-ci facilement scalable et simple à administrer.
II. Principes de base
2.1 Fonctionnement
Le principe du RIP est asses simple :
Chaque routeur génère une table de routage composée de ses réseaux connus directement accessibles via ses interface. Il y ajoute les routes connues ainsi que leur distances en nombre de saut.
Puis, régulièrement (par défaut 30 secondes), il envoie cette table à ses partenaires de réplication. Dans la première version du protocole, cela se fait par broadcast. Puis cela a été changé pour du multicast dans les versions suivantes du protocole ( 224.0.0.9 pour RIPv2 en IPV4, puis dans le RIPng pour IPV6 : FF02::9)
Chaque routeur, met ainsi ses tables à jour et peut les propager aux autres. Les doublons sont éliminés et les routes avec un minimum de saut sont conservées afin d'optimiser la performance.
Si une route n'a pas eu d'update dans un délai de 180 secondes, elle est marquée comme invalide. Passé 240 secondes, elle est supprimée.
Ces délais permettent ainsi d'ajouter une purge des routes inutiles en plus des ajouts, permettant de conserver des tables de routages précises.
2.2 Mécanismes internes
Le RIP utilise plusieurs mécanismes en interne pour éviter des boucles dans la topologie.
- Split Horizon : un routeur n'anonce pas une route sur l'interface par laquelle il l'a apprise.
- Route Poisoning : Une route devenue invalide est supprimée.
- Hold-down Timer : Empêche une acceptation trop rapide d'une route potentiellement incorrecte
Voici une liste plus détaillées des timers clés :
| Timer | Valeur | Rôle |
| Update | 30 s | Envoi périodique des tables |
| Invalid | 180 s | Route considérée invalide |
| Hold-down | 180 s | Stabilisation |
| Flush | 240 s | Suppression de la route |
2.2 Limitations
Le RIP repose essentiellement sur le hop count. Ce compteur de saut est limité à 15 sauts.
Cela le rends inefficace pour de larges topologies et limite donc son usage à des réseaux de petite tailles ou de tailles moyennes.
De plus en terme de priorité de traitement, les requêtes RIP sont les moins prioritaires.
| Protocoler | Distance administrative |
| RIP | 120 |
| OSPF | 110 |
| EIGRP | 90 |
| statique | 1 |
| connectée | 0 |
III. Versions de RIP
Il existe 3 versions du protocole RIP :
| Feature | RIPv1 (1988) | RIPv2 (1993) | RIPng (1997) for IPv6 |
| Méthode de mise à jour | Broadcast (255.255.255.255) | Multicast (224.0.0.9) | Multicast (FF02::9) |
| Adressage | Classful (pas d'info de sous réseau) | Classless (inclus le masque) | Classless (IPv6) |
| Authentification | Pas de support | plain text, MD5 | plain text, MD5 |
| Version IP supportées | IPv4 | IPv4 | IPv6 |
| Protocole / port | UDP 520 | UDP 520 | UDP 521 |
IV. Considérations de sécurité
Attention : Le protocole RIP est considéré aujourd'hui comme obsolète. Il est en effet remplacé par d'autres protocoles plus modernes et sécurisés.
Le principal risque du protocole RIP reste l'empoisonnement des routes par un tiers ou un équipement malveillant.
Il est donc primordial de respecter à minima les deux conditions suivante lors de la mise en place :
- Utiliser à minima la version 2 du protocole qui permet une authentification
- Utiliser une authentification MD5 et pas une authentification plainText.
Il est à noter que le RIP n'utilise pas directement MD5 pour hasher un mot de passe, mais comme fonction de hashage dans un mécanisme d'authentification HMAC-Like.
Aussi, il ne s'agit pas de hasher un mot de passe, mais le paquet RIP complet. Lors de l'échange, les routeurs disposant tous de la même clé, ils vont recalculer localement le hash de la trame reçue afin de certifier qu'elle est bien originaire d'un routeur connu.
V. Conclusion
Même si son usage est déprécié, Il reste intéressant à voir à des fins pédagogiques car il permet d'introduire les principes de routage dynamique avec un protocole simple dans son fonctionnement.
De plus, sur les équipements plus anciens, il s'agit souvent de la seule alternative disponible.
Réseau - Protocole STP/RSTP
|
Difficulté : Confirmé
Notions : Réseau, protocoles, résilience réseau. |
I. Introduction
Dans le cadre de la résilience d'une topologie réseau, il est essentiel de redonder des liens afin de palier à une rupture éventuelle.
Plusieurs topologies réseaux spécifiques existent. Dont les deux suivantes :
Cependant, ces boucles créent également deux problèmes majeurs :
- les tempêtes de broadcasts, dues au boucles réseaux présentes dans la topologie.
- Des instabilités dans les tables MAC.
- Des trames en doublons.
Ce qui peut mener à des dysfonctionnement applicatifs ( rupture de session ), des pertes de performances ( collision de paquets, réadressage MAC ) voire à un effondrement du réseau.
Pour éviter ces problèmes et rendre ce type de topologies possibles, le protocole STP ( Spanning Tree Protocol ) a été créé.
Cependant, dû à ses problèmes de lenteur de cicatrisation réseau ( 30-50 secondes de délai de convergence ), une version plus moderne en a été créée : le protocole RSTP ( Rapid Spanning Tree Protocol ).
Celui-ci réduit les temps de cicatrisation entre 1 et 3 secondes et apporte quelques améliorations :
- Simplification des rôles des ports
- Meilleure stabilité
- rétrocompatible avec STP
II. Fonctionnement STP/RSTP
2.1 Principe général
Le fonctionnement de base du STP / RSTP est le suivant :
2.1.1 Election de la passerelle racine ( root bridge )
Chaque switch envoie une trame d'un type spécifique appelée BPDU ( Bridge Protocol Data Unit ).
Cette trame contient les informations de priorité, d'adresse MAC et de coût du chemin racine.
Une fois ces trames reçues, le switch ayant la priorité ave la valeur la plus basse devient le switch racine.
Info : En l'absence de priorité définies sur les switch, c'est la valeur des adresses MAC qui est prise en compte et fait office de valeur de priorité.
Une fois ce processus d'élection achevé, les trames continuent à être envoyées de manière continue. Si un switch apparaît avec une priorité plus élevée, ce rôle lui sera transféré.
Conseil : C'est ce qui rend la résilience possible et l'architecture scalable. Si le root bridge tombe, celui avec la meilleure priorité disponible est automatiquement élue. Si un switch avec une meilleure priorité est ajouté à la topologie, il est également automatiquement élu et récupère le rôle de root bridge.
2.2.2 Détermination des ports racine ( root ports )
| Débit du lien | Coût STP (802.1t) |
| 10 Mb/s | 2 000 000 |
| 100 Mb/s | 200 000 |
| 1 Gb/s | 20 000 |
| 10 Gb/s | 2 000 |
| 100 Gb/s | 200 |
| 1 Tb/s | 20 |
Info : En cas d'égalité entre deux chemins, c'est le voisin avec le bridge ID le plus faible qui l'emporte. Si l'égalité persiste, c'est le Port ID le plus faible qui est choisi.
- Chemin 1 : B → C → A
-
-
B–C : 1 Gb/s → coût 20 000
-
C–A : 1 Gb/s → coût 20 000
-
Total = 40 000
-
- Chemin 2 : B → D → A
-
-
B–D : 10 Gb/s → coût 2 000
-
D–A : 1 Gb/s → coût 20 000
-
Total = 22 000
-
Le Root Port de B sera le port vers D, car 22 000 < 40 000.
2.2.3 Désignation des switches et ports désignés ( designated ports )
2.2.4 Blocage des ports redondants ( Redundant ports )
Les ports participant à la topologie mais n'étant désignés ni comme root, ni comme designated seront alors bloqués et deviendrons des blocked ports. Ces ports pourront être activés en cas de dysfonctionnement de l'un des ports actif.
En attendant, ceux-ci :
- ne transfèrent plus le trafic,
- n'apprennent plus d'adresses MAC,
- n'écoutent plus de trafic, hormis les trames BPDU.
C'est comme cela que les switches de la topologie se prémunissent des boucles réseaux et c'est ce fonctionnement qui explique également les latences de cicatrisation.
On a donc 5 états possibles pour un port :
-
Disabled
-
Blocking (20 seconds)
-
Listening (15 seconds)
-
Learning (15 seconds)
-
Forwarding
2.2 Les améliorations de RSTP
Pour simplifier le fonctionnement du protocole et accélérer les temps de cicatrisation réseau, le RSTP va apporter quelques changements à ce fonctionnement.
- L'ajout d'un nouveau type de port dit edge port (PortFast), permettant de relier des équipements actifs ou des terminaux sans que cela ne déclenche un recalcul de topologie.
- Des négociations plus rapides lors des élections de switch et de détermination des status des ports basés sur un mécanisme de Proposal/Agreement :
- Un switch propose un port comme Designated port.
- Les voisins directs approuvent.
- Les deux ports passent automatiquement en mode forward.
Pour vulgariser, lorsqu'un switch reçois un BPDU de son voisin, il peut décider :
- "Ce voisin a un meilleur chemin vers le root que moi" --> Je deviens Root port
- "J'ai un meilleur chemin que lui" --> Je deviens Designated Port
Détail de la négociation
- Un switch reçois une BPDU "meilleure" : Il comprend que son port doit devenir 'root port'.
- Il bloque temporairement tous ses 'designated ports' : Ce qui évite les boucles.
- Il envoie un 'agreement' à son voisin : Si il peut garantir que cela ne créée pas de boucle.
- Le voisin passe son port en forwarding : Pas de délai d'attente comme en stp classique.
- Le switch débloque tous ses 'designated ports' : La topologie converge ainsi en quelques milisecondes.
Voici un comparatif des deux protocoles permettant de se faire un ordre d'idée
| Fonctionnalité | STP (802.1D) | RSTP (802.1w) |
| Convergence | 30–50s | 1–3s |
| Etat de ports | 5 | 3 |
| Rôle de ports | 3 | 4 |
| BPDU | seul le root envoie | tous les switchs envoient |
| Détection de dysfonctionnement | Lent | Fast Handshake |
| Edge ports | Optionnel | Concept Natif |
III. Caractéristiques des ports
3.1 Caractéristiques générales
Les ports peuvent être identifiés sur les switches de la façon suivante :
| Identification sur le switch | Correspondance | Caractéristiques |
| RP |
Root Port |
|
| DP | Designated Port |
|
| AP | Alternate Port |
|
|
BP |
Backup Port |
|
|
EP |
Edge Port (PortFast) |
|
En RSTP, un port peut avoir trois états fonctionnels ( Au lieu de 5 en STP ) :
- Discarding : Ne forwarde pas le trafic, n'apprends pas les MAC.
- Learning : Apprends les MAC address.
- Forwarding : Forwarde le traffic, port actif.
Les ports ne participant pas à la topologie où les équipements actifs sont connectés sont les Edge Ports (PortFast).
Pas de recalcul ou de changement d'état sur ces ports car ils ne participent pas à la topologie. Ils passent directement en mode forward. Cela permet d'annuler les délais pour les équipements actifs branchés dessus.
2.2 BPDU Guard & Loop Guard
En plus de ce qui a été vu ci-dessus, il existe deux fonctionnalités supplémentaires applicables aux ports en STP/RSTP.
La première est le BPDU Guard : C'est une fonctionnalité qui sert à protéger les Edge Ports des trames BPDU non désirées.
Ces ports ne participant pas à la topologie, ils ne doivent pas traiter de trames BPDU.
Si toutefois, suite à une erreur de manipulation (mauvais branchement par exemple), ces ports reçoivent des trames BPDU, cela veut dire qu'un port RSTP a été branché sur un port ne participant pas à la topologie et donc naturellement non protégé contre les boucles réseaux.
Dans ce cas, le BPDU Guard va automatiquement couper le port pour prévenir la boucle. Le port passe alors en état Err-disable.
La seconde est Loop Guard : C'est une fonctionnalité qui sert à protéger les liens Trunk et les uplinks de boucles unidirectionnelles.
2.2 Rapid-PVST
Le rapid-PVST ou (Per Vlan Spanning Tree) est un RSTP appliqué par VLAN.
Ainsi si plusieurs VLAN co-existent au sein d'une même topologie physique, il est possible de définir une instance de RSTP par VLAN.
Chaque VLAN dispose ainsi de :
- Son Root Bridge,
- Ses chemins favoris,
- Ses propres root ports,
- Ses propres designated ports.
Conseil : Cela peut se révéler particulièrement intéressant dans de vastes structures dans lesquelles il est important voire crucial d'optimiser ses chemins réseaux et d'équilibrer la charges sur les différents liens. Ou dans le cas d'usages intensifs de bande passante sur des vlan concurrentiels ( voip / Vidéo )...
Cependant pour des réseaux à très grande échelle, il sera préférable d'utiliser le protocole MSTP.
Il sera également bon de prendre en compte que vu que le Rapid-PVST est instancié par VLAN, il consomme également plus de CPU.
IV. Les trames BPDU
Comme vu jusqu'ici, le RSTP repose sur l'utilisation de trames spéciales appelées BPDU.
Contrairement au STP classique où seul le root bridge envoie des trames, en RSTP, chaque switch envoie ces trames en plus de forwarder celles du root bridge. C'est cela qui permet des délais de cicatrisation si courts.
Ces trames se déclinent en deux types.
4.1 Les Configuration BPDU
Il s'agit des paquest BPDU normaux, envoyés toutes les 2 secondes par le Root Bridge.
Celles-ci contiennent :
- l'ID du root Bridge
- Le coût du chemin vers le root
- l'ID du bridge émetteur
- l'ID du port émetteur
- les différents timers (Hello, Max Age, Forward Delay) si ceux-ci sont utilisés
Leur rôle est de maintenir la topologie. Elles servent également a élire ou ré-élire un root bridge et déterminer les root ports et designated ports.
4.2 Les TCN BPDU ( Topology Change Notification ) en STP
En STP classique, ce sont les trames spéciales envoyées par un switch qui détecte un changement dans la topologie.
( par exemple : Un port qui passe de forwarding à down ou inversement, un lien qui tombe, un switch ajouté ou retiré de la topologie, etc...)
Cela fonctionne de la façon suivante :
- Un switch non-root détecte un changement de topologie.
- Il envoie une TCN BPDU vers son root port.
- Chaque switch intermédiaire accuse réception et relaie vers le root bridge.
Le root bridge active alors le Topology Change Flag dans ses configuration BPDU et diffuse cette information sur l'ensemble du réseau.
Chaque switch va alors réduire le temps le mise en cache des adresse MAC ( aging time) afin de les purger au plus vite.
Info : En RSTP, ces trames sont supprimées et leur mécaniques sont intégrées dans les BPDU normaux, ce qui est beaucoup plus rapide.
4.3 Détection des changements en RSTP
En RSTP, plutôt que d'utiliser des trames dédiées sur un changement de topologie, le Change Flag est intégré dans les trames classiques. Et comme chaque switch émets ses propres trames en permanence en plus de forward celles du root bridge, l'information se diffuse donc bien plus rapidement.
Ainsi, lorsqu'un port change d'état ( Up / Down / Forwarding), le RSTP :
- Met immédiatement à jour son rôle (RP, DP, AP, ...)
- Envoie une BPDU avec le bit Topology Change activé
- Informe dirrectement ses voisins, et ce
- sans attendre le Max Age
- sans envoyer de TCN BPDU à destination du root bridge
- Ses voisins mettent immédiatement à jour leurs tables MAC
- Rendant ainsi la propagation de l'information immédiate et bidirectionnelle.
La propagation devient ainsi locale plutôt que globale et les délais de cicatrisation sont ainsi réduits à leur minimum.
Un changement de topologie met désormais entre 1 et 3 secondes à être totalement oppérationnel.
V. Bonnes pratiques
Il est important, compte tenu des mécanismes ci-dessus, de prendre en considération l'ensemble des fonctionnalités dans la construction d'une topologie à la fois résiliente et optimisée.
- Toujours définir un Root Bridge soi-même.
- Définir les priorité des switches manuellement pour définir des routes "préférées".
- Bien déclarer les ports ne participant pas à la topologie en Edge Ports.
- Sur ces ports, activer BPDU Guard pour éviter les erreurs de manipulation.
- Utiliser préférentiellement un mode 'Point-to-point' sur les trunk.
- Activer Loop Guard sur les trunks
- Eviter de mixer STP et RSTP.
VI. Conclusion
Le protocole RSTP est primordial dans les architectures réseaux modernes critiques où le réseaux doit à tout prix être stable et fonctionnel. Rendant ainsi centraux les aspects de redondance et de convergence rapide.
Mais il fait entrer beaucoup de notions différentes complexes qu'il est essentiel de bien comprendre et maîtriser afin de rendre son infrastructure la plus optimisée possible.
Réseau - sockets
|
Difficulté : Débutant Notions : adressage IP, port, modèle OSI, protocoles réseaux. |
I. Introduction
Prérequis : Connaître les notions de modèle OSI et l'adressage IP (à minima V4).
Lorsqu'une machine veut utiliser un protocole pour envoyer ou recevoir des informations sur un réseau, elle va devoir ouvrir un canal de communication.
Comme la machine peut ouvrir plusieurs canaux de communication à la fois, elle va avoir besoin de pouvoir identifier quel canal est utilisé pour quelle communication.
II. Principes du socket
2.1 Définition
En réseau, un socket est un couple d'adresse ip / port basés sur un protocole, permettant d'envoyer ou recevoir des données à travers un réseau informatique.
Il y a 3 choses qui identifient un socket sur le réseau :
- Adresse IP : l'adresse IP avec laquelle la machine initie la communication.
- Port source : le port source qu'elle va dédier à la communication (selon le protocole, celui-ci peut être fixe, compris dans une plage ou défini aléatoirement).
- Protocole : Le protocole utilisé dans la communication.
Pour la machine, un socket se présente comme suit : <ip machine>:<port>.
Par exemple : 192.168.1.10:250458 (TCP)
Il existe trois types de socket, basé sur le protocole utilisé (TCP, UDP, Raw) :
| Type | Description | Utilisation type |
| Stream Socket (TCP) | Fiable et orienté connexion. | navigation web, messagerie, etc... |
| Datagram Socket (UDP) | Plus rapide mais pas de contrôle | streaming vidéo, VoIP, jeux en ligne, etc... |
| RAW Socket | Accès direct aux couches basses | Diagnostics réseaux, protocoles personnalisés, etc... |
2.1 Limitations
Un socket ne peut être attribué qu'a un seul canal de communication à la fois, donc si la machine veut en ouvrir plusieurs, elle devra utiliser plusieurs sockets différents.
Selon les protocoles utilisés et leurs limitations ou paramétrage, elle ne pourra en ouvrir qu'un nombre simultané limité. Voire un seul.
2.3 Attribution des sockets
Un socket ne peut être attribué qu'a un seul canal de communication à la fois, donc si la machine veut en ouvrir plusieurs, elle devra utiliser plusieurs sockets différents.
Selon les protocoles utilisés et leurs limitations ou paramétrage, elle ne pourra en ouvrir qu'un nombre simultané limité. Voire un seul.
III. Socket client et socket serveur
3.1 Côté serveur
Côté serveur, le socket d'écoute est fixé par le protocole.
Il peut s'agir d'un port fixe : par exemple le 53(UDP/TCP) pour le DNS ou le 123 (UDP) pour le NTP.
Une plage de port : 3478 - 3481 (Microsoft TEAMS)
Souvent, un port unique fait office de point d'entrée et un répartiteur écoutant sur ce port, redirige le client sur un port destination spécifique de la plage.
3.1 Côté client
Côté client, il s'agit le plus souvent d'un port source dynamique
Sauf fonctionnement spécifique, la plage de port pour un socket côté client s’étend de 49152 - 65535 conformément à ce qui est prévus dans les catégories de ports.
IV. Opérations de diagnostics
4.1 Visualiser les sockets utilisés.
4.1.2 Sur windows
Utiliser les commandes suivantes :
netstat -an
Pour plus de détails :
netstat -anob
Lister seulement les ports en écoutes :
netstat -anob | findstr LISTENING
4.1.2 Sur linux
Utiliser les commandes suivantes :
netstat
Lister seulement les ports en écoutes :
netstat -tunlp
Lister depuis les processus :
lsof -nP -iTCP -sTCP:LISTEN
Réseau - Topologies
DISCLAIMER : Cette page est actuellement en cours de rédaction et son contenu peut être incomplet ou inexact
|
Difficulté : Débutant Notions : Topologies réseaux, fondamentaux |
I. Introduction
Un réseau est un ensemble de machines interconnectées. Il peut prendre plusieurs formes qui seront appelées 'Topologies'.
Une topologie réseau est la couche structurelle sur laquelle les machines vont s'interconnecter pour former le réseau.
Cela conditionnera en partie les protocoles utilisés pour communiquer, mais aura aussi un impact sur des critères comme :
- La performance
- La résilience
- La scalabitilé
Habituellement la notion de topologie fait autant référence à la couche physique des interconnexions ( câbles, antennes, fibres, etc... )
qu'a la couche logique (comment les chemins réseaux sont organisés).
II. Topologies classiques
2.1 Topologie en étoile
C'est la topologie la plus courante. l'Ensemble des équipements sont reliés à un point central qui servira à distribuer le réseau.
Adapté au réseaux petits à moyens, elle peut rapidement être mise à l'échelle.
2.2 Topologie en étoile étendue ou hiérarchisée.
C'est la topologie la plus courante des que les réseaux grossissent un peu.
L'on part d'un cœur de réseau qui se situe au niveau le plus haut, puis on décentralise sur des équipements périphériques. En fonction de la charge et du nombre, il est possible d'ajouter également des switches sur les autres switches, etc...
Info : Cette topologie en arborescence comporte également une variant plus large pour les grosses structures ou les structures multi-sites. Avec des routeurs plus réguliers et différents niveaux de swiches.
2.3 Topologie meshée
En français topologie 'maillée'.
Certains liens sont redondés et les équipements sont interconnectés. Cette topologie est particulièrement appréciée sur des réseaux où la fiabilité l'optimisation prime sur la simplicité d'installation.
Trivia : Ce qui ressemble très vite à une toile d'araignée. D'où l'origine du 'web';
III. Topologies industrielles
3.1 Topologie en bus
Autrefois utilisée pour les réseaux informatiques à leurs débuts, il s'agit d'une des forme de réseau les plus simples et prévisibles.
Chaque équipement est connecté à un bus et dispose d'un ordre de passage sur le réseau.
Le long du bus, une trame circule d'un bout à l'autre dans les deux sens et fait transiter la donnée.
Trivia : C'est cette notion de bus et de trame qui donneront ensuite les notions de trame réseau et de BUS au sens largeur de bande passante de la connectique.
3.2 Topologie en anneau
Bien que se retrouvant essentiellement dans le milieu industriel, elle peut parfois faire sens dans des réseaux vidéos ou voix sur IP associée à une politique de QoS. Voire même informatique classique dans la mesure où elle permet une forme basique de redondance tout en coûtant sensiblement moins cher que le réseau mesh.