Rappels et exercices préparatoires
Durée1h00L’adressage IPv4
Une adresse IPv4 (par exemple, 192.168.1.1) se représente sous forme de quatre entiers de 8 bits séparés par des points.
Chaque entier est compris entre 0 et 255 (correspondant à 8 bits). Ces quatre entiers forment une adresse unique sur un réseau IPv4.
- Les bits les plus à gauche identifient le réseau.
- Les bits les plus à droite identifient l’équipement.
Masque de réseau
Un masque de réseau IPv4 (par exemple, 255.255.255.0) se compose également de quatre octets.
Il définit quelle partie de l’adresse correspond au réseau et quelle partie correspond à l’hôte.
- La partie du masque avec des bits à 1 indique la portion qui identifie le réseau.
- La partie avec des bits à 0 indique la portion qui identifie hôte.
Exemple de masque : 255.255.255.0 (correspondant à un préfixe /24)
- En binaire :
11111111.11111111.11111111.00000000 - Les 24 premiers bits (prenant la valeur 1) sont pour le réseau.
- Les 8 derniers bits (prenant la valeur 0) sont pour les hôtes.
Utilité du masque et adresse du réseau
L’adresse IPv4 et le masque de sous-réseau sont utiles pour déterminer si deux adresses IPv4 (et donc si les deux équipements identifiés par cette adresse) sont dans le même réseau ou non. En appliquant une opération ET logique entre une adresse IP et un masque, nous déterminons l’adresse du réseau.
Exemple :
| Adresse IP | 192.168.1.10 |
11000000.10101000.00000001.00001010 |
|---|---|---|
| Masque | 255.255.255.0 |
11111111.11111111.11111111.00000000 |
| Adresse réseau | 192.168.1.0 |
11000000.10101000.00000001.00000000 |
Sous-réseaux
Un sous-réseau est une partie d’un réseau plus vaste. Le sous-réseau 192.168.1.0/24 fait partie du réseau 192.168.0.0/16 qui fait lui-même partie du réseau 192.0.0.0/8 par exemple.
Quizz
Note: et en IPv6…
Les adresses fonctionnent comme en IPv4 (adresse et masque), elles sont juste plus longues (128 bits au lieu de 32 bit), et donc offrent un espace d’adressage énormément plus grand. (C’est d’ailleurs la motivation pour avoir créé IPv6, face à la pénurie d’adresses IPv4.)
Par contre, pour leur représentation textuelle, on note les valeurs en hexadécimal, et on utilise le caractère ‘:’ comme séparateur.
Les différents types d’adresses IPv4
Les adresses IPv4 publiques versus privées
Les adresses IPv4 publiques sont accessibles depuis Internet. Elles sont attribuées de manière unique. Les adresses IPv4 privées, en revanche, sont réservées pour une utilisation au sein d’un réseau local. Elles ne sont pas routées sur Internet. Une adresse privée sert à identifier une machine dans un réseau interne. Une adresse IP privée n’est pas routable au sens où elle n’est pas accessible depuis l’Internet (à moins qu’un mécanisme additionnel tel qu’un NAT - en ce qui concerne IPv4 - soit mis en place sur un équipement réseau tel qu’un routeur par exemple).
Avantages des adresses privées: L’économie d’adresses publiques (surtout en IPv4) : elles permettent en pratique à des machines de partager une seule adresse publique.
Plages d’adresses IPv4 privées (RFC 1918) :
Les plages d’adresses IPv4 privées sont les suivantes :
10.0.0.0 – 10.255.255.255(16 777 216 adresses)172.16.0.0 – 172.31.255.255(1 048 576 adresses)192.168.0.0 – 192.168.255.255(65 536 adresses)
Les adresses multicast
Une adresse multicast permet d’envoyer un paquet à un groupe d’hôtes abonnés. Ainsi en un seul envoie d’un paquet, tous les abonnés sont contactés. Une adresse unicast au contraire fait référence à un seul destinataire. Les plages d’adresses multicast IPv4 vont de 224.0.0.0 à 239.255.255.255.
L’adresse de broadcast
Une adresse de broadcast est utilisée pour envoyer un paquet à tous les hôtes d’un réseau. Elle se distingue par le fait que tous les bits de la portion hôte de l’adresse IP sont à 1.
Exemple :
| Adresse IP | 192.168.1.10 |
11000000.10101000.00000001.00001010 |
|---|---|---|
| Masque | 255.255.255.0 |
11111111.11111111.11111111.00000000 |
| Adresse de broadcast | 192.168.1.255 |
11000000.10101000.00000001.11111111 |
Les adresses de loopback :
La plage d’adresse IPv4 127.0.0.0/8 (les adresses IPv4 comprises entre 127.0.0.0 et 127.255.255.255 donc) est attribuée/réservée à la boucle locale. L’adresse la plus utilisée dans cette plage est 127.0.0.1, qui représente généralement la boucle locale par défaut. Les adresses de boucle locale permettent de tester le fonctionnement des applications réseau ou des services localement (sur l’équipement sans qu’un seul paquet ne soit envoyé par une quelconque interface réseau) : elles permettent à des applications sur un équipement de communiquer entre elles directement.
Quelques quizzes sur l’adressage
Note: et en IPv6…
En IPv6, on a également une adresse de loopback (’::1/128’), des adresses de groupes multicast (‘ff00::/8’), la possibilité d’avoir des adresses privées (‘fc00::/7’) même si il n’y a plus véritablement d’intérêt pratique (puisque l’on n’a plus de pénurie d’adresse comme en IPv4), et il n’y a plus d’adresse de broadcast (qui avaient la fâcheuse tendance à embêter tout le monde en IPv4, et que l’on préfère remplacer par du multicast chaque fois que l’on en a besoin).
Par contre, on a pris l’habitude de configurer au moins deux adresses à chaque interface réseau: l’une qui a un scope global (adresse publique, routable sur Internet, unique), et l’autre qui a un scope local (pour utiliser uniquement sur la liaison locale pour parler à ses voisins directs, qui ne passe pas les routeurs, et unique que sur la liaison locale, et qui est en fait indispensable).
ARP
ARP (Address Resolution Protocol) remplit une fonction indispensable qui est celle de rechercher l’adresse physique (de niveau 2 ; dans le TP, il s’agit de l’adresse MAC pour Media Access Control), d’un hôte à partir de son adresse de niveau 3 (dans le TP, il s’agit de l’adresse IPv4 qui est connue du PC à l’origine de la recherche). ARP gère un cache (table) dans lequel les adresses MAC sont mappées aux adresses IP. Un équipement opérant au niveau de la couche 3 a besoin d’ARP pour mapper les adresses réseau IP aux adresses MAC pour pouvoir plus tard envoyer des paquets IP (encapsulés dans les trames). Avant qu’un équipement envoit un datagramme, il consulte son cache ARP pour identifier si une adresse MAC correspond à une adresse IP donnée destinataire. S’il n’y a pas d’entrée pour cette adresse IP, l’équipement diffuse à tous les équipements se trouvant sur le réseau. Chaque équipement compare l’adresse IP à la sienne. Seul l’équipement dont l’adresse IP correspond, répond à l’émetteur. Enfin l’équipement crée l’association à l’adresse MAC au niveau de sa propre table.
À quel moment un équipement a recours à ARP
Un équipement (PC1) veut communiquer avec un autre équipement (PC2) dont il connait l’adresse IPv4 (@IP de PC2). Pour cela, PC1 dispose de 4 informations primordiales:
- sa propre adresse IP
- son propre masque
- l’adresse IP de PC2
- l’adresse de son propre réseau qui résulte d’un ET binaire (AND) entre sa propre adresse IP et sa propre adresse IP
Avant d’émettre une requête ARP, PC1 applique un ET binaire (AND) entre l’adresse IP de PC2 et son propre masque. Si le résultat correspond à l’adresse du réseau de PC1, alors PC1 et PC2 appartiennent au même réseau (cas 1) sinon PC1 et PC2 n’appartiennent pas au même réseau (cas 2).
Cas 1 : un équipement veut communiquer avec un autre équipement se trouvant dans le même réseau.
PC1 diffuse une requête ARP dans son réseau pour rechercher l’adresse physique de PC2.
Cas 2 : un équipement veut communiquer avec un autre équipement ne se trouvant dans le même réseau
PC1 diffuse une requête ARP dans son réseau pour rechercher l’adresse physique du routeur servant de passerelle.
Cas 3 : Proxy ARP
Le proxy ARP, tel que défini dans la RFC 1027, a été mis en œuvre pour que deux équipements séparés en segments de réseau physiques connectés par un routeur (dans le même réseau ou sous-réseau IP de) puissent résoudre les adresses IP vers MAC. Lorsque les équipements ne se trouvent pas sur le même réseau de couche liaison de données, mais sur le même réseau IP, ils tentent de se transmettre des données comme s’ils se trouvaient sur le réseau local. Or, le routeur qui sépare les équipements n’envoient pas de message de diffusion, car les routeurs ne transmettent pas les diffusions. Par conséquent, les adresses ne peuvent pas être résolues. Le proxy ARP est activé par défaut, de sorte que le routeur proxy qui réside entre les réseaux locaux réponde avec son adresse MAC comme s’il s’agissait du destinataire auquel la diffusion est adressée.
Structure d’une trame Ethernet
| Préambule | SFD | MAC destination | MAC source | Type | Données | FCS |
|---|---|---|---|---|---|---|
| 7o | 1o | 6o | 6o | 2o | 46o à 1500o | 4o |
- Préambule : suite de bits servant à synchroniser émetteur et récepteur
- SFD (Start Frame Delimiter) indique le début réel de la trame
- Champ Type indique le protocole encapsulé (0x0806 pour ARP)
- Données formant la charge utile (de 46 à 1500 octets)
Structure d’une requête et/ou réponse ARP
| HTYPE | PTYPE | HLEN | PLEN | OPCODE | @Hw source | @net source | @Hw destination | @net destination |
|---|---|---|---|---|---|---|---|---|
| 2 o | 2 o | 2 o | 2o | 2o | 6o pour MAC | 4o pour IPv4 | 6o pour MAC | 4 o pour ipv4 |
- HTYPE (Hardware Type): type de réseau (pour ethernet, prend la valeur 1)
- PTYPE (Protocol Type): protocole de couche réseau (pour IPv4, prend la valeur 0x0800)
- HLEN (Hardware Length) : longueur de l’adresse matérielle (pour une adresse MAC, prend la valeur 6)
- PLEN (Protocol Length) : longueur de l’adresse protocolaire (pour une adresse ipv4, prend la valeur 4)
- OPCODE: type de message ARP (prend la valeur 1 pour une requête ARP et la valeur 0 pour une réponse ARP
- À partir du HTYPE et PTYPE sont définis les champs qui suivent:
- HW source/destination (adresse physique), ici : @ MAC source/destination
- @ source/destination correspond à l’adresse réseau, ici Ipv4, comme définit dans le champ PTYPE
Note: et en IPv6…
On a exactement le même besoin, sauf que le service n’est pas assuré par ARP, mais par le ‘Neighbor Discovery Protocol’ (RFC 4861, et porté par ICMPv6), avec quasiment le même fonctionnement.