# Broadcast storm

Le broadcast storm (ou tempête de diffusion ou encore tempête de broadcast) est une saturation du réseau entraînant son blocage lors de laquelle les messages (trames) transmis en diffusion (souvent des messages d'information, de demande d'information ou d'erreur) donnent lieu à une réponse des hôtes sur le même domaine de diffusion. Dans certains cas, cette défaillance provoque une situation de déni de service (DoS).

## Causes

La cause la plus courante est une boucle (circuit) ethernet dans la connexion avec des commutateurs réseau (c'est-à-dire plusieurs chemins existent entre les postes). Comme les trames de diffusion sont transmises sur tous les ports, les commutateurs suivants vont retransmettre les trames déjà reçues, et donc saturer le réseau. Comme la couche niveau 2 sur les entêtes ethernet ne contient pas de TTL (durée de vie limitée), les trames vont transiter indéfiniment.
En vous référant à la figure, nous pouvons résumer, avec les points suivants, une tempête de diffusion due à une boucle de pont (ou boucle de commutation) :
* L'hôte envoie un message de diffusion sur le réseau ;
* Le premier commutateur analyse le paquet reçu et le transfère au bas du réseau ;
* Le second commutateur reçoit la copie du paquet et fonctionne en conséquence en tant que premier commutateur, en le transférant au sommet du réseau ;
* Étant donné que le paquet est diffusé, les commutateurs le répètent toujours sur tous les ports, à l’exception du port d’origine. Le cycle est donc destiné à se poursuivre indéfiniment.
Pour pallier le risque de boucles, on peut mettre en œuvre des protocoles tels que le Shortest Path Bridging (« le pont de chemin le plus court ») ou le Spanning Tree Protocol (« protocole de l'arbre de recouvrement »).
Dans certains cas, une tempête de diffusion peut avoir été volontairement provoquée dans le but de créer un déni de service (DoS). Ceci peut être accentué en utilisant des techniques telles que l'attaque par rebond qui consiste à envoyer un très grand nombre de requêtes ICMP Echo (ping) vers une adresse de diffusion, avec chacune des trames ayant été trafiquée pour avoir comme source l'adresse de la victime. Quand ces trames trafiquées arrivent sur le réseau final, tous les postes sur ce réseau vont répondre à l'adresse trafiquée (de la victime). La trame initiale (Echo Request) est multipliée par le nombre de postes sur le réseau. La quantité de réponses générées en direction de la victime sature le réseau et utilise les ressources processeur de la victime, et parfois provoque un plantage de la machine.
Dans le cas de réseaux sans fil, un paquet de désassociation trafiqué avec l'adresse du point d'accès envoyé à l'adresse de diffusion peut aussi générer une attaque par déni de service.

## Prévention

* Les boucles de commutateurs peuvent être prévenues avec les protocoles Shortest Path Bridging (SPB) ou le Spanning Tree Protocol (STP).
* On peut aussi filtrer les diffusions au niveau 3, typiquement avec des routeurs (ou des commutateurs supportant le filtrage au niveau 3).
* Segmenter le réseau en utilisant des routeurs (ou en déployant des VLAN - Virtual Local Area Network).
* Certains routeurs et pare-feu ont une fonction pour détecter ces attaques.
* Certains commutateurs ont une fonction permettant de couper tout le trafic de type diffusion dans le cas où il détecte une bande passante anormalement élevée.

## Erreurs d'interprétation

Une des erreurs les plus courantes consiste à mélanger les notions de boucles de routage et les tempêtes de diffusion. Fonctionnant au niveau 3, les routeurs ne transmettent pas les diffusions de trames du niveau MAC (Media Access Control de niveau 2).
De manière courante, on peut penser que seuls les routeurs peuvent filtrer le trafic et donc filtrer les diffusions de trames. Les commutateurs nouvelle génération le peuvent aussi, par l'intermédiaire de VLAN par exemple. Pour compliquer les choses encore un peu plus, certains matériels vendus comme des commutateurs ont des fonctionnalités de routage et les utilisent automatiquement s'ils ont des interfaces sur différents réseaux locaux ou VLAN.