Nous allons principalement utiliser l’adressage IPv4 pour le défi. En effet, aujourd’hui la totalité des opérateurs Internet français continuent à le proposer, tandis que l’IPv6 n’est pas disponible chez beaucoup d’opérateurs au niveau des contrats pour particuliers. De plus, IPv6 est plus complexe à appréhender du fait de la différence de notation des adresses et des fonctionnalités beaucoup plus évoluées pour la gestion des flux vidéo, de la téléphonie et de la sécurité.
Table des matières
Rapide historique
IPv4 est le principal protocole de communication d’Internet depuis près de 40 ans. Défini en 1981, par la RFC 791, ce protocole est en cours de remplacement depuis le début des années 2000 par IPv6 défini par la RFC 2460 en 1998. Cependant, IPv6 ne représente pas encore la moitié des adresses sur Internet aujourd’hui.
Notions fondamentales
Définition
Paquets : le paquet est une notion centrale d’Internet. Les données à transmettre sont divisées en petits paquets qui vont être envoyés sur Internet. Chaque paquet a un entête fournissant les informations indispensables pour son traitement.
Architecture en couche : les communications réseaux sont organisées en couches. Chaque couche fournit des services à la couche supérieure et s’appuie sur les services de la couche inférieure.
Encapsulation : chaque paquet venant de la couche supérieure est vu par la couche inférieure comme une donnée. Du coup, elle rajoute son propre entête possédant les informations de la couche, sans pour autant toucher à l’en-tête précédent. Ainsi, une partie du paquet est réservée aux différents entêtes nécessaires pour son traitement à la réception. Sur le récepteur, le paquet fera le chemin inverse. Les entêtes seront traités une à une, chacune par la couche responsable de son traitement, puis envoyé à la couche supérieure.
Protocole : il s’agit d’un ensemble de règles permettant l’échange d’informations. Globalement, il y a plusieurs protocoles par couche, répondant ainsi à différents besoins. Les protocoles peuvent être logique comme physique. Plus le protocole est élevé si au niveau des couches, plus les protocoles sont logiques. Les protocoles des couches basses sont généralement des protocoles physiques dépendant du matériel utilisé (câble réseau, Wi-Fi, GSM, fibre optique…).
Schéma IPv4 pour le défi
Si le modèle OSI utilise sept couches, le modèle Internet n’en prévoit que quatre. Le modèle OSI est plus récent que le modèle Internet. On peut globalement estimer que la quatrième couche du protocole IP comprend les trois dernières couches du modèle OSI et que la première couche du modèle Internet comprend les deux premières couches du modèle OSI. Sachez que ce n’est qu’une approximation, dans la réalité, certains protocoles Internet sont à cheval sur plusieurs couches du modèle OSI. Mais nous n’irons pas plus loin dans ce défi.
Ci dessous, un schéma montrant les correspondances entre les deux modèles en couche. Les flèches représentent les communications entre les différentes couches.
La liste des protocoles n’est pas exhaustive. Je n’ai mis que ceux dont nous parlerons au cours du défi et qui s’appuieront sur la configuration IPV4 pour le défi.
Composition d’une adresse IPv4
Une adresse IPv4 est composée de 4 octets allant de 0 à 255. Ces chiffres sont séparés par un point. Sur un même réseau, une adresse IP ne peut être affectée qu’à un seul équipement. Si ce n’est pas le cas, le réseau deviendra instable et les transmissions de données potentiellement perdues. Aujourd’hui, les systèmes détectent cette situation et vous avertissent.
Exemple d’adresse IP :
192.168.1.1
CDIR
Au départ, les adresses IPv4 étaient divisées en quatre classes. Cependant rapidement cette classification a montré ses limites. En 1993, une nouvelle RFC 1518 est sortie mettant en place les masques de sous-réseau. Comme les adresses IP, les masques de sous-réseau sont aussi sur 4 octets.
Il existe deux notations. Celle que l’on continue à trouver dans les fichiers de configuration et qui se compose de quatre chiffres allant de 0 à 255 espacées par un point. Et celle qui se met à la suite de l’adresse IP. Séparé par /, elle utilise un chiffre allant de un à 32. Le tableau ci-dessous vous donne la correspondance entre les deux notations. Vous trouverez la deuxième notation notamment dans les forums. Les classes 23 et 24 sont les plus communes.
Dans notre configuration IPV4 pour le défi, nous utiliserons la classe 24.
Exemple d’adresse IP avec notation CIDR:
192.168.1.1/24
Longueur CIDR | Masque | Nombre d’hôtes |
/1 | 128.0.0.0 | 2,147,483,392 |
/2 | 192.0.0.0 | 1,073,741,696 |
/3 | 224.0.0.0 | 536,870,848 |
/4 | 240.0.0.0 | 268,435,424 |
/5 | 248.0.0.0 | 134,217,712 |
/6 | 252.0.0.0 | 67,108,856 |
/7 | 254.0.0.0 | 33,554,428 |
/8 | 255.0.0.0 | 16,777,214 |
/9 | 255.128.0.0 | 8,388,352 |
/10 | 255.192.0.0 | 4,194,176 |
/11 | 255.224.0.0 | 2,097,088 |
/12 | 255.240.0.0 | 1,048,544 |
/13 | 255.248.0.0 | 524,272 |
/14 | 255.252.0.0 | 262,136 |
/15 | 255.254.0.0 | 131,068 |
/16 | 255.255.0.0 | 65,534 |
/17 | 255.255.128.0 | 32,512 |
/18 | 255.255.192.0 | 16,256 |
/19 | 255.255.224.0 | 8,128 |
/20 | 255.255.240.0 | 4,064 |
/21 | 255.255.248.0 | 2,032 |
/22 | 255.255.252.0 | 1,016 |
/23 | 255.255.254.0 | 508 |
/24 | 255.255.255.0 | 254 |
/25 | 255.255.255.128 | 124 |
/26 | 255.255.255.192 | 62 |
/27 | 255.255.255.224 | 30 |
/28 | 255.255.255.240 | 14 |
/29 | 255.255.255.248 | 6 |
/30 | 255.255.255.252 | 2 |
/31 | 255.255.255.254 | Aucun |
/32 | 255.255.255.255 | 1 |
Application sur Raspberry
Fichier de configuration d’IPv4 pour le défi
La modification se fait dans le fichier /etc/dhcpcd.conf avec la directive inform.
gabriel@raspberrypi:~ $ cat /etc/dhcpcd.conf # A sample configuration for dhcpcd. # See dhcpcd.conf(5) for details. ... interface eth0 noipv6 inform 192.168.1.1
La modification est déjà effective si vous avez suivi le défi étape par étape. En effet, les modifications effectuées via l’interface graphique sont inscrits dans les mêmes fichiers de configuration que nous pouvons modifier directement en ligne de commande. Ainsi tout problème de configuration aura les mêmes conséquences quelle que soit la méthode utilisée.
Les commandes réseaux
Afficher les interfaces
La commande va afficher toutes les cartes disponibles qu’elles soient actives ou non. Si une connexion est active la configuration IP est fourni en plus de la configuration physique.
gabriel@raspberrypi:~ $ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b8:27:eb:06:3d:4f brd ff:ff:ff:ff:ff:ff inet 192.168.1.1/24 brd 192.168.1.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet6 2001:861:d50:6d90:ba27:ebff:fe06:3d4f/64 scope global dynamic mngtmpaddr valid_lft 86308sec preferred_lft 14308sec inet6 fe80::ba27:ebff:fe06:3d4f/64 scope link valid_lft forever preferred_lft forever 3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether b8:27:eb:53:68:1a brd ff:ff:ff:ff:ff:ff
Afficher les routes
Cette commande va afficher les routes utilisées pour acheminer les paquets internet. Une mauvaise configuration ou une table vide provoquera des problèmes de connexion, voir pas de connexion du tout.
gabriel@raspberrypi:~ $ netstat -er Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref Use Iface default bbox.lan 0.0.0.0 UG 202 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
Petit conseil : Sauvegarder la liste des routes avant de modifier les paramètres IP.
Afficher les statistiques réseaux
Cette commande va afficher les statistiques des paquets émis et reçus par interfaces. Seules les interfaces actives sont affichées.
gabriel@raspberrypi:~ $ netstat -tulip Table d'interfaces noyau Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 42855 0 1 0 4593 0 0 0 BMRU lo 65536 47 0 0 0 47 0 0 0 LRU
Afficher les connexions
Cette commande vous fournit la liste des connexions internet active avec les programmes les utilisant. Seuls les programmes accessibles par l’utilisateur sont listés. Pour voir tous les programmes, il faut passer par la commande sudo.
gabriel@raspberrypi:~ $ netstat -t Connexions Internet actives (sans serveurs) Proto Recv-Q Send-Q Adresse locale Adresse distante Etat tcp 0 164 192.168.1.1:ssh pegase-001.lan:49784 ESTABLISHED tcp 0 0 localhost:60574 localhost:37371 ESTABLISHED tcp 0 0 localhost:37371 localhost:60574 ESTABLISHED
Conclusion
Avec un peu de pratique, la majorité de ces commandes vous deviendront rapidement simples. N’hésitez pas à vous entraîner à toutes ces commandes pour la gestion des adresses IPV4 pour le défi.
Comme pour les fois précédentes, si vous avez des commentaires ou des questions n’hésitaient pas à les mettre sur le site, LinkedIn ou Facebook.