Trames ethernet
Introduction
Toute communication réseau/ethernet est composé de bits acheminés que ce soit par fréquences radio, lumière ou plus communément par signal électrique. Ces communications doivent être destinés à une adresse représentant un hôte réseau. Les protocoles les plus communs utilisent des adresses IP pour déterminer l'itinéraire à emprunter pour rejoindre une destination. Plusieurs appareils se situent généralement entre l'expéditeur et le destinataire. Qu'il s'agisse de routeurs, de commutateurs ou de points d'accès, chaque appareil situé entre les interlocuteurs doit être en mesure d'acheminer la donnée sans perdre l'information identifiant la destination finale de la communication.
Ces bits sont donc tout d'abord destinés à une adresse MAC pour être acheminés au sein d'un domaine de diffusion qui est l'étendue à laquelle serait acheminée une communication s'adressant à l'ensemble d'un réseau local. Les commutateurs, ponts et points d'accès utilisent donc cette information pour choisir où transférer la communication.
Ces trames ethernet ne possèdent pas de délai d'expiration et ne seront donc jamais émises à une adresse MAC inexistante au sein d'un réseau et en cas de boucle de commutation, il est possible qu'une trame diffusée (broadcast) surcharge éventuellement votre réseau. Le protocole spanning-tree peut être mis en place pour éviter une telle situation.
Cette structure est représentée théoriquement par le modèle OSI et peut être observée dans une capture de trafic avec tcpdump ou Wireshark.
Fonctionnement
Diffusion (Broadcast)
Un broadcast est destiné à l'ensemble des adresses MAC au sein du domaine de diffusion et peut être identifié comme étant destiné à l'adresse MAC de diffusion (FF:FF:FF:FF:FF:FF). Lorsqu'une diffusion entre dans un commutateur, elle sera retransmise par l'ensemble des ports du commutateur ou du bridge appartenant au même domaine de diffusion (voir VLANs pour la segmentation de domaines de diffusion).
Protocoles de couche 2
Certains protocoles tels que Profinet, spanning-tree ou ARP sont destinés uniquement à des adresses MAC. Pour ces communications, la section IPv4 ou IPv6 sera inexistante. Ces protocoles fontionnent soit par diffusion (broadcast) ou par des adresses MAC de destination forcées dans la configuration des appareils.
Destination locale
La capture suivante est divisée entre quatre sections. La première représente les données brutes transmises sur l'interface, la deuxième représente les adresses MAC de source et de destination de la communication. Ceci est ce qui décrit la trame ethernet. Cette trame contient ensuite un paquet IP représenté dans la section suivante identifiant les adresses IP de source et de destination.
Frame 78: 98 bytes on wire (784 bits), 98 bytes captured (784 bits) on interface -, id 0
Ethernet II, Src: 00:50:79:66:68:02, Dst: 00:50:79:66:68:05
Destination: 00:50:79:66:68:05
Source: 00:50:79:66:68:02
Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 192.168.255.3, Dst: 192.168.255.6
Internet Control Message Protocol
L'adresse MAC de destination est généralement déterminée à l'aide du protocole ARP en fonction de l'adresse IP de destination. Si cette adresse IP est située dans un réseau directement connecté à un appareil selon la table de routage de l'expéditeur, celui-ci effectuera une requête ARP et utilisera l'adresse MAC correspondante à l'adresse IP pour composer son message. Si aucun appareil ne répond à cette requête ARP, le message ne pourra pas être composé et ne sera donc pas émis.
Destination externe
Si l'adresse IP de destination est située derrière un routeur selon la table de routage de l'émetteur, l'adresse MAC de la passerelle plutôt que celle de l'adresse IP de destination sera demandée et la trame sera acheminée au routeur par son adresse MAC.
Dans l'exemple suivant, on peut observer que l'adresse MAC de destination (fa:49:b6:ff:50:30) est la même, que le paquet soit destiné au routeur ou destiné à une adresse IP située de l'autre côté du routeur.
Paquet destiné au routeur (10.60.9.1) :
Frame 23986: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) on interface \Device\NPF_{8CA5DE3B-06FD-4657-A2E1-67C2BC69E370}, id 0
Ethernet II, Src: MicroStarINT_35:f2:9a (d8:cb:8a:35:f2:9a), Dst: fa:49:b6:ff:50:30 (fa:49:b6:ff:50:30)
Destination: fa:49:b6:ff:50:30 (fa:49:b6:ff:50:30)
Source: MicroStarINT_35:f2:9a (d8:cb:8a:35:f2:9a)
Type: IPv4 (0x0800)
[Stream index: 0]
Internet Protocol Version 4, Src: 10.60.9.69, Dst: 10.60.9.1
Internet Control Message Protocol
Paquet destiné au serveur DNS de google (8.8.8.8) :
Frame 276184: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) on interface \Device\NPF_{8CA5DE3B-06FD-4657-A2E1-67C2BC69E370}, id 0
Ethernet II, Src: MicroStarINT_35:f2:9a (d8:cb:8a:35:f2:9a), Dst: fa:49:b6:ff:50:30 (fa:49:b6:ff:50:30)
Destination: fa:49:b6:ff:50:30 (fa:49:b6:ff:50:30)
Source: MicroStarINT_35:f2:9a (d8:cb:8a:35:f2:9a)
Type: IPv4 (0x0800)
[Stream index: 0]
Internet Protocol Version 4, Src: 10.60.9.69, Dst: 8.8.8.8
Internet Control Message Protocol
Paquet destiné à l'adresse IP d'un autre appareil au sein du même réseau IP :
Frame 485596: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) on interface \Device\NPF_{8CA5DE3B-06FD-4657-A2E1-67C2BC69E370}, id 0
Ethernet II, Src: MicroStarINT_35:f2:9a (d8:cb:8a:35:f2:9a), Dst: Google_55:87:1a (38:8b:59:55:87:1a)
Destination: Google_55:87:1a (38:8b:59:55:87:1a)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
Source: MicroStarINT_35:f2:9a (d8:cb:8a:35:f2:9a)
Type: IPv4 (0x0800)
[Stream index: 3]
Internet Protocol Version 4, Src: 10.60.9.69, Dst: 10.60.9.54
Internet Control Message Protocol
Table de routage de la l'émetteur :
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.60.9.1 10.60.9.69 281
10.60.9.0 255.255.255.0 On-link 10.60.9.69 281
10.60.9.69 255.255.255.255 On-link 10.60.9.69 281
10.60.9.255 255.255.255.255 On-link 10.60.9.69 281
Destination inexistante
Si l'adresse IP de destination n'est pas située dans la table de routage de l'émetteur ou qu'aucune réponse ARP n'est reçue pour la destination locale, l'envoi sera abandonné puisqu'il sera impossible de déterminer l'adresse MAC de destination.