Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
050-manips-ipv4:010-arpv4 [le 05/04/2025 à 16:40] – supprimée - modification externe (Date inconnue) 127.0.0.1 | 050-manips-ipv4:010-arpv4 [le 11/09/2025 à 12:57] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. prof | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Ethernet et ARP ====== | ||
+ | Nous savons que sur un réseau local Ethernet chaque nœud dispose d'une adresse utilisée par le «Media Access Control» grâce à laquelle chaque nœud est parfaitement identifiable. Sur des architectures de type NetBIOS, des algorithmes permettaient d' | ||
+ | ===== Relations entre MAC et IPv4 ===== | ||
+ | Il faut maintenant mettre en évidence la façon dont le système retrouve les adresses MAC en fonction des adresses IPv4. Nous allons espionner ce qu'il se passe sur la couche Ethernet lorsqu' | ||
+ | L' | ||
+ | ===== Address Resolution Protocol ===== | ||
+ | Pour rappel, soit le réseau local suivant: | ||
+ | {{ 050-manips-ipv4: | ||
+ | Le poste 192.168.60.127 doit lancer une impression sur 192.168.60.10, | ||
+ | < | ||
+ | < | ||
+ | |||
+ | Adresse | ||
+ | 192.168.60.254 | ||
+ | 192.168.60.3 | ||
+ | 192.168.60.47 | ||
+ | </ | ||
+ | |||
+ | Nous allons la lui faire découvrir avec un simple: '' | ||
+ | | ||
+ | Voici ce que l'on obtient: | ||
+ | < | ||
+ | No. Source | ||
+ | <span class=" | ||
+ | 2 HonHaiPr_0c: | ||
+ | <span class=" | ||
+ | 4 192.168.60.10 | ||
+ | </ | ||
+ | |||
+ | Avant de pourvoir effectuer le ping, le système lance une recherche ARP sous forme d'un broadcast la question étant: | ||
+ | Who has 192.168.60.10? | ||
+ | Tout le monde entend la question, mais seul l' | ||
+ | 192.168.60.10 is at f8: | ||
+ | Et à ce moment seulement ICMP lance le ping. | ||
+ | |||
+ | Voyons dans le détail de ces trames. | ||
+ | |||
+ | Trame1: | ||
+ | < | ||
+ | <span class=" | ||
+ | < | ||
+ | Source: RealtekU_37: | ||
+ | Type: ARP (0x0806)</ | ||
+ | <span class=" | ||
+ | Hardware type: Ethernet (1) | ||
+ | Protocol type: IPv4 (0x0800) | ||
+ | Hardware size: 6 | ||
+ | Protocol size: 4 | ||
+ | < | ||
+ | Sender MAC address: RealtekU_37: | ||
+ | < | ||
+ | Target MAC address: 00: | ||
+ | < | ||
+ | </ | ||
+ | - Au niveau 2, nous voyons l' | ||
+ | - Au niveau 3, nous voyons les adresses IP de la source et de la cible. | ||
+ | |||
+ | Trame 2: | ||
+ | < | ||
+ | <span class=" | ||
+ | < | ||
+ | Source: HonHaiPr_0c: | ||
+ | Type: ARP (0x0806)</ | ||
+ | <span class=" | ||
+ | Hardware type: Ethernet (1) | ||
+ | Protocol type: IPv4 (0x0800) | ||
+ | Hardware size: 6 | ||
+ | Protocol size: 4 | ||
+ | < | ||
+ | Sender MAC address: HonHaiPr_0c: | ||
+ | < | ||
+ | Target MAC address: RealtekU_37: | ||
+ | < | ||
+ | </ | ||
+ | Nous avons notre réponse et le ping va pouvoir se faire: | ||
+ | < | ||
+ | <span class=" | ||
+ | Destination: | ||
+ | Source: RealtekU_37: | ||
+ | Type: IPv4 (0x0800)</ | ||
+ | <span class=" | ||
+ | 0100 .... = Version: 4 | ||
+ | .... 0101 = Header Length: 20 bytes (5) | ||
+ | Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) | ||
+ | 0000 00.. = Differentiated Services Codepoint: Default (0) | ||
+ | .... ..00 = Explicit Congestion Notification: | ||
+ | Total Length: 84 | ||
+ | Identification: | ||
+ | 010. .... = Flags: 0x2, Don't fragment | ||
+ | 0... .... = Reserved bit: Not set | ||
+ | .1.. .... = Don't fragment: Set | ||
+ | ..0. .... = More fragments: Not set | ||
+ | ...0 0000 0000 0000 = Fragment Offset: 0 | ||
+ | Time to Live: 64 | ||
+ | Protocol: ICMP (1) | ||
+ | Header Checksum: 0x4259 | ||
+ | Source Address: 192.168.60.127 | ||
+ | Destination Address: 192.168.60.10</ | ||
+ | <span class=" | ||
+ | Type: 8 (Echo (ping) request) | ||
+ | Code: 0 | ||
+ | Checksum: 0x26a0 | ||
+ | Identifier (BE): 1141 (0x0475) | ||
+ | Identifier (LE): 29956 (0x7504) | ||
+ | Sequence Number (BE): 1 (0x0001) | ||
+ | Sequence Number (LE): 256 (0x0100)] | ||
+ | Timestamp from icmp data: Mar 2, 2025 16: | ||
+ | Data (48 bytes)</ | ||
+ | </ | ||
+ | - Au niveau Ethernet, nous voyons les adresses MAC, | ||
+ | - au niveau Internet, les adresses IP, | ||
+ | - au niveau ICMP Nous avons un exemple de l' «echo request» et nous aurons l’occasion de revoir ceci plus en détail avec l' | ||
+ | ===== Structure du protocole ARP ===== | ||
+ | {{ 050-manips-ipv4: | ||
+ | Nous retrouvons bien dans la capture Wireshark cette structure. | ||
+ | ===== Compléments d' | ||
+ | - La durée de vie d'une entrée dans le cache ARP est limitée. Les durées sont paramétrables, | ||
+ | - le système qui a lancé la requête considère la première réponse reçue comme étant la bonne, sans aucune forme de vérification. Sur un réseau local, la technique du «man in the middle» peut permettre à un malveillant de prendre la place de la cible légitime en s' | ||
+ | - Nous avons vu la commande '' | ||
+ | 192.168.60.10 dev sw0 lladdr f8: | ||
+ | 192.168.60.3 dev sw0 lladdr 18: | ||
+ | ===== Le routage ===== | ||
+ | Voici comment les choses se passent. | ||
+ | L' | ||
+ | - de son adresse IP, | ||
+ | - du masque de son réseau, | ||
+ | - de l' | ||
+ | Au passage de la couche IP à la couche Ethernet, le calcul préliminaire est le suivant: | ||
+ | * calcul d'un ET logique bit à bit entre l' | ||
+ | * calcul d'un ET logique bit à bit entre l' | ||
+ | * si les 2 résultats sont identiques, c'est que source et cible sont dans le même réseau. On cherche alors l' | ||
+ | * si les deux résultats sont différents, | ||
+ | Le cas le plus classique: | ||
+ | < | ||
+ | <b>ip route show</ | ||
+ | |||
+ | <span class=" | ||
+ | <span class=" | ||
+ | </ | ||
+ | |||
+ | Dans un cas plus complexe: | ||
+ | < | ||
+ | ip route show | ||
+ | <span class=" | ||
+ | <span class=" | ||
+ | <span class=" | ||
+ | </ | ||
+ | Ce nœud dispose de deux interfaces Ethernet, chacune dans un réseau différent. Le calcul sera alors plus long. Si l' |
Ethernet et ARP: Dernière modification le: 01/01/1970 à 00:00 par