Cet article répond à l’objectif d’éducation de base au réseau Internet tel que décrit dans ce précédent.

Il a pour but de permettre aux particuliers client d’un FAI avec box de comprendre le fonctionnement de base d’internet et de résoudre leurs problèmes de connection avec le réseau.

Cet article traite de la version 4 du protocole IP, que certains gourous de l’internet voudraient déclarer historique (obsolète).

Pour la version 6, lire cet autre article.

Internet

Internet est un réseau de réseaux. Des réseaux informatiques interconnectés et qui se parlent entre eux avec un langage commun : IP, soit Internet Protocol.

Les adresses IP permettent aux divers ordinateurs qui sont connectés sur ces réseaux de communiquer.

Les adresses IPv4 sont composés de quatre nombres (quatre octets) allant de 0 à 255, soit par exemple :

193.167.12.3
20.30.40.50
10.0.38.100

Adresses publiques

La plupart des adresses ip sont dites publiques. Ce sont celles qui sont accessibles directement sur internet. Quand vous allez sur ifconfig.co, c’est cette adresse qui vous est indiquée par le site web. De même lors de la visite de n’importe quel autre site web, c’est cette adresse qui est conservée dans les journaux d’historique des serveurs (logs).

Adresses privées

Il existe des réseaux privés. Des parties d’Internet qui ne sont pas accessibles facilement depuis l’extérieur.

Si vous avez une box internet, c’est alors très certainement votre cas. Ces réseaux ont ces adresses :

10.0.0.0    - 10.255.255.255
172.16.0.0  - 172.31.255.255
192.168.0.0 - 192.168.255.255

Ces réseaux sont respectivement appelés réseau de classe A, B et C.

Masques réseaux

On indique aussi les réseaux privés sous cette forme :

10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

Le /X indique en fait le masque de réseau. Il s’agit d’indiquer dans l’adresse quelle partie est déjà fixée par le réseau, et quelle partie est disponible pour adresser les équipements présents dans le réseau.

Par exemple, dans 10.0.0.0/8, les 8 premiers bits sont fixes pour le réseau. Il s’agit du 10. Tout le reste est libre. C’est pour ça que le réseau de classe A 10.0.0.0/8 va de 10.0.0.0 à 10.255.255.255. Voyez, seul le 10 en début reste fixe.

Ces réseaux peuvent souvent se découper en sous-réseaux. Ainsi on peut avoir 255 /16 dans un 10.0.0.0/8 : 10.0.0.0/16, 10.1.0.0/16 … jusqu’à 10.255.0.0/16.

Dans 10.2.0.0/16, les 16 premiers bits sont fixes pour le réseau : 10.2, et tout le reste est libre. Ce réseau va donc de 10.2.0.0 à 10.2.255.255.

Comment on connait son ip (privée) ?

Vous pouvez demander à votre ordinateur quelle est son adresse IP en ouvrant un terminal de commande et en lançant les commandes suivantes :

Sous Unix-like (linux, BSD, Solaris…) ifconfig (ifconfig commence à être dépréciée mais reste une commande standard, présente sur tous les Unix sur lesquels j’ai pu travailler, donc c’est celle que je présente ici) :

[stephane@Jabberwocky ~]$ ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 10.0.61.197  netmask 255.255.0.0  broadcast 10.0.255.255
    inet6 fe80::226:b9ff:fef6:d709  prefixlen 64  scopeid 0x20<link>
    inet6 2001:470:2099:e:226:b9ff:fef6:d709  prefixlen 64  scopeid 0x0<global>
    ether 00:26:b9:f6:d7:09  txqueuelen 1000  (Ethernet)
    RX packets 399774  bytes 499846428 (476.6 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 266624  bytes 32796132 (31.2 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    device interrupt 20  memory 0xe9600000-e9620000

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
    inet 127.0.0.1  netmask 255.0.0.0
    inet6 ::1  prefixlen 128  scopeid 0x10<host>
    loop  txqueuelen 1  (Local Loopback)
    RX packets 2789  bytes 345744 (337.6 KiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 2789  bytes 345744 (337.6 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0        

eno1 et lo indique quelles sont les interfaces réseau concernées. Il est fréquent aujourd’hui qu’un ordinateur ait plusieurs interfaces réseaux : une interface filaire (ou Ethernet) et une interface wifi.
Plus l’interface de loopback, utilisée par la machine pour se parler à elle-même (oui, ça arrive, ce n’est pas une maladie mentale…). 127.0.0.1, adresse attribuée à lo est donc toujours une adresse locale à la machine.

Sous Windows:

ipconfig/all

Soyons donc bien d’accord : cette ip, c’est celle que votre ordinateur connaît pour lui-même (!!!). Mais comme vous êtes sûrement sur un réseau local (donc privé), il ne s’agit pas de l’adresse publique. Votre ordinateur n’a probablement pas d’ip publique !

Donc résumons : votre adresse privée, c’est l’adresse de votre ordinateur sur votre réseau local. L’adresse publique, c’est celle sous laquelle on vous voit sur internet.

Chaque réseau local peut donc avoir de quelques machines à plusieurs millions. Et chaque réseau local a une seule adresse publique.

NAT

C’est le boulot de la box de faire en sorte que tout fonctionne bien : que plusieurs machines sur un réseau privé puissent toutes aller sur internet en utilisant la même adresse publique. C’est le principe du NAT.

Un peu de debug

Bon, je vais vous indiquer les diverses étapes pour débugger votre connection à internet. Chaque étape doit être valide avant de passer à la suivante.

Quelle est mon adresse ?

Vous pouvez utiliser la ligne de commande sous Unix/Linux ou Windows, ou bien les outils fournis en interface graphique. Il y a certainement une icône représentant une connection réseau en bas à droite de l’écran de votre ordinateur. Cliquez dessus et vous trouverez les informations voulues.

Par exemple, comme au dessus, avec ifconfig suivie du nom de l’interface, et on filtre sur inet (les adresses).

[stephane@Jabberwocky ~]$ ifconfig eno1|grep inet
    inet 10.0.61.197  netmask 255.255.0.0  broadcast 10.0.255.255
    inet6 fe80::226:b9ff:fef6:d709  prefixlen 64  scopeid 0x20<link>
    inet6 2001:470:2099:e:226:b9ff:fef6:d709  prefixlen 64  scopeid 0x0<global>

eno1 a ici l’adresse inet 10.0.61.197.

Les adresses inet6 sont des ipv6, dont je parle dans cet autre article.

Si vous n’avez pas d’adresse ip, c’est que votre ordinateur ne démarre pas son client dhcp, ou que le réseau n’a pas de serveur dhcp. Ou une autre cause de ce genre.

DHCP est un mécanisme permettant la configuration automatique d’un ordinateur pour la connection internet utilisé par la grande majorité des ordinateurs des particuliers. Concrètement, on branche le câble et quelques secondes plus tard, on peut naviguer sans problème.

Vous pouvez résoudre cela en mettant une adresse statique pour obtenir une connection. Mais ultimement, il faudra trouver où est le problème.

Quelle est l’adresse de ma route par défaut ?

Ça a l’air sophistiqué comme ça, mais en fait c’est assez simple. La route par défaut, c’est (généralement) l’adresse de votre box sur votre réseau local.

Votre réseau local, c’est un peu comme une maison. Si vous voulez communiquer avec le monde extérieur, il vous faut d’abord trouver la porte. Vous ne pourrez discuter avec le voisin (ou la *voisine*…) qu’en passant par la porte d’entrée.

De même, pour accéder à internet, votre ordinateur doit d’abord savoir à quel équipement se connecter en premier. Cet équipement, c’est la box, ou le routeur pour utiliser le terme technique adéquat.

Pour connaître l’adresse de la route par défaut (aussi appelée gateway, ou passerelle en français), il vous faut utiliser la commande route, présente sur tous les systèmes d’exploitation, mais avec des options différentes.

[stephane@Jabberwocky ~]$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG    100    0        0 eno1
10.0.0.0        0.0.0.0         255.255.0.0     U     100    0        0 eno1

Ici j’utilise l’option -n pour numeric. Et on voit que le réseau Internet, représenté par la Destination 0.0.0.0 est accessible par la Gateway 10.0.0.1.

NB: La deuxième ligne, c’est simplement mon réseau local.

Si vous ne trouvez pas l’adresse de votre passerelle, c’est que votre client/serveur dhcp n’a pas fourni l’adresse correcte. Il y a un bug ici. Le meilleur moyen d’y remédier est de redémarrer les deux : Pc et box.

Ces informations (adresses ip de l’ordinateur sur le réseau local et de la passerelle) sont en effet fournies par le serveur dhcp.

Test de connectivité sur la passerelle

Une fois l’adresse de la passerelle connue, il faut faire un ping dessus. La fameuse commande ping permet de vérifier la connectivité avec une machine (un hôte) sur le net.

Aussi surprenant que ça puisse paraître, il existe des cas où le pare-feu d’une machine (voir de la passerelle elle-même, auquel cas vous êtes pas dans la m***e) est tellement mal réglé qu’on ne peut se connecter à la passerelle quand bien même on en connaît l’adresse.

Autre remarque : vérifiez que l’adresse de votre passerelle se trouve bien sur le même réseau local que votre ordinateur !

Par exemple, si votre ip est 192.168.1.3024, mais que la passerelle annoncée est 192.168.0.1 alors vous avez un problème, puisque votre ordinateur ne peut contacter que les membres du 192.168.1.0/24 : de 192.168.1.0 à 192.168.1.255.

Si votre passerelle a pour adresse 10.0.0.1, alors un petit ping donnera ceci :

[stephane@Jabberwocky ~]$ ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=255 time=0.456 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=255 time=0.520 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=255 time=0.473 ms
^C
--- 10.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.456/0.483/0.520/0.027 ms

Si ça ne passe pas à cette étape, c’est probablement un problème de pare-feu sur votre ordinateur. Ou une incohérence d’adressage comme indiquée plus haut.

Un ping sur l’extérieur

Si vous pouvez pinger votre passerelle, l’étape suivante, c’est de tester votre connectivité sur une machine en dehors de votre réseau.

Je vous conseille de pinger un des deux serveurs dns de Google : 8.8.8.8 ou 8.8.4.4.

[stephane@Jabberwocky ~]$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=55 time=17.7 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=55 time=17.0 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=55 time=17.4 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 17.053/17.405/17.750/0.322 ms

Si ça ne passe pas, alors c’est que votre passerelle déconne. Il faut peut-être la rebooter ou la remettre aux réglages d’usine (n’oubliez pas de sauver toute conf’ faite dessus auparavant).

DNS ?

Dernière étape : pouvez-vous résoudre les noms de domaines ? Pour l’instant je n’ai parlé que d’ip, car c’est bien de cela qu’il s’agit. C’est de la connectivité brute et sans fioriture.

Mais ce n’est pas très utile tel quel.

Une ip, c’est pas super pour naviguer sur le web. Donc on a inventé les noms de domaines, autrement dit, une adresse sous forme de texte (court, il y a, je crois, une limite à 128 caractères). Et on utilise un resolveur DNS pour relier les deux.

Il faut donc savoir comment contacter le resolveur. L’adresse de ce resolveur vous est fournie par dhcp encore une fois.

Sous Unix-like (Linux et BSD), il faut aller regarder dans le fichier /etc/resolv.conf. Les resolveurs sont indiqués par les lignes nameserver.

[stephane@Jabberwocky ~]$ cat /etc/resolv.conf
# Generated by resolvconf
search 22decembre.eu
nameserver 10.0.0.2
nameserver 10.0.0.1
nameserver 2001:470:2099:e::2
nameserver 2001:470:2099:e::
[stephane@Jabberwocky ~]$

Sous Windows, ils sont accessibles soit par la commande ipconfig précédemment citée, soit par l’interface graphique, via la boite de dialogue «connections réseau» accessible par le panneau de configuration ou l’îcone en bas à droite de l’écran de l’ordinateur.

Si vous n’avez pas de DNS, il s’agit encore une fois d’un bug du serveur ou du client dhcp. En attendant de le résoudre, vous pouvez modifier manuellement la liste de resolveurs. Sous Unix il suffit d’éditer manuellement le fichier /etc/resolv.conf en tant que Root. Attention, ce fichier sera peut-être réécrit au reboot du système.

Google DNS

Google met à disposition du public des resolveurs DNS gratuits: 8.8.8.8 et 8.8.4.4. C’est très utile de s’en souvenir, mais essayez de trouver mieux.

OpenDNS

OpenDNS permet apparemment de customiser ses réponses DNS. Il peut filtrer les sites pornos par exemple. Mais c’est une entreprise à but lucratif, qui plus est partenaire de la NSA. À vous de voir.

DNS anti-censure

Il y a les résolveurs de FDN, 80.67.169.12 et 80.67.169.40.

Ceux de censurfridns : 89.233.43.71 et 91.239.100.100.

Tester sa connectivité au DNS

Faîtes un ping sur l’adresse de votre DNS. Si le ping échoue, mais que vous pouvez pinger un autre serveur (ceux de Google par exemple), c’est que le réseau de votre FAI est perturbé.

Dans ce cas, il est plus simple de changer ses DNS comme indiqué plus haut.

Tester sa résolution de noms

Utilisez la commande nslookup (sous Windows) suivie d’un nom de site web, host, dig ou drill sous Unix:

[stephane@Jabberwocky ~]$ host www.fdn.fr
www.fdn.fr has address 80.67.169.52
www.fdn.fr has IPv6 address 2001:910:800::52

Si vous pouvez pinger votre serveur de nom (celui qui vous est indiqué par votre fournisseur d’accès Internet via le DHCP, ou celui que vous avez choisi), mais qu’il ne peut vous indiquer les adresses des sites demandés, cela signifie que ce resolveur a un problème. Il vous faut alors le changer comme indiqué juste au dessus.

Voila

Si vous avez toujours des soucis, si vous voulez faire une remarque ou un commentaire, n’hésitez pas à m’écrire : stephane AROBASE 22decembre.eu.