Réseau de plusieurs machines
La fiche mémo est ici.
Qu'est-ce qu'Internet ?
Ce qu'on appelle Internet est en fait l'interconnexion entre eux d'une multitude de réseaux plus ou moins grands, qui "parlent" tous la même langue, c'est à dire qui s'échangent des informations en suivant le même protocole, c'est à dire le même ensemble de règles de communication de façon à se comprendre.
De très nombreux protocoles de communication réseau ont été développés et utilisés, celui utilisé sur internet est le protocole TCP/IP.
( Remarque : on appelle intranet le réseau informatique de certaines entreprises, qui utilise le protocole TCP/IP mais qui n'est pas directement relié à internet. )
Dans ces réseaux, des machines peuvent être accessibles directement les unes aux autres, par exemple quand elles font partie du réseau d'une même entreprise. Dans d'autres cas, elles ne sont pas accessibles directement entre elles, pour diverses raisons notamment de sécurité.
Dans le premier cas, on dit que les machines sont sur le même sous-réseau. Internet est ainsi "cloisonné" en une multitude de sous-réseaux plus ou moins gros :
- un réseau local ( LAN = Local Area Network ) comporte un nombre restreint de machines, quelques dizaines tout au plus; c'est par exemple le cas d'un réseau au sein d'une entreprise ou d'un établissement scolaire
- des réseaux locaux peuvent être eux-mêmes interconnectés au sein de MAN ( Metropolitan Area Network ) ou de WAN ( Wide Area Network )
- enfin, internet représente le "WAN ultime", le "réseau des réseaux" qui interconnecte tous les réseaux au niveau mondial.
Comment tout cela est-il physiquement relié ?
Une machine donnée ne possède en général qu'une seule interface réseau, elle ne peut dont être relié physiquement qu'à une seule autre machine.
Pour constituer des réseaux plus gros, on utilise alors différents équipements.
Voila un exemple très simple d'un réseau de 6 machines divisé en 2 sous-réseaux; les deux sous-réseau sont indépendants :
- au sein d'un même sous-réseau, les hôtes sont reliés entre eux soit par un dispositif très simple analogue à une "prise réseau multiple" appelé hub ou concentrateur, qui se contente d'envoyer à tous les hôtes l'ensemble des trames qui circulent sur le réseau ( à charge de chaque hôte de déterminer si ce message le concerne ), soit par un équipement un peu plus "subtil" appelé switch ou commutateur réseau, qui "aiguille" les messages en fonction de l'adresse MAC de la machine de destination ( voir ci-dessous)
- pour "passer" d'un sous-réseau à l'autre, il faut un équipement qui pourra faire la "passerelle" entre les sous-réseaux car ils ne peuvent pas directement communiquer.
Ce dispositif s'appelle un routeur. Pour cela, il garde en mémoire une table de routage, qu'il met régulièrement à jour, et qui lui permet "d'aiguiller" correctement les informations d'un réseau à un autre.
Un routeur peut très bien faire le lien entre plus de deux sous-réseaux selon le nombre d'interfaces réseaux qu'il possède..
Il va falloir savoir à qui s'adresser...
De la même façon que vous pouvez recevoir du courrier grâce à votre adresse postale, une machine peut échanger au sein du réseau à partir du moment où elle dispose d'une adresse qui permet de l'identifier sans ambiguité.
L'adressage est le maillon essentiel des protocoles TCP/IP pour rendre transparents les détails physiques des réseaux et faire apparaître l'Internet comme une entité uniforme.
Les adresses sur les réseaux sont numériques; deux familles d'adresses existent :
Une adresse "matérielle", l'adresse MAC ( = Media Access Control ) :
Tout matériel réseau ( carte réseau, wifi, ...) dispose d'une adresse MAC unique au niveau mondial, attribuée "en dur" dès la fabrication par le constructeur du dispositf.
L'adresse MAC ne change donc jamais et permet d’identifier chacun des périphériques réseau, notamment sur un réseau local.
Elle se présente sous une forme numérique de 6 nombres représentés en hexadécimal et correspondant chacun à un octet : XX:XX:XX:XX:XX:XX.
Les 3 premiers nombres permettent d’identifier le fabricant de l’appareil; par exemple, 00:E0:4C:XX:XX:XX désigne le constructeur "Realtek Semiconductor Corp".
Une adresse "réseau", l'adresse IP ( = Internet Protocol )
Elle permet elle d’identifier une connexion à un réseau. On communique en s'adressant à une adresse IP donnée, pas directement une adresse MAC; toutefois, elle peut est amenée à changer : si vous utilisez le même appareil pour vous connecter à internet depuis un autre endroit, votre adresse IP ne sera plus la même car l’adresse IP dépend du réseau utilisé.
Un protocole particulier, le protocole ARP ( = Address Resolution Protocol ), permet alors de déterminer l'adresse MAC de la machine connectée à ce moment avec cette adresse IP. Pour faire correspondre les adresses matérielles aux adresses réseaux, le protocole ARP interroge les machines du réseau afin de connaître leur adresse matérielle et d’en créer une table de correspondance, dans une mémoire cache. Ainsi, lorsqu’une machine doit communiquer avec une autre, elle n’a qu’à consulter cette table de correspondance.
C'est pourquoi, plutôt que de "machines", on préfère parler d'hôtes sur un réseau, au sens où la machine concernée est alors "invitée" sur cette IP...
Deux catégories d'adresse IP existent :
- adresses IPv4 : elles sont constituées de 4 octets ( soit 32 bits ), exprimés généralement en base 10. Exemple :
172.174.96.2.
Leur nombre paraissait énorme et bien suffisant à l'époque de leur introduction, mais les adresses IPv4 disponibles deviennent actuellement de moins en moins nombreuses à cause de la croissance vertigineuse du nombre de machines connectées. - on est donc en train de passer progressivement à un autre type d'adresses, les adresses IPv6 : elles sont codées sur 16 octets ( soit 128 bits ), ce
qui donne le temps de voir venir...Du fait de leur longueur, on préfère les exprimer sous forme hexadécimale. Exemple :
fe80::7961:9173:9e5f:1d8c
IP publique, IP privée
Certains réseaux ( que l'on appelle LAN = Local Area Network ) ne sont pas directement reliés à internet, comme par exemple les machines composant l'intranet d'une société,
d'un lycée ( c'est le cas à Vaugelas ! ) ou celles d'un réseau domestique.
Ces machines ne sont pas "visibles" depuis l'extérieur et ne peuvent pas non plus directement "aller sur Internet"; comment font-elles alors pour y accéder ?
Il faut pour cela qu'une machine du réseau appelée serveur NAT ( c'est chez soi la "box" qui généralement fait ce travail ), qui dispose de deux cartes réseau, fasse "le lien" vers ou depuis l'extérieur du réseau.
Chacune des cartes réseau de cette machine dispose de sa propre IP :
- celle "dirigée" vers l'intérieur du réseau dispose d'une IP dans la plage correspondant au plan d'adressage du réseau ( c'est donc une IP privée, c'est à dire valable uniquement sur le réseau et "invisible" de l'extérieur ).
- celle vers l'extérieur a une IP publique, visible depuis le reste du réseau mondial.
Le rôle du serveur NAT est alors de "traduire" l'IP privée de l'hôte en l'IP publique lorsqu'une machine du réseau local cherche à accéder à internet; c'est pourquoi un serveur NAT est appelée une passerelle ( = gateway ).
Ce mécanisme permet d'utiliser des adresses IP identiques à différents "endroits" du réseau Internet sans risquer que deux machines aient la même IP puisque les IP privées sont "invisibles" depuis l'extérieur et donc des autres réseaux locaux...C'est aussi une façon, avant l'adoption généralisée des adresses IPv6, "d'économiser" les adresses IPv4 !
Des plages d'adresse IP sont réservées aux IP privées, ces plages d'adresse sont "interdites" sur internet, et les équipements qui en gèrent le trafic les ignorent :
- les adresses
10.0.0.0/8pour les très grands réseaux - les adresses
172.16.0.0/12pour les réseaux moyens, comme ceux des établissement scolaires par exemple - les adresses
192.168.0.0/16pour les réseaux domestiques, comme chez vous sans doute
Avec la généralisation des adresses IPv6, le besoin de mécanismes comme le NAT devrait disparaître.
IP fixe ou dynamique
L'administrateur d'un réseau peut attribuer à une machine une IP fixe lorsque cette machine est destinée à être connectée en permanence et redémarrée très rarement, comme un serveur par exemple.
A l'inverse, pour la majorité des machines, une IP "temporaire" suffit puisque l'on n'a pas besoin en général d'être connecté en permanence; cela permet de gérer au mieux les adresses IP et d'éviter les connexions consommant inutilement des ressources réseau. Dans ce cas, l'adresse IP de la machine changera d'une session à l'autre, elle sera dynamique.
Le mécanisme qui permet d'allouer une IP dynamique à la machine d'un réseau s'appelle le protocole DHCP ( = Dynamic Host Configuration Protocol ) : il nécessite qu'une machine sur le réseau dispose d'un logiciel appelé serveur DHCP permettant d'attribuer une IP dynamique aux autres machines du réseau. Chez vous, c'est (aussi) votre box internet qui joue ce rôle.
Moi, quand j'vais sur internet, j'écris pas des chiffres...
Effectivement, retenir 217.70.184.5 plutôt que "www.qwant.fr", ce n'est pas très pratique...
Aux débuts d'internet, pour accéder à un site, il fallait entrer l'IP du serveur sur lequel ce site était hébergé ( c'est toujours valable : vous pouvez entrer une IP dans la barre d'adresse d'un navigateur, vous verrez, ça marche ! )
Mais avec la multiplication très rapide des sites en ligne, cela est vite devenu très compliqué, au même titre qu'il nous serait impossible de retenir les numéros de téléphone de tous nos contacts; on a donc mis en place un protocole qui permet d'associer un nom à l'IP du serveur qui héberge un site : le protocole DNS ( = Domain Name Service ). C'est en gros un "annuaire" d'internet.
Ce nom, plus simple à retenir, est appelé nom de domaine. Résoudre un nom de domaine consiste à trouver l'adresse IP qui lui est associée.
Ce service nécessite là aussi qu'une machine sur le réseau joue le rôle de résolveur DNS : lorsque vous entrez une adresse dans la barre d'adresse d'un navigateur, c'est en fait ce serveur que vous interrogez, charge à lui de vous fournir ensuite l'IP associée au nom de domaine au bout d'un processus plus ou moins complexe..
C'est généralement votre fournisseur d'accès qui héberge ce service, mais il est aussi possible de choisir le serveur DNS que l'on préfère utiliser, ou en cas de "panne" du serveur habituel ( c'est rare, mais ça arrive... ).
Au niveau mondial, un ensemble de machines hébergent les 13 serveurs racines d'internet qui constituent la "clef de voûte" du système DNS.
Exploration d'un environnement réseau local
Quelques commandes
Sous Linux, ouvrir un terminal et entrer les commandes suivantes : ( voir cette page pour l'équivalent de ces commandes sous Windows )
Connaître ses adresses MAC et IP privée
user@host:~$ ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default
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: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:4f:41:81 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.100/28 brd 192.168.56.255 scope global eth0
inet6 fe80::a00:27ff:fe4f:4181/64 scope link valid_lft forever preferred_lft forever
3: wlan0: mtu 1500 qdisc noqueue state UP group default
link/ether 08:00:27:5b:b3:66 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.101/30 brd 192.168.56.255 scope global wlan0
inet6 fe80::a00:27ff:fe5b:b366/64 scope link valid_lft forever preferred_lft forever
La liste de toutes les interfaces réseau s'affiche :
- la première est l'interface de rebouclage ( = loopback ): il s'agit de sa propre machine ( = localhost ) sur le réseau. On peut se demander quel intérèt il y a de pouvoir s'adresser à sa propre machine, mais certains mécanismes l'exigent
comme par exemple pour faire des tests ou alors pour faire fonctionner un serveur web local lorsqu'on développe un site et que l'on souhaite le tester avant de le mettre en ligne.
L'IPv4 correspondante est ici127.0.0.1/8, ce qui signifie que toute la plage de127.0.0.0à127.255.255.255est assignée à cette interface. - les suivantes sont les interfaces réseaux physiques, avec les interfaces filiaires puis éventuellement les interfaces wifi.
Pour chaque interface :
link/etherdonne l'adresse MAC de l'interfaceinetdonne son IPv4brdest l'adresse de diffusion ( = broadcast ) ( ici192.168.56.255) : elle sert à envoyer un message à toutes les machines en même temps, de façon par exemple à savoir si elles sont toujours en ligne ou alors leur demander leur adresse MAC.
Cette adresse est souvent la dernière de la plage d'adresses utilisée par le réseau.inet6donne l' IPv6 de la machine.
Connaître son IP publique :
user@host:~$ curl ifconfig.me
77.178.49.156
Tester la connexion vers une IP ou un nom de domaine
user@host:~$ ping www.qwant.fr
PING webredir.gandi.net (217.70.184.56) 56(84) bytes of data.
64 bytes from webredir.gandi.net (217.70.184.56): icmp_seq=1 ttl=52 time=66.5 ms
64 bytes from webredir.gandi.net (217.70.184.56): icmp_seq=2 ttl=52 time=46.2 ms
64 bytes from webredir.gandi.net (217.70.184.56): icmp_seq=3 ttl=52 time=45.6 ms
....
La commande ping permet d'envoyer des requètes vers un nom de domaine ou une IP ( selon le protocole ICMP ) afin d'en tester l'accessibilité; la commande permet en retour de connaître l'IP associée
au nom de domaine, mais également de connaître le temps de réponse du serveur qui l'héberge. Faire CTRL-C pour arrêter l'éxécution.
Connaître son environnement réseau
La commande ip neighbor permet de visualiser la table de correspondance IP/MAC de toutes les machines actuellement connectées au réseau local.
user@host:~$ ip neighbor
172.22.99.36 dev eno1 lladdr 40:1a:58:ad:52:03 STALE
172.22.99.234 dev eno1 lladdr b4:22:00:81:80:29 STALE
172.22.99.231 dev eno1 lladdr b4:22:00:81:80:49 STALE
172.22.99.229 dev eno1 lladdr 00:80:91:da:33:3f STALE
....
Voir le "chemin" suivi pour atteindre un hôte
La commande traceroute permet de connaître les "sauts" de machine en machine que doit faire un message pour atteindre sa destination sur un réseau; pour chaque routeur traversé, la commande affiche l'IP et le nom
de l'hôte correspondant ainsi que la durée de chaque "saut".
On peut l'éxécuter sur une IP du réseau local :
user@host:~$ traceroute 192.168.1.28
traceroute to 192.168.1.28 (192.168.1.28), 30 hops max, 60 byte packets
1 192.168.1.28 (192.168.1.28) 268.088 ms 268.027 ms 269.261 ms
Dans ce cas, il n'y a qu'un seul saut puisqu'aucun routeur ne se situe entre les machines d'un même réseau local.
Mais on peut aussi l’exécuter sur un nom de domaine ou une IP distante, et on voit à quel point le chemin suivi peut être compliqué...
user@host:~$ traceroute www.qwant.fr
traceroute to www.qwant.fr (217.70.184.56), 30 hops max, 60 byte packets
1 Freebox-Server.local (192.168.1.254) 4.130 ms 4.071 ms 4.095 ms
2 ita73-5-97.205.44.244.fbx.proxad.net (97.205.44.244) 59.065 ms 67.350 ms 71.688 ms
3 * * *
4 194.149.170.78 (194.149.170.78) 93.657 ms 96.216 ms 101.899 ms
5 lyon-crs16-1-be1004.intf.routers.proxad.net (212.27.50.209) 115.368 ms 115.341 ms 124.029 ms
6 th2-crs16-1-be2001.intf.routers.proxad.net (212.27.59.29) 128.239 ms 47.300 ms 53.372 ms
7 194.149.166.54 (194.149.166.54) 56.978 ms 44.779 ms 49.365 ms
8 free-bzn.th2-1.rt.hopus.net (37.77.34.60) 54.284 ms 58.978 ms 64.154 ms
9 lag-th2-1.pa3-1.rt.hopus.net (37.77.32.11) 69.143 ms 73.729 ms 107.034 ms
10 gandi.pa3.hopus.net (37.77.38.5) 81.138 ms 85.110 ms 90.730 ms
11 * * *
12 vlan548-br0.lf-3-b.sd4.ip4.gandi.net (217.70.176.123) 67.710 ms 67.556 ms 67.822 ms
13 webredir.gandi.net (217.70.184.56) 66.694 ms 66.469 ms 66.661 ms
Au lycée, la passerelle "empêche" la commande traceroute de "sortir" du réseau du lycée :
on n'a donc que cette passerelle dans la liste des sauts...
Travail à faire
- déterminez votre IPv4 privée et l'adresse MAC de votre machine
- déterminez l'IPv4 publique du lycée
- affichez l'environnement réseau de votre machine
- faites un ping vers une des machines de la salle, par exemple celle de votre voisin, et vérifiez que sa machine "répond" bien.
- déterminez l'IP du site www.qwant.fr; comparez avec ce que votre voisin a obtenu. Que peut-on en conclure ?