sudo apt install net-tools sudo apt-get install isc-dhcp-client sudo apt install iproute2 sudo apt install iputils-ping
Dans cette section, nous allons apprendre à résoudre les problèmes de connectivité réseau ou en d'autres termes, le problème “mon Internet ne fonctionne pas”. Pour ce faire, nous devons parcourir toutes les couches du réseau par lesquelles les données passent pour être envoyées sur Internet.
Ensuite, nous présenterons les étapes que nous suivons pour vérifier la fonctionnalité de la connexion Internet et comment nous pouvons effectuer certaines configurations sommaires.
La première couche avec laquelle nous interagissons est la couche physique, qui a pour rôle d'envoyer des données sous forme de signaux via le support de transmission. Par exemple, les signaux électriques sont transmis via un fil de cuivre, les impulsions lumineuses via la fibre optique et les ondes radio via le sans fil.
Un autre composant de la couche physique est la carte réseau du système (NIC - Network Interface Card), qui enverra les données via le support de transmission.
La plupart du temps, les problèmes de connexion Internet proviennent du fait que le câble Internet n'est pas connecté à la carte réseau ou du fait que nous avons une faible connexion au réseau sans fil.
Au niveau physique, nous pouvons vérifier la connexion et la fonctionnalité d'une carte réseau en regardant les LED qui représentent la connexion à l'environnement physique.
Une interface réseau est un moyen de réaliser des configurations réseau généralement associées à une carte réseau et identifiées par un nom.
loopback
est une interface virtuelle à adressage automatique qui s'adresse au système lui-même. Il s'appelle lo
sous Linux.
Au niveau du système d'exploitation, nous pouvons vérifier si une carte réseau est active à l'aide de la commande suivante :
root@fizic:~# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 99: eth0@if100: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default link/ether 02:42:0a:0a:0a:01 brd ff:ff:ff:ff:ff:ff link-netnsid 0 113: eth1@if114: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default link/ether 02:42:0b:0b:0b:01 brd ff:ff:ff:ff:ff:ff link-netnsid 0 115: eth2@if116: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default link/ether 02:42:0c:0c:0c:01 brd ff:ff:ff:ff:ff:ff link-netnsid 0
Démarrez l'interface réseau eth0
en utilisant la commande ifconfig (hint: section How to Enable a Network Interface).
SIOCSIFFLAGS: Operation not permitted
, ne vous inquiétez pas. Cela est dû au fait que nous utilisons un conteneur docker pour cet exercice
Internet est une interconnexion d'appareils, appelés stations et organisés en réseaux, qui s'étend sur toute la Planète. Les données envoyées sur Internet doivent être transmises d'un nœud à un autre afin qu'elles puissent passer rapidement d'une station à une autre.
Ainsi, pour qu'une station communique avec une autre station sur Internet, il faut que les deux stations soient connectées à Internet.
Ensuite, les deux stations doivent pouvoir s'adresser l'une à l'autre. C'est-à-dire que chaque station a besoin d'un identifiant, une adresse. Tout comme chaque maison dans le monde a une adresse avec laquelle elle peut être identifiée de manière unique, chaque station a une adresse unique sur Internet appelée adresse IP (Internet Protocol).
Chaque interface réseau est un chemin différent vers Internet, donc chacune a besoin d'une adresse IP configurée.
Pour voir les adresses IP configurées sur les interfaces réseau, nous utilisons la commande suivante :
root@internet:~# ip address show 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 195: eth0@if196: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:0a:0a:0a:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.10.10.2/24 brd 10.10.10.255 scope global eth0 valid_lft forever preferred_lft forever 199: eth1@if200: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:0b:0b:0b:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 203: eth2@if204: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:0c:0c:0c:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
Il existe deux types d'adresses IP (IPv4 et IPv6), mais dans cet atelier, nous ne travaillerons qu'avec des adresses IPv4. Les adresses IP des interfaces sont écrites sur les lignes contenant inet. Les adresses IPv4 sont de la forme A.B.C.D, où A, B, C et D sont des nombres avec des valeurs comprises entre 1 et 255.
Il existe deux méthodes pour configurer une adresse IP sur une interface :
Nous nous en tiendrons à la configuration dynamique car c'est plus simple. De plus, nous n'avons aucun moyen de trouver les informations sur le réseau avant de configurer l'interface réseau.
Apportez les modifications nécessaires pour que l'interface eth0
soit à l'état UP
.
Pour obtenir dynamiquement une adresse IP sur une interface nous utilisons la commande dhclient
:
root@internet:~# dhclient eth1 mv: cannot move '/etc/resolv.conf.dhclient-new.35' to '/etc/resolv.conf': Device or resource busy
mv: cannot move '/etc/resolv.conf.dhclient-new.35' to '/etc/resolv.conf': Device or resource busy
apparaît toujours dans les conteneurs Docker lorsque vous essayez d'obtenir une adresse IP à l'aide de la commande dhclient. Ce n'est pas un problème si cela se produit.
Ci-dessus, nous avons exécuté la commande pour obtenir une adresse IP pour l'interface eth1
.
dhclient
est basée sur le protocole DHCP (Dynamic Host Configuration Protocol). Il suppose qu'il existe un serveur sur le réseau qui sait quelles adresses IP sont utilisées sur le réseau et peut fournir des adresses IP aux ordinateurs effectuant des requêtes sur le réseau. dhclient
fait une requête pour réserver une adresse IP au serveur DHCP sur le réseau.
Afficher les adresses IP sur toutes les interfaces.
Notez que nous avons obtenu une adresse IP sur l'interface eth1
.
Configurez l'adresse IP sur l'interface eth0
.
Pour supprimer une adresse IP d'une interface, utilisez la commande ip address flush
comme suit :
root@internet:~# ip address flush eth1 root@internet:~# ip address show eth1 199: eth1@if200: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:0b:0b:0b:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
ip address show
.
ping
. Cette commande envoie des messages à une station et attend une réponse de sa part.
Lors du test de la connexion Internet, nous voulons vérifier quelques éléments une fois que nous avons obtenu une adresse IP du serveur DHCP :
Par exemple, si nous voulons vérifier la connectivité au serveur 8.8.8.8 (un serveur public sur Internet), nous utilisons la commande :
student@uso:~$ ping -c 4 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=61 time=23.0 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=61 time=25.7 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=61 time=24.8 ms 64 bytes from 8.8.8.8: icmp_seq=4 ttl=61 time=25.2 ms --- 8.8.8.8 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3092ms rtt min/avg/max/mdev = 23.051/24.731/25.707/1.020 ms
Le comportement par défaut de la commande ping est d'envoyer des paquets indéfiniment. J'ai utilisé l'option -c 4 dans l'exemple ci-dessus pour réduire le nombre de paquets envoyés à 4.
Lorsque les messages ne peuvent pas être envoyés à la station identifiée par l'adresse IP, le message d'erreur ressemblera à ceci :
student@uso:~$ ping 10.10.10.10 PING 10.10.10.10 (10.10.10.10) 56(84) bytes of data. From 10.10.10.3 icmp_seq=1 Destination Host Unreachable From 10.10.10.3 icmp_seq=2 Destination Host Unreachable From 10.10.10.3 icmp_seq=3 Destination Host Unreachable From 10.10.10.3 icmp_seq=4 Destination Host Unreachable ^C --- 10.10.10.10 ping statistics --- 4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3074ms
Pour vérifier la connectivité au sein du réseau, nous devons vérifier que nous pouvons envoyer des messages à l'aide de l'utilitaire ping
à un ordinateur du réseau.
Par défaut, la commande ping
envoie des messages de vérification de connexion à l'infini. Cette fois, au lieu d'exécuter la commande ping à l'aide de l'option -c 4
, nous avons arrêté l'exécution de la commande à l'aide de la combinaison de touches Ctrl+c
.
Une bonne cible de test pour l'envoi de messages sur le réseau est la passerelle (par défaut). Une passerelle est un périphérique réseau qui gère l'interconnexion des réseaux et reçoit les messages de toutes les stations du réseau pour les envoyer sur Internet.
La passerelle est configurée de manière statique ou dynamique, tout comme l'adresse IP d'une interface est configurée.
Pour identifier la passerelle, nous utilisons la commande ip route show
comme suit :
student@uso:~$ ip route show default via 192.168.40.2 dev eth0 proto dhcp src 192.168.40.128 metric 100 10.10.10.0/24 dev br1 proto kernel scope link src 10.10.10.253 11.11.11.0/24 dev br2 proto kernel scope link src 11.11.11.253 12.12.12.0/24 dev br3 proto kernel scope link src 12.12.12.253 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 192.168.40.0/24 dev eth0 proto kernel scope link src 192.168.40.128 metric 100 192.168.40.2 dev eth0 proto dhcp scope link src 192.168.40.128 metric 100 192.168.202.0/24 dev eth1 proto kernel scope link src 192.168.202.128 metric 100 192.168.202.1 dev eth1 proto dhcp scope link src 192.168.202.128 metric 100
Nous remarquons que l'adresse IP de la passerelle par défaut est 192.168.40.2, car elle se trouve sur la ligne contenant la chaîne par défaut.
Découvrez l'adresse réseau à partir de l'interface eth0
.
Vérifiez la connexion avec la passerelle à l'aide de la commande ping
.
1.1.1.1
.
Vérifiez la connexion au serveur 8.8.8.8
fourni par Google à l'aide de la commande ping
.
Affichez la configuration actuelle d'une interface réseau a l'aide de command ifconfig
. Essayer de trouver votre adresse IP.