de réseau
1. Introduction
De nombreuses applications impliquent la mise en œ uvre du Raspberry Pi en réseau. Que ce soit sur un réseau local
(derrière une box par exemple) ou pour permettre un accès depuis Internet à un Raspberry Pi situé dans un réseau
local, ce raccordement pose souvent question. C’est en particulier dû au fait que connecter quelque machine
derrière une box peut se faire aujourd’hui sans réelles compétences. Par contre en cas de dysfonctionnement, la
recherche de panne ne peut se faire qu’en s’appuyant sur la compréhension des mécanismes mis en jeu.
La présentation des bases de réseau qui suit ne se veut ni exhaustive ni parfaitement exacte. Elle contient un
minimum d’informations pour qu’un utilisateur découvrant ce domaine puisse configurer sa machine et comprendre le
fonctionnement du réseau.
Les solutions présentées dans ce chapitre ont uniquement un aspect pédagogique et n’abordent pas les problèmes de
sécurité des machines connectées à l’Internet. Soyez extrêmement prudent si un Raspberry Pi assurant des fonctions
importantes est accessible via Internet.
2. Comme une lettre à la poste
Un réseau informatique permet à différentes machines d’échanger des données. Ces données se présentent sous
forme de paquets contenant des 1 et des 0 qui sont envoyés sur les fils du réseau ou par radio dans le cas du WiFi.
Comme dans le cas du courrier que vous recevez tous les jours, les paquets comportent une adresse d’expéditeur
et une adresse de destination. Lorsqu’un paquet est envoyé sur le réseau, les appareils chargés de les distribuer
peuvent ainsi savoir vers quel autre appareil il faut le diriger. C’est exactement ce qui se passe avec une lettre que
vous déposez à la poste. L’acheminement de votre courrier se fait en fonction de l’adresse indiquée sur l’enveloppe.
L’acheminement des données peut se faire de façon matérielle (câble réseau) ou par radio (WiFi).
a. Attribution des adresses
Dans le réseau représenté cidessus figurent quelques appareils connectés uniquement à un switch (ou
commutateur). L’attribution des adresses est faite dans ce cas par l’utilisateur. On dit que l’adressage est
statique, puisque les adresses sont attribuées manuellement une fois pour toutes.
Appareil Adresse
Raspberry Pi 192.168.1.110
© Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas - 1-
Ordinateur portable 192.168.1.101
Tablette 192.168.1.102
Smartphone 192.168.1.103
Imprimante 192.168.1.200
b. Adresse physique
Avant qu’une adresse IP soit attribuée à un ordinateur, celuici doit quand même pouvoir communiquer sur le
réseau, en particulier s’il doit faire une requête pour obtenir son adresse IP automatiquement. Dans ce cas, le
début de la "conversation" se fait en utilisant l’adresse physique de la carte réseau. Le dialogue peut ensuite se
poursuivre en utilisant l’adresse IP quand l’ordinateur en a récupéré une.
L’adresse physique est aussi appelée adresse MAC (Media Access Control). Elle est unique (sauf si vous la
modifiez), car chaque interface réseau est numérotée par son constructeur.
Trouver l’adresse physique
pi@raspberrypi:~ $ ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:eb:84:90:03
adr inet6: fe80::613:94b0:2db4:d3ae/64 Scope:Lien
…
wlan0 Link encap:Ethernet HWaddr b8:27:eb:d1:c5:56
inet adr:192.168.1.110 Bcast:192.168.1.255
Masque:255.255.255.0
adr inet6: fe80::c0da:6a5d:7ed6:6aa3/64 Scope:Lien
Un ifconfig réalisé sur un Raspberry Pi 3 dont seule l’interface WiFi a été configurée montre que chaque
interface réseau possède une adresse physique.
Le port Ethernet eth0 possède l’adresse physique (HWaddr = Hardware address) b8:27:eb:84:90:03. Pour
l’interface wlan0 (WiFi) l’adresse est b8:27:eb:d1:c5:56.
L’adresse MAC est composée de 48 bits, soit 6 octets. Les trois octets de gauche identifient le constructeur (ici
b8:27:eb = la Fondation Raspberry) et les trois octets de droite représentent l’identifiant unique de l’interface.
Dans l’adresse MAC ou adresse physique, les octets sont conventionnellement écrits en hexadécimal.
c. Qu’estce qu’une adresse IP ?
IP (Internet Protocol) est le protocole adopté pour gérer l’échange d’informations sur le réseau Ethernet. Les
adresses IP sont les adresses utilisées par le protocole IP pour orienter les paquets vers leur destination.
Une adresse IP se compose de 4 octets (soit 32 bits), traduits en décimal comme une suite de quatre nombres
compris chacun entre 0 et 255 et séparés par un point.
L’adresse cidessus est un exemple de ce que vous pouvez observer sur votre Raspberry Pi. En mode graphique
- 2- © Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas
laissez un moment la souris sur l’icône réseau pour faire apparaître la configuration des interfaces :
La copie d’écran cidessus a été faite sur un Raspberry Pi connecté en WiFi (wlan0). Le port Ethernet (prise RJ45)
n’est pas connecté.
En mode texte, c’est la commande ifconfig qui fournit cette information :
pi@raspberrypi:~ $ ifconfig
wlan0 Link encap:Ethernet HWaddr b8:27:eb:d1:c5:56
inet adr:192.168.1.110 Bcast:192.168.1.255
Masque:255.255.255.0
...
L’adresse du Raspberry Pi sur l’interface wlan0 (le WiFi) est 192.168.1.110.
Dans un même réseau, chaque adresse IP doit être unique. Si deux ordinateurs possèdent la même adresse IP,
cela provoque un "conflit d’adresses"
d. Utilité du masque de sousréseau
L’adresse IP seule ne suffit pas à situer précisément un ordinateur dans un réseau. La donnée supplémentaire
indispensable s’appelle Masque de sousréseau, en anglais netmask ou subnetmask.
Ce masque de sousréseau peut être exprimé de deux façons :
l Par le nombre de bits à 1 qu’il comporte, ici 24 bits ce qui est indiqué en mode graphique par /24 :
l Par la conversion en décimal de ces 24 bits à 1 suivis de 8 bits à zéro : 255.255.255.0
Les deux formes sont équivalentes et désignent la même valeur.
Le masque de sousréseau permet de décomposer l’adresse IP en deux parties :
© Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas - 3-
l L’adresse du réseau dans lequel l’ordinateur se trouve.
l L’adresse de l’ordinateur luimême, aussi appelée adresse de l’hôte ou host address.
Calcul de l’adresse réseau
À partir de l’adresse de l’hôte et du masque de sousréseau, il est possible de déterminer dans quel réseau
l’ordinateur se situe. Cette opération est d’ailleurs effectuée systématiquement lorsqu’un ordinateur accède au
réseau.
Si on superpose comme cidessus l’adresse IP et le masque de sousréseau, le calcul de l’adresse du réseau
consiste à ne garder que les chiffres de l’adresse IP sous lesquels figure le nombre 255. Lorsque le masque vaut
0, cette partie de l’adresse réseau vaut également 0. Cette opération fournit l’adresse du réseau, ici 192.168.1.0.
L’opération réalisée entre l’adresse IP et le masque de sousréseau est un ET logique effectué en binaire.
L’opération est simple lorsque le masque n’est constitué que de nombres 255. Elle nécessite un peu plus de calculs
(conversions décimal > binaire puis binaire > décimal lorsque le masque de sousréseau est plus compliqué comme
255.255.240.0 par exemple…).
e. Adresse de l’hôte
Dans ce réseau, l’hôte a une adresse qui peut également être déduite de son adresse IP et du masque de sous
réseau : dans l’exemple précédent l’adresse de l’hôte est le nombre qui se trouve sous les 0 du masque de sous
réseau, c’estàdire 110.
Dans le réseau 192.168.1.0, les ordinateurs peuvent occuper toutes les adresses comprises entre 0 et 255 (à
quelques exceptions près comme expliqué plus loin). Cela signifie que les ordinateurs de ce réseau pourraient
avoir des adresses comprises entre 192.168.1.0 et 192.168.1.255.
Il y aurait donc la possibilité de connecter 256 machines à ce réseau.
- 4- © Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas
Masque de sousréseau différent
Le masque de sousréseau pourrait avoir une valeur différente. Par exemple /16 soit 255.255.0.0. Dans ce cas la
méthode de calcul reste exactement la même :
Cette fois le réseau est 192.168.0.0. La grande différence vient de l’adresse de l’hôte qui est notée cette fois sur 2
octets, soit 16 bits. Les adresses des ordinateurs de ce réseau peuvent aller de 0.0 à 255.255 (aux mêmes
exceptions près que précédemment). Cette fois ce sont 256 x 256 = 65536 machines qui pourront être connectées
au réseau.
Il existe des réseaux avec un masque à /8 soit 255.0.0.0. Dans ce cas ce sont plus de 16 millions de machines que
le réseau pourra accueillir.
f. Les adresses particulières
Réseau
L’adresse du réseau calculée précédemment est réservée pour le réseau. Conventionnellement, aucune machine
du réseau ne prend cette adresse. Dans les exemples précédents, les adresses 192.168.1.0 et 192.168.0.0 ne
pourraient pas être attribuées à un ordinateur, car ce sont des adresses réseau.
Broadcast
Lorsqu’un ordinateur fait une requête sur le réseau sans savoir à qui l’adresser, il l’envoie sur une adresse
particulière, appelée Adresse de diffusion ou Broadcast Address. Les données sont alors envoyées à toutes les
machines présentes sur le réseau. Cette adresse est par convention la dernière adresse disponible sur le réseau.
Dans les exemples précédents, cette adresse vaudrait 192.168.1.255 ou 192.168.255.255. Aucune machine du
réseau ne peut se voir attribuer cette adresse.
© Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas - 5-
L’utilisation de l’adresse de réseau et de l’adresse de diffusion réduit donc la plage d’adresses disponibles de deux
unités. Un masque de sousréseau en /24 autorisera donc en fait 254 adresses et un masque en /16 laissera
65534 adresses disponibles pour les hôtes.
Adresses privées
À l’intérieur d’un réseau local, les adresses utilisées sont obligatoirement des adresses privées. Ces adresses ne
peuvent pas être routées sur Internet et sont réservées à la seule utilisation dans les LAN (Local Area Network =
réseau local).
On entend souvent dire "une LAN" ce qui est faux, car il s’agit d’UN réseau local. En fait cette dérive provient de
l’organisation de jeux en réseau qu’on appelle "UNE LAN partie". Les participants à ces jeux et les geeks ont abrégé
en "une LAN" et appliqué ce genre au réseau. Les techniciens emploient l’expression "un LAN".
Si vous devez attribuer des adresses dans un réseau, il faut impérativement respecter ces plages d’adresses.
Toutes les autres adresses sont susceptibles d’être utilisées sur Internet et il faut éviter de les affecter à des
machines dans un réseau LAN.
Il existe quelques exceptions qui sont détaillées cidessous.
g. Les exceptions
Les réseaux réservés
Il existe deux réseaux réservés à des usages particuliers. Il ne faut donc pas les employer dans votre plan
d’adressage :
l Le réseau 127.0.0.0 est réservé pour les tests de boucle locale. Lorsque toutes les couches TCP/IP fonctionnent
correctement sur une machine, l’adresse IP 127.0.0.1 est l’adresse qui permet de tester le bon fonctionnement de
l’ensemble des programmes mis en œuvre pour TCP/IP (avec un ping par exemple). C’est la boucle locale de votre
PC également appelée localhost.
Ce test montre que la partie logicielle du réseau est bien installée et fonctionne sur le Raspberry Pi.
l Le réseau 0.0.0.0 est également réservé : il est utilisé pour définir une route par défaut sur un routeur.
Bien que translation soit le terme anglais d’origine, il est employé couramment par les techniciens en lieu et place
- 6- © Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas
de "traduction".
Adresse APIPA
L’adressage APIPA (Automatic Private Internet Protocol Addressing = adressage IP automatique) permet à un
système d’exploitation d’attribuer automatiquement une adresse IP à un ordinateur lorsque celleci n’a pas été
attribuée manuellement, et qu’il ne peut pas joindre un DHCP (voir cidessous). Les adresses APIPA sont
attribuées dans la plage 169.254.0.0/16. Les adresses vont de 169.254.0.0 à 169.254.255.255. Cette plage est
exclusivement réservée à cet usage.
h. Adresse publique
Les adresses publiques sont celles qui sont utilisées sur l’Internet. Elles comportent toutes les adresses non
mentionnées dans les exceptions précédentes.
Internet est le système qui relie les réseaux locaux entre eux = Inter Network.
3. Livraison à bon port
a. Ports TCP/IP
Sur un Raspberry Pi ou tout autre ordinateur, un grand nombre de services fonctionnent simultanément et doivent
pouvoir accéder à l’extérieur. Une seule adresse IP est disponible sur la carte réseau ou l’interface WiFi. Chaque
client présent se voit attribuer un numéro de port, codé sur 2 octets soit 16 bits. Le numéro de port peut donc être
compris entre 0 et 65535.
© Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas - 7-
Le terme Intranet utilisé sur le schéma cidessus indique un réseau interne à une entreprise. Un serveur web ou un
DNS opérant sur Internet ne pourraient pas envoyer de messages à l’adresse privée du Raspberry Pi.
Un certain nombre de numéros ports sont attribués par défaut à des services :
l 20 et 21 : FTP
l 22 : SSH
l 23 : TELNET
l 53 : DNS
l 80 : HTTP
l 443 : HTTPS
b. Utilisation des ports
Sur le schéma précédent représentant un réseau local d’entreprise, un client DNS et un navigateur web
fonctionnent. Ces deux clients ont reçu des numéros de port : 57972 pour le navigateur Web et 58093 pour le
client DNS.
Le serveur SSH a reçu le numéro de port par défaut correspondant à sa fonction, c’estàdire le port 22. Lorsque
l’ordinateur portable se connecte en SSH avec PuTTY, il ouvre une connexion sur le socket (voir paragraphe
suivant) 192.168.1.110:22. Le serveur SSH du raspberry Pi lui répondra sur le socket 192.168.1.111:26489.
Lorsque le navigateur Web fait une requête vers le serveur web, il ouvre une connexion TCP sur le socket
192.168.1.200:80. Le serveur web répond vers le socket 192.168.1.110:57972.
Le client DNS ouvre une connexion sur le socket 192.168.1.201:53. Le serveur DNS répond vers le socket
192.168.1.110:58093.
Ce mécanisme permet avec une seule adresse de gérer de multiples services, en attribuant à chacun un numéro
différent.
- 8- © Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas
c. Socket TCP/IP
Lorsque le Raspberry Pi échange des données avec le monde extérieur, il le fait par l’intermédiaire de sa prise
Ethernet (ou de son interface WiFi). Les données qui reviennent vers lui sont toutes à destination de l’adresse
unique de la carte réseau, ici 192.168.1.110. Mais chaque message comporte en plus de l’adresse du destinataire
un numéro de port. Ce numéro est indiqué à la suite de l’adresse IP, séparé par deux points
192.168.1.110:60351. Cette adresse complète, comportant l’adresse IP de la machine plus le numéro de port du
service concerné s’appelle socket. C’est le point de connexion qui va permettre à un client de se connecter à un
serveur, ou l’inverse.
4. Rôles de la box
Pour les particuliers, la solution la plus répandue pour se connecter à l’Internet est l’utilisation d’une box. De
nombreux FAI (fournisseurs d’accès Internet) proposent leur solution, chacun rivalisant de fonctionnalités pour
attirer le maximum de clients. Les fonctions principales des box, utilisées en réseau avec le Raspberry Pi sont
décrites cidessous.
a. Serveur DHCP
Aujourd’hui le nombre d’appareils connectés est en constante augmentation. On trouve souvent un PC de bureau,
un ordinateur portable, quelques tablettes, plusieurs smartphones et même un ou plusieurs Raspberry Pi !
Lorsqu’on ne souhaite pas gérer manuellement les adresses IP de chaque appareil connecté dans la maison, on
confie ce travail à un serveur DHCP (Dynamic Host Configuration Protocol = Protocole de Configuration Dynamique
des Hôtes).
Le rôle de serveur DHCP est généralement assuré par la box installée dans la maison. Cependant tout autre
serveur DHCP pourrait assurer la distribution des adresses… Un Raspberry Pi par exemple.
Requête DHCP
Lorsque vous mettez un Raspberry Pi (ou tout autre ordinateur) sous tension, les interfaces ne sont pas
initialisées et ne possèdent donc pas d’adresse IP.
l Le Raspberry Pi envoie une requête DHCP DISCOVER en broadcast, à destination de toutes les machines du réseau.
Cette requête comporte son adresse MAC, afin qu’il puisse recevoir une réponse.
l Un serveur DHCP existant sur le réseau, lorsqu’il reçoit ce type de requête, envoie une offre DHCP OFFER à
© Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas - 9-
destination de l’adresse physique du demandeur. Cette offre comporte l’adresse IP du serveur, l’adresse IP et le
masque de sousréseau que celuici propose au client.
l Le client reçoit l’offre (ou les offres s’il y a plusieurs serveurs DHCP sur le réseau). Il retient l’offre qu’il reçoit en
premier, puis diffuse en broadcast DHCP REQUEST. Ce message contient l’adresse IP du serveur DHCP destinataire
et l’adresse IP que celuici a proposée au client. Il demande au serveur concerné que l’adresse IP lui soit attribuée,
ainsi que l’envoi d’un certain nombre d’autres paramètres appelés options. Ce même message informe les serveurs
DHCP dont l’offre n’a pas été retenue qu’ils peuvent à nouveau disposer de l’adresse IP qu’ils avaient proposée.
l Le serveur DHCP retenu prépare un message d’accusé de réception (DHCP ACK = validation de la demande) pour
transmettre au client son adresse IP, son masque de sousréseau, la durée du bail pour cette adresse et
éventuellement des options comme l’adresse IP de la passerelle par défaut, le serveur DNS… (voir plus loin).
l Le serveur DHCP enregistre l’adresse IP qu’il a distribuée, l’adresse MAC du client concerné.
l Le client conserve la même adresse pour une durée égale à la moitié du bail.
À partir de ce moment, il demande périodiquement au serveur qui la lui a attribuée, le renouvellement de son
adresse, qu’il conservera alors. Comme le client a une adresse IP valide, ces échanges se font avec les adresses IP
du client et du serveur. Si le renouvellement de l’adresse est impossible pour une raison ou une autre, lorsqu’on
arrive à 87,5 % de la durée du bail le client refait une demande d’adresse en broadcast.
l Si le client est inactif plus longtemps que la durée du bail, il redemande une nouvelle adresse au démarrage suivant
et peut éventuellement obtenir une adresse différente.
Avec l’utilisation d’un serveur DHCP, la gestion de l’attribution des adresses dans un réseau local est entièrement
automatisée. Il est possible de définir finement le fonctionnement du DHCP comme la plage des adresses
distribuées, les réservations ou exclusions d’adresses… Si vous devez configurer un serveur DHCP l’importante
documentation en ligne disponible viendra à votre secours.
Le DHCP résout le problème des conflits d’adresses, car il gère la distribution d’adresses IP uniques. Cependant si
dans le même réseau une machine configurée manuellement possède la même adresse IP qu’une des machines
gérées par le DHCP, cela provoquera un conflit d’adresses.
b. Nom de domaine
Quotidiennement vous devez consulter de nombreux sites web, pour votre travail ou à titre personnel. Chaque
serveur hébergeant un site web possède sa propre adresse IP. Imaginez que vous soyez obligé de retenir par
cœ ur une quantité d’adresses :
l 172.217.19.131 pour accéder à Google,
l 74.6.50.24 pour accéder à Yahoo,
l 176.34.135.167 pour accéder à Duckduckgo,
l 145.242.11.48 pour accéder au site des impôts,
l etc.
Si les machines s’accommodent parfaitement de cela, cette mémorisation de suite de chiffres deviendrait vite
contraignante pour un utilisateur humain. C’est pour éviter cette utilisation des adresses IP que le nom de
domaine a été créé.
Il est beaucoup plus facile de mémoriser un nom qu’un chiffre. Il a donc été décidé de créer des domaines pour
faciliter l’utilisation de l’Internet. En voici quelques exemples :
.fr est le domaine qui contient les ordinateurs enregistrés auprès de l’AFNIC (Association Française pour le
Nommage Internet en Coopération).
- 10 - © Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas
.com est le domaine qui contient les ordinateurs hébergeant des activités commerciales
.org est le domaine qui contient les ordinateurs hébergeant des organisations à but non lucratif.
À l’intérieur de ces domaines, chaque site web par exemple reçoit un nom unique, choisi par le créateur du site. En
fonction du domaine concerné, les conditions d’attribution des noms peuvent aller d’une totale liberté (premier
arrivé, premier servi) à des règles très strictes (identification, fourniture de documents…). Voici quelques
exemples : raspberrypi.org, framboise314.fr, debian.org. Chacune des machines hébergeant ces sites web a une
adresse IP, il faut donc un système permettant de traduire automatiquement l’adresse littérale saisie par
l’utilisateur en adresse IP, utilisable par les systèmes de gestion d’Internet. C’est le rôle dévolu au DNS.
c. DNS
Lorsque vous saisissez une adresse dans votre navigateur web, celuici ne sait pas à quelle adresse il doit aller
chercher la page que vous souhaitez afficher. Il s’adresse alors au DNS (Domain Name Server = serveur de nom de
domaine) qui lui a été désigné.
Sur un Raspberry Pi sous Raspbian Jessie, le DNS utilisé est enregistré dans le fichier /etc/resolv.conf.
Généralement l’adresse DNS fournie par une box ou un routeur est la propre adresse de la box ou du routeur qui
joue le rôle de relais. Un relais DNS renvoie les requêtes auxquelles il ne peut répondre vers le DNS du FAI
(fournisseur d’accès Internet).
Le client (votre navigateur web) envoie sa requête au DNS sous la forme "Peuxtu me dire quel est l’adresse de
www.google.fr ?" (par exemple).
l Si le relais DNS local a déjà traité cette requête, il a gardé la réponse en cache (en mémoire) et répond
instantanément en renvoyant l’adresse IP correspondant à www.google.fr.
l Si le relais DNS local ne connaît pas la réponse, il interroge le DNS du FAI.
n Si celuici connaît l’adresse IP de www.google.fr, il la renvoie au relais DNS de votre box.
n Si le DNS du FAI ne connaît pas l’adresse IP demandée, il interroge un serveur DNS "spécialiste" du .fr, appelé
serveur racine, qui lui fournit les adresses de serveurs DNS pouvant lui indiquer l’adresse IP de Google.
n Le DNS du FAI interroge alors le premier serveur DNS de la liste pour obtenir l’adresse IP de www.google.fr. S’il
l’obtient, il la garde en cache (pour éviter de la redemander par la suite) et transmet la réponse au relais DNS
de votre box… qui l’envoie enfin à votre navigateur.
n S’il n’obtient pas la réponse, il interroge le second serveur DNS de la liste, etc.
On voit que l’obtention de l’adresse IP correspondant à l’URL (Uniform Resource Locator = localisateur uniforme de
ressource) www.google.fr n’est pas instantanée et peut nécessiter plusieurs requêtes avant que le nom soit
"résolu" en adresse IP.
L’adresse de DNS figurant sur un ordinateur est parfois directement l’adresse du DNS du FAI. Lorsque deux DNS
sont renseignés dans la configuration, le second DNS est appelé secondaire. Il est consulté si le premier DNS n’a
pas pu fournir l’adresse IP demandée (encombrement, panne…).
© Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas - 11 -
Le DNS peut être comparé à un annuaire, contenant les adresses IP de tous les serveurs du monde, associées à
leur nom. Cette gigantesque base de données fournit à chaque demande qu’elle reçoit l’adresse IP correspondant
à l’URL saisie par un utilisateur.
Lorsqu’on achète un nom de domaine, on paye au registrar qui vend ce service l’inscription du nom de domaine
dans la base de données mondiale des noms de domaine. Le registrar met en place une entrée DNS, qui relie le
nom de domaine que vous avez acheté à l’adresse IP du serveur hébergeant votre site.
d. Passerelle
Un autre paramètre important à renseigner lors de la configuration d’un Raspberry Pi sur le réseau est l’adresse
de la passerelle (Gateway).
Pour comprendre ce que représente la passerelle dans le réseau local, imaginez que vous circulez en voiture. Vous
roulez en direction de Nevers. Vous arrivez à un rondpoint :
Les panneaux indicateurs montrent la route vers Dijon et vers Mâcon. Aucune de ces directions ne vous convient…
Vous prendrez donc la direction indiquée par le panneau "AUTRES DIRECTIONS".
Dans un réseau, une machine qui envoie des données à une machine située dans le même réseau local sait qu’elle
peut le faire sans problème (voir plus haut pour le calcul de l’adresse du réseau).
Si le calcul de l’adresse réseau montre que la machine destinataire n’est pas dans le même réseau, la seule
solution est de l’envoyer sur la route "AUTRES DIRECTIONS", c’estàdire vers la passerelle.
La passerelle est l’adresse vers laquelle sont envoyées les données qui ne sont pas destinées à des machines
appartenant au même réseau local que l’émetteur. Cette adresse correspond à une interface de routeur, située
dans le réseau local. L’adresse de cette interface est donc obligatoirement dans le même réseau local que les
machines qui l’utilisent. Sans que ce soit une obligation, l’adresse IP de la passerelle est souvent la dernière
adresse disponible dans le réseau (juste avant l’adresse de broadcast). Ici ce sera 192.168.1.254.
Un routeur est un équipement de réseau chargé d’assurer le routage entre deux interfaces situées chacune dans un
réseau différent. Dans une box, il est intégré au boîtier.
- 12 - © Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas
L’autre côté du routeur est connecté à l’Internet. L’adresse publique côté Internet (82.223.216.82) est attribuée
par le FAI. Pour certains FAI cette adresse publique peut être fixe, pour d’autres FAI elle change régulièrement.
Exemple de consultation de site web
Les éléments du réseau commencent à se mettre en place. Revoyons le fonctionnement de cet ensemble.
l Vous mettez le Raspberry Pi sous tension. Il contacte le serveur DHCP pour obtenir une adresse. Le DHCP lui
attribue l’adresse IP 192.168.1.110.
l Le Raspberry Pi démarre, vous lancez le navigateur web. Dans la barre d’adresse, vous tapez google.fr.
l Le navigateur interroge le relais DNS pour obtenir l’adresse IP de google.fr.
l Le relais DNS renvoie l’adresse IP 216.58.211.99 qui est l’adresse d’un des serveurs de google.fr
l L’ordinateur regarde si l’adresse 216.58.211.99 se trouve dans son réseau. Pour cela il utilise sa propre adresse IP
192.168.1.110 et son masque de sousréseau 255.255.255.0.
l Le réseau du serveur de Google 216.58.211.0 est différent de celui du Raspberry Pi 192.168.1.0. Le Raspberry Pi ne
peut pas envoyer de requête à un ordinateur situé en dehors de son réseau local. La seule solution dont il dispose,
c’est de transmettre sa requête à l’adresse de passerelle qui lui a été indiquée.
l Le Raspberry Pi envoie sa requête à la passerelle (donc au routeur). Le rôle du routeur va être de gérer l’envoi de la
requête sur l’Internet jusqu’au serveur Google, à travers quantité d’autres routeurs…
l Le serveur Google reçoit la requête générée par le Raspberry Pi, il y répond en renvoyant la page d’accueil du
service. Cette page revient jusqu’au routeur de la box.
Pendant ce temps…
l Un autre utilisateur a fait une requête sur la tablette connectée au réseau local pour accéder au moteur de recherche
DuckDuckGo.
l La même séquence que précédemment se déroule jusqu’au retour de la page d’accueil de DuckDuckGo jusqu’au
© Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas - 13 -
routeur de la box.
Le routeur vient de recevoir deux pages web envoyées à destination de son adresse publique, puisque c’est lui
qui a envoyé la requête sur l’Internet. Pour pouvoir gérer ces requêtes multiples dont les réponses lui
parviennent, le routeur met en œ uvre la technique NAT.
e. Routeur NAT
La mise en œ uvre de la fonction NAT dans une box ou un routeur permet aux multiples machines d’un réseau local,
disposant chacune d’une adresse IP privée différente de communiquer avec des serveurs situés sur l’Internet à
partir d’une unique adresse publique.
Principe du routeur NAT
Le routeur se retrouve un peu dans la situation que rencontre le concierge d’un immeuble à qui le facteur a remis
tout le courrier destiné aux entreprises de l’immeuble.
Le concierge dépose dans la boîte de chaque entreprise le courrier qui lui est destiné. La personne chargée de la
distribution du courrier de chaque entreprise récupère ce courrier dans la boîte à lettres de l’entreprise. Une fois
arrivée dans l’entreprise, elle distribue le courrier aux personnes concernées.
Un routeur NAT fonctionne de la même manière : lorsqu’il reçoit des données venant de l’Internet à destination
des ordinateurs du réseau local. Il envoie les données vers chaque ordinateur destinataire en fonction de
l’adresse IP du destinataire, puis ces données sont dirigées vers les services en fonction des numéros de ports.
C’est le principe (simplifié) de la fonction NAT du routeur.
Fonctionnement du routeur NAT
Lorsqu’un ordinateur du réseau local souhaite contacter un serveur sur l’Internet, il envoie sa requête à la
passerelle du réseau local avec son adresse IP et le numéro de port qu’il utilise. Le routeur retransmet la demande
sur l’Internet. Il remplace auparavant l’adresse de l’ordinateur par sa propre adresse et le numéro de port par un
numéro aléatoire qu’il mémorise dans un tableau.
Le serveur qui a reçu la requête répond en renvoyant des données en direction du routeur sur le numéro de port
que celuici a indiqué :
- 14 - © Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas
Sur le schéma précédent (disponible en téléchargement au format PDF pour une meilleure lisibilité) le Raspberry Pi
envoie une requête HTTP vers un serveur web situé sur l’Internet via une box qui assure la fonction de routeur
NAT. Pour gérer les données qui reviennent du serveur, le routeur NAT tient à jour une table qui lui permet de
savoir vers qui les envoyer sur le réseau local :
© Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas - 15 -
Dans l’exemple cidessus, la table indique que tout le trafic IP reçu par le routeur sur le port externe 5142 doit être
envoyé vers le port 60351 du Raspberry Pi, à l’adresse IP 192.168.1.110.
Conclusion
Le routeur NAT intégré dans les box offre la possibilité de partager une unique adresse publique entre de
nombreux ordinateurs d’un réseau local, en utilisant la translation d’adresse. D’autre part différents réseaux
locaux peuvent utiliser les mêmes plages d’adresses sans interférer les uns avec les autres, puisque ces adresses
sont masquées par le routeur NAT et n’apparaissent jamais sur l’Internet.
Le NAT a été un des moyens utilisés pour résoudre momentanément la pénurie d’adresses IPv4. Le démarrage
difficile de la nouvelle norme IPv6 va sans doute faire perdurer cette situation.
5. Accéder à un Raspberry Pi depuis Internet
Lorsqu’on utilise un Raspberry Pi, en particulier pour des applications domotiques, il est intéressant de pouvoir se
connecter de n’importe où, pour vérifier une température, ou pour commander la mise en route d’un appareil à
distance.
Deux difficultés freinent cette utilisation :
l Il est difficile de se souvenir de l’adresse publique de la box et avec certains fournisseurs, cette adresse change
régulièrement.
l La box ne laisse pas passer les requêtes venant de l’extérieur à destination des machines du réseau local qu’elle gère.
Chacun de ces obstacles peut être contourné en utilisant les moyens présentés dans les paragraphes qui suivent.
a. DNS dynamique
Le DNS dynamique permet d’associer un nom de domaine à l’adresse IP publique de votre box, même si cette
adresse change régulièrement.
Les solutions disponibles
Il existe plusieurs solutions en ligne pour remplir cette fonction. Historiquement c’est Dyndns (www.dyndns.fr) qui a
créé un service gratuit. Depuis le service est devenu payant (33 € HT/an pour un particulier).
Actuellement (juillet 2016) NoIP propose une solution de DNS dynamique gratuite (www.noip.com). Le choix de nom
de domaine est limité et il faut confirmer la réservation tous les 30 jours en répondant à un mail.
Fonctionnement du DNS dynamique
Certaines box et des routeurs embarquent un logiciel client pour DynDNS et/ou NoIP. Sur un routeur TPLink TD
W8980 une rubrique Dyn DNS permet de paramétrer un compte NoIP pour accéder au réseau local depuis
l’Internet.
- 16 - © Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas
On voit que le nom de domaine raspxxxxx.noip.biz est un sousdomaine de noip. Cela signifie que c’est le DNS de
NoIP qui tiendra à jour votre adresse IP en relation avec le nom de domaine que vous aurez choisi. Lorsque vous
(ou un autre utilisateur) tentera de se connecter en utilisant le nom de domaine enregistré par NoIP, la requête
DNS sera transmise au serveur DNS de NoIP qui retournera l’adresse IP de votre box au demandeur.
Tout n’est pas si simple
Si c’est un navigateur web qui effectue la requête, il l’enverra vers le port 80 de votre box. Or la box ne dispose
pas d’un serveur web… De même si vous tentez de vous connecter avec PuTTY, votre requête sera envoyée sur
l’adresse publique de la box, cette fois sur le port 22. Dans les deux cas, la box ne pourra pas répondre, car elle
ne dispose pas des serveurs demandés. Elle ne transmettra pas non plus les requêtes aux serveurs existant dans
le réseau local. Elle n’a aucun moyen de savoir vers quelle adresse du réseau elle doit faire suivre ces requêtes.
b. Redirection de port
Appelé également Port Forwarding ou redirection de port, le mappage de port permet de répondre à cette
problématique. Cette technique va lier un port côté adresse publique (Internet) avec l’adresse IP et le port d’un
ordinateur connecté au réseau local (adresse privée).
Prenons l’exemple d’une maison équipée de deux Raspberry Pi chargés pour l’un de la surveillance (alarme), pour
l’autre de la gestion du chauffage.
Le Raspberry Pi en charge de l’alarme (à gauche sur le schéma cidessus) est accessible en page Web à l’adresse
192.168.1.110:80. Il dispose également d’un accès SSH permettant de se connecter en mode texte à distance.
© Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas - 17 -
Le Raspberry Pi chargé de la gestion du chauffage est accessible à l’adresse 192.168.1.101:80.
L’un des utilisateurs des deux ordinateurs portables connectés à Internet souhaite consulter l’état de l’alarme. Il
se connecte avec un navigateur Web sur l’adresse publique de la box, soit directement soit en passant par NoIP.
Sa requête arrive sur le port externe 80. La box envoie cette requête sur le port 80 du Raspberry Pi
192.168.1.110. Le serveur web du Raspberry envoie en retour vers le navigateur la page web contenant les
éléments demandés.
L’autre utilisateur veut régler le chauffage. Il se connecte également sur l’adresse de la box. Mais cette fois
l’adresse utilisée est suivie de :8080. La requête arrivant sur ce port est renvoyée par la box sur le port 80 du
Raspberry Pi 192.168.1.101. Le serveur web de ce Raspberry Pi renvoie vers le navigateur la page de gestion du
chauffage.
Il peut arriver qu’une connexion SSH soit nécessaire. C’est le Raspberry Pi 192.168.1.110 qui fournit ce service sur
le port 22. Pour ne pas faciliter la tâche d’éventuels intrus, le port externe a été choisi au hasard : 6954. Il sera
mappé sur le port 22 du Raspberry Pi.
Certaines box ou routeurs utilisent le port externe 80 pour la gestion distante. Dans ce cas il faudra utiliser un autre
port et ajouter le port à l’adresse dans le navigateur.
Le tableau cidessus indique la configuration à effectuer dans la box ou le routeur pour mettre en œ uvre la
redirection de port.
Dans la pratique, le routeur gère une unique table qui regroupe les informations statiques de redirection de ports
et les informations dynamiques générées par le routage NAT (vu plus haut). C’est cette table qui lui sert à
déterminer les destinataires respectifs des paquets reçus.
6. Box Internet
Arrivé au terme de cette initiation au réseau, il devient possible d’esquisser le schéma d’une box Internet. Toutes
les fonctions ne sont pas encore présentes, mais les principales fonctions liées au réseau figurent dans ce
synoptique.
- 18 - © Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas
En entreprise les fonctions présentées ici sont assurées par des serveurs, switches, routeurs et bornes WiFi
séparés.
© Editions ENI – Tous droits réservés – Copie personnelle de undefined POIRIER Thomas - 19 -