13
SEANCE 04 Résolution des Noms M1204 - Fichier Hosts et Service DNS Patrice Gommery – Novembre 2020 OBJECTIF: Comprendre comment les noms de machines sont résolus en adresse IP Utilisation du fichier hosts et du service DNS Consignes générales : Dans tout le TP : - remplacez VMID par l'identifiant de votre machine virtuelle. - remplacez ID par la seconde partie de l'identifiant - remplacez MMI par votre identifiant MMI (mmi20xxx) - remplacez XX par l'ID d'un autre étudiant de votre groupe de TP Le serveur FTP de la salle se trouve à l’adresse : 172.16.100.1, l’identifiant est mmis1, le mot de passe : PASSWORD NOTATION : Rappel, en B2 TOUS les TPs sont notés (0,1,2,3) . Les parties intitulées NOTATION sont donc toutes obligatoires !!! La notation étant automatique, respectez bien les conventions de nommage. Le barême de ce TP se trouve à la fin du PDF

SEANCE 04 Résolution des Noms - 195.83.128.21195.83.128.21/~pgommery/IMG/pdf/s1-seance_04... · Àous deiez aussi pou Àoi "pingue" le se Àeu DNS de la salle (172.16.0.102), mais

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • SEANCE 04 – Résolution des Noms M1204 - Fichier Hosts et Service DNS

    Patrice Gommery – Novembre 2020 OBJECTIF: Comprendre comment les noms de machines sont résolus en adresse IP Utilisation du fichier hosts et du service DNS Consignes générales : Dans tout le TP : - remplacez VMID par l'identifiant de votre machine virtuelle. - remplacez ID par la seconde partie de l'identifiant - remplacez MMI par votre identifiant MMI (mmi20xxx) - remplacez XX par l'ID d'un autre étudiant de votre groupe de TP Le serveur FTP de la salle se trouve à l’adresse : 172.16.100.1, l’identifiant est mmis1, le mot de passe : PASSWORD

    NOTATION : Rappel, en B2 TOUS les TPs sont notés (0,1,2,3) . Les parties intitulées

    NOTATION sont donc toutes obligatoires !!! La notation étant automatique,

    respectez bien les conventions de nommage. Le barême de ce TP se trouve à la fin

    du PDF

  • PRE-REQUIS : Rappel pour la connexion en Distanciel : ssh [email protected] (Le mot de passe est épinglé dans Discord #1204) ssh [email protected] (Même mot de passe) ssh [email protected] (mot de passe : PASSWORD)

    ATTENTION : Tous les mots de passe root ont été réinitialisés à PASSWORD

    PARTIE 1 : VERIFICATION ET CONFIGURATION : L'invite de commande devrait ressembler à ceci : root@MMI:~# Le nom complet de la machine doit être : MMI.domVMID.net Ce nom est vérifiable avec la commande : hostname -f Si le nom affiché n'est pas correct, vérifiez (et modifiez si nécessaire) les deux fichiers suivants : /etc/hostname il ne doit contenir que votre identifiant MMI et rien d'autre.

    /etc/hosts Seule la deuxième ligne doit être modifiée avec vos identifiants 127.0.0.1 localhost

    127.0.1.1 MMI.domVMID.net MMI

    # The following lines are desirable for IPv6 capable hosts

    ::1 ip6-localhost ip6-loopback

    ff02::1 ip6-allnodes

    ff02::2 ip6-allrouters

    REMARQUE : Si vous modifiez le fichier hostname vous devez redémarrer (reboot) votre machine pour prendre en compte la modification et afficher la bonne invite de commandes.

    Votre machine doit avoir 3 adresses IP : eth0 : 172.16.VM.ID (L'IP principale de notre machine) eth0:0 : 172.16.ID.50 (L'IP pour les routes de la salle réseau) eth1 : 192.168.ID.2 (L'IP pour communiquer avec le poste test) La première adresse vous est octroyée par le serveur DHCP de la salle et vous vous en êtes servie pour vous connecter à la machine, elle donc obligatoirement correcte. Les autres adresses sont comme pour le TP précédent à ajouter à l'aide la commande ifconfig : ifconfig eth0:0 172.16.ID.50

    ifconfig eth1 192.168.ID.2

    REMARQUE : Rappelez-vous que cette commande ajoute les adresses de manière temporaire. Si la machine est éteinte (ou rebootée), il faut de nouveau ajouter les adresses avec ifconfig.

  • Pour vérifier que les adresses sont correctes, vous pouvez de nouveau utiliser la commande ifconfig avec comme seul argument le nom de l'interface : Les commandes devraient vous renvoyer des résultats semblables à ceux-ci : (Seules les lignes inet sont importantes) ifconfig eth0

    eth0 Link encap:Ethernet HWaddr 00:20:18:0V:0M:ID inet adr:172.16.VM.ID Bcast:172.16.255.255 Masque:255.255.0.0 adr inet6: fe80::220:15ff:fe01:606/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1228 errors:0 dropped:0 overruns:0 frame:0 TX packets:282 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:101931 (99.5 KiB) TX bytes:30887 (30.1 KiB) ifconfig eth0:0

    eth0:0 Link encap:Ethernet HWaddr 00:20:18:0V:0M:ID inet adr:172.16.ID.50 Bcast:172.16.255.255 Masque:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ifconfig eth1

    eth1 Link encap:Ethernet HWaddr 2e:85:73:69:94:d7 inet adr:192.168.ID.2 Bcast:192.168.ID.255 Masque:255.255.255.0 adr inet6: fe80::2c85:73ff:fe69:94d7/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1069 errors:0 dropped:0 overruns:0 frame:0 TX packets:67 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:88500 (86.4 KiB) TX bytes:7126 (6.9 KiB)

    Vous remarquerez que eth0 et eth0:0 ont la même adresse MAC . Ce qui est logique puisqu'il s'agit de la même interface réseau avec plusieurs adresses IP. Alors que l'adresse MAC de l'interface eth1 est différente puisqu'il s'agit d'une seconde interface réseau . Donc votre machine possède bien deux adaptateurs réseaux distincts.

    Juste pour information et pour refaire un // avec le cours sur TCP/IP. Votre machine possède aussi une autre adresse IP. Cette adresse que l'on désigne couramment par le nom localhost n'est associée à aucun adaptateur réseau (donc pas connectée) mais à la boucle locale qui constitue un réseau unique sur votre machine. ifconfig lo

    lo Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 adr inet6: ::1/128 Scope:Hôte UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

  • Pour terminer cette partie, une petite explication sur le routage. Nous avons vu en cours et dans le dernier TP (Halloween) que pour communiquer entre-elles deux machines devaient être sur le même réseau IP. Si la solution consistant à ajouter des IP aux machines dans chacun des réseaux à atteindre fonctionne bien dans un contexte limité à quelques réseaux, elle devient impossible à l'échelle d'Internet ou même d'un réseau d'entreprise un peu plus étendu. Il est donc évident que cette solution ne peut être que temporaire (d'où le ifconfig) et qu'il conviendrait d'en appliquer aune autre. Bien entendu la solution existe, c'est ce qu'on appelle le routage. C'est avec l'adressage, un des rôles principal du protocole IP. Pour bien comprendre, voici un schéma qui représente les réseaux de la salle H205 :

    EN BLEU : Le réseau principal de la Salle : 172.16.0.0 EN VERT : Votre Réseau "personnel" : 192.168.ID.0 EN GRIS : Les réseaux des autres étudiants : 192.168.XX.00 (XX étant l'ID des autres étudiants) Pour passer d'un réseau à l'autre, nos machines utilisent donc des "routeurs" qui permettent de transporter les paquets "IP" d'un réseau à l'autre. Remarquez que vos machines VMID font aussi office de routeurs pour atteindre les réseaux en 192.168. Dans cette configuration, seul le routeur de la salle connait tous les autres routeurs (vos machines) et sait communiquer avec les adresses en 172.16.ID.50 . Vos machine ont donc besoin de connaître l'adresse de ce routeur pour communiquer avec les autres réseaux. Pour cela ce routeur (172.16.0.1) doit être déclarer comme passerelle (gateway) sur vos machines.

  • Pour vérifier si cela est effectif, regardez la table de routage de notre machine avec la commande route -n

    Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref Use Iface 0.0.0.0 172.16.0.1 0.0.0.0 UG 0 0 0 eth0 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 192.168.ID.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

    Si tout est correct, vous devriez voir comme indiqué comme passerelle la machine 172.16.0.1, vous devriez aussi pouvoir "pinguer" le serveur DNS de la salle (172.16.0.102), mais aussi l'IP 192.168.XX.2 d'un autre serveur correctement configuré.

    REMARQUE : Si la passerelle 172.16.0.1 n'apparait pas dans votre configuration, ou que vous n'arrivez à pinguer les adresses en 192.168.XX.2 des autres étudiants, signalez-le à l'enseignant qui fera les corrections si nécessaires.

    NOTATION : Pour terminer cette partie exécutez les commandes suivantes : (Elles n'affichent rien, mais créaient des fichiers dans votre dossier /root)

    hostname -f > /root/hostname.txt

    ifconfig > /root/ifconfig.txt

    route -n > /root/route.txt

    NE CONTINUEZ PAS LE TP SI LES CORRECTIONS ET LES

    VALIDATIONS NE SONT PAS FAITES

    LA RESOLUTION DES NOMS

    RAPPEL DU COURS : En quoi consiste la résolution des noms ? Simplement à convertir un nom de machine en adresse IP. Cette opération est nécessaire car les machines au niveau de la couche réseau ne communiquent entre-elles qu’avec leurs adresses IP. Sous Debian, l’ordre de résolution des noms est le suivant :

    1. Le système consulte son cache (cache DNS) pour savoir s’il connait déjà l’IP de la machine demandée.

    2. Le système consulte le fichier hosts pour savoir si une résolution en local est possible.

    3. Le système consulte le serveur DNS du réseau, à condition qu’il connaisse l’adresse IP de celui-ci.

  • PARTIE 2 - LE FICHIER HOSTS : Sous Debian, le fichier hosts se trouve dans le dossier /etc . DECOUVERTE : Revenons sur le contenu de notre fichier /etc/hosts :

    127.0.0.1 localhost 127.0.1.1 MMI.domVMID.net MMI

    # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopbak ff02::1 ip6-allnodes ff02::2 ip6-allrouters

    Pour l’instant seules les deux premières lignes nous intéressent, puisque qu’elles concernent le protocole IPv4. Nous étudierons le protocole IPv6 plus tard. Comme vous pouvez le voir, la syntaxe est assez simple. Pour chaque ligne : 1 Adresse IP, un Nom (ou plusieurs séparés par des espaces) Pour l’instant notre système connait donc 3 noms : localhost qu’il résoudra en adresse 127.0.0.1, MMI.domVMID.net qu’il résoudra en 127.0.1.1 MMI qu’il résoudra aussi en 127.0.1.1 Notez que ces deux adresses IP font partie d’un réseau particulier que nous avons évoqué lors de l’étude des adresses IPv4. En effet le réseau 127.0.0.0 (et donc toutes les adresses de ce réseau) sont opérationnelles et activées sur votre machine dès la mise en œuvre d’IP. Vous pouvez donc les utiliser pour appeler des services en local, elles sont implémentées directement dans la pile IP et n’ont pas besoin qu’une carte réseau soit opérationnelle pour fonctionner (Essayez de faire un ping vers n’importe quelle adresse de ce réseau, vous verrez qu’elle répond, même si vous débranchez le câble réseau). Ce réseau est aussi appelé réseau de loopback ou boucle locale. Ici, nous voyons donc que le nom donné à l’adresse 127.0.0.1 est localhost. Ce nom particulier est commun à tous les systèmes utilisant IP. Faites ping localhost sur n’importe quelle machine (Linux, Windows, mac, Android etc ..) vous verrez que le nom sera résolu avec l’adresse 127.0.0.1 (et donc que le ping fonctionne) La seconde ligne de notre fichier nous permet aussi d’accéder au loopback avec deux autres noms :

    • MMI.domVMID.net qui est le nom COMPLET de notre machine. Notre machine s’appelle donc MMI et fait partie du domaine domVMID.net (votre domaine DNS)

    • MMI est le nom simple de notre machine.

  • Si vous faites un « ping » vers un de ces deux noms, vous obtiendrai une réponse de l’adresse 127.0.1.1 Notez que ce n’est pas la vraie adresse IP de votre machine sur le réseau, seulement une adresse du réseau de loopback. Vous voulez résoudre d’autres noms de machine ? Avec le fichier hosts, pas de souci, il suffit de rajouter des lignes en respectant la même syntaxe : Une Adresse IP suivi d’un ou plusieurs noms séparés par des espaces.

    EXERCICE : Ajoutez les lignes suivantes dans votre fichier hosts (juste en dessous de la ligne de l’adresse 127.0.1.1). Surtout ne supprimez pas les lignes existantes, elles sont nécessaires au bon fonctionnement de votre système. En effet, de nombreux processus (ou services) communiquent entre eux en utilisant le nom localhost.

    127.0.0.1 localhost 127.0.1.1 MMI.domVMID.net MMI 172.16.ID.50 VotrePrénom (ou un surnom si vous voulez) 192.168.ID.2 serveurID 172.16.0.101 spiderman 172.16.100.1 www.google.fr 195.83.128.21 mmi 172.16.0.1 www.h205.net 172.17.19.12 manoir (Notez qu’aucun redémarrage n’est nécessaire pour que ces lignes soient prises en compte par le système)

    Maintenant, faites des « ping » en utilisant les différents noms. Exemple : ping VotrePrénom Essayez aussi de "pinguer" les autres machines en utilisant leur nom (serveurXX) où le prénom de votre voisin. Est-ce que tout fonctionne ? Tous les noms sont-ils bien résolus en adresse IP ?

    ATTENTION : faites bien la distinction entre le résultat du ping et la résolution du nom. - Si la commande vous répond : unknown host …. C'est clairement un problème de résolution. - Si la commande répond : Network ou Host unreachable c'est un problème de communication, - Si le ping fonctionne avec l'IP, mais pas avec le nom c'est un problème de résolution - Si le ping ne fonctionne pas avec l'IP c'est un problème de communication.

    Vous n'arrivez pas à "pinguer" les adresses de votre voisin avec leurs noms ? A t'il bien renseigné son fichier hosts ? Vous "pinguer" bien son IP, mais la résolution ne marche pas ? Pourquoi ? Que devez-vous faire pour régler le problème ?

  • REPONSE : Le fichier hosts ne fait la résolution qu'en local. Son contenu n'est valable que pour vous. Pour résoudre les noms de vos voisins, vous devez les rentrer vous-mêmes dans votre fichier hosts. Si nous voulons simplifier la résolution au niveau de la salle, il faut utiliser le service DNS.

    NOTATION : Pour terminer cette partie exécutez les commandes suivantes : (Elles n'affichent rien, mais créaient des fichiers dans votre dossier /root)

    cat /etc/hosts > /root/hosts.txt

    PARTIE 3 - LE SERVICE DNS : Comme vu en cours, pour utiliser le service DNS nous devons connaitre 3 choses :

    • L'adresse IP du résolveur DNS que nous voulons utiliser. Nous utiliserons celui de la salle : 172.16.0.102

    • Nous devons savoir dans quel domaine se trouvent les machines que nous cherchons. (ex : domVMID.net)

    • Nous devons savoir configurer notre poste pour lui dire où se trouve le serveur DNS.

    Sous Debian, le fichier à connaitre se nomme resolv.conf et se trouve dans le dossier /etc Commençons par vérifier le contenu de ce fichier :

    domain h205.net search h205.net nameserver 172.16.0.102

    Votre fichier devrait ressembler au contenu ci-dessus. (C'est celui envoyé par le serveur DHCP ) Quelques explications sur son contenu :

    • domain : indique à quel domaine appartient votre machine (pour l'instant elle appartient encore au domaine de la salle h205.net, nous allons changer cela après)

    • search : indique le domaine de recherche par défaut. Si vous ne spécifier par un nom de domaine derrière un nom, c'est dans ce domaine par défaut que le serveur cherchera la machine.

    • nameserver : C'est le paramètre le plus important car c'est celui qui indique à votre machine ou se trouve le résolveur DNS à interroger. Si ce paramètre est mal renseigné ou inexistant, votre machine ne pourra résoudre les noms qu'avec son fichier host (ce qui vous l'avez compris dans l'exercice d'avant est rapidement limité)

    Modifiez le fichier /etc/resolv.conf pour l'adapter à votre configuration :

    domain domVMID.net search domVMID.net nameserver 172.16.0.102

  • Votre domaine est donc :domVMID.net Vous utilisez le résolveur DNS de la salle : 172.16.0.102

    NOTATION : Pour terminer cette partie exécutez les commandes suivantes : (Elles n'affichent rien, mais créaient des fichiers dans votre dossier /root)

    cat /etc/resolv.conf > /root/resolv.txt

    EXERCICE : Pour ne pas être perturbés par le résultat des ping, nous allons utiliser la commande nslookup. Cette commande n'effectue que la résolution des noms, elle ne fait pas de test de communication (sauf vers le serveur DNS lui-même) La syntaxe est très simple : nslookup NomDeMachine. Exemple : nslookup serveur Réponse du système :

    Server : 172.16.0.102 Address: 172.16.0.102#53 Name: serveur.domVMID.net Address: 172.16.VM.ID

    Comment interpréter le résultat ? Celui-ci est composé de deux parties : Première partie : Les informations sur le serveur DNS interrogé : Server : 172.16.0.102 Donne le nom (ou ici l'adresse) du résolveur interrogé donc celui que vous avez déclaré dans le fichier resolv.conf Address : 172.16.0.102 Confirme l'adresse du serveur et le port utilisé par le service Rappelez-vous : Service DNS – Port UDP 53

    La seconde partie correspond à la réponse du serveur :

    Name: serveur.domVMID.net Le nom complet à résoudre. Remarquez que le nom de domaine domVMID.net a été ajouté automatiquement C'est le résultat de la directive search du fichier resolv.conf Address: 172.16.VM.ID L'adresse IP associée au nom sur le serveur DNS. Donc le résultat de la résolution.

  • Pour certains noms, vous verrez une information supplémentaire : le canonical name Ce nom appelé aussi CNAME n'est pas le vrai nom de la machine, mais un alias. Tous les noms de services comme www, ftp, mail etc. sont généralement des alias. Le vrai nom de la machine est celui indiqué par Name. Si le serveur DNS ne trouve pas le nom dans sa base,

    Il vous répondra simplement: server cant' find "NomMachine" : NXDOMAIN REMARQUE : Vérifiez bien que vous interrogez le bon serveur (observez la première partie de la réponse) Maintenant, utilisez la commande nslookup , testez les noms suivants et essayez de répondre aux questions.

    • spiderman

    • VotrePrénom Le serveur a t 'il résolu tous les noms ? Normalement NON , il n'en a résolu aucun !!! Pourtant si vous faite un ping vers VotrePrénom ou spiderman, la résolution marche, pourquoi ?

  • Vous l'avez compris, les "ping" fonctionnent, car l'information se trouve dans le fichier hosts. Celui-ci est prioritaire sur l'interrogation du serveur DNS. De plus nslookup n'interroge que le serveur DNS, pas le fichier hosts. Pour continuer, supprimer toutes les lignes que vous avez ajoutées dans le fichier hosts. Surtout ne supprimez pas les lignes concernant les adresses du réseau 127 et ipv6. Vous ne pouvez plus faire de ping vers VotrePrénom (ni vers spiderman) , comment pouvez-vous corriger le problème ?

  • Techniquement, vous ne pouvez-pas !!!! Si vous n'utilisez pas le fichier hosts, seul le serveur DNS peut résoudre les noms de machines. Mais vous ne pouvez-pas modifiez le contenu d'une zone DNS si vous n'êtes pas administrateur du service et de la zone. Il faut contacter l'administrateur du service pour qu'il fasse les modifications (ou ajouts) dans le registre DNS. Dans notre cas, l'administrateur du réseau n'étant pas disponible, vous ne pourrez pas pinguer vos prénoms, mais celui-ci a quand même créé tous les enregistrements nécessaires dans la zone h205.net pour que vous puissiez utilisez identifiez votre machine individuellement. Il leur a donné des Noms de Villes. Mais lesquels ?

    Pour terminer cette partie, trouvez le vrai nom du Manoir Ecrivez son nom complet et son IP dans votre fichier hosts

    NOTATION : Pour terminer cette partie exécutez les commandes suivantes : (Elles n'affichent rien, mais créaient des fichiers dans votre dossier /root)

    cat /etc/hosts > /root/manoir.txt

    nslookup MMI.h205.net > /root/identifiant.txt

    PARTIE 3 - RESOLUTION INVERSE : Un nom de ville est associé à votre machine dans le domaine h205.net , mais lequel ? Une solution : Tester tous les noms de ville de la planète avec nslookup. Rassurez-vous il y a plus simple : La résolution inverse . L'usage principal du service DNS est la résolution de nom en machine en IP, mais il peut aussi faire l'inverse : résoudre une IP en nom de machine . Bien sur ce service ne fonctionne que si la zone inverse du domaine est configurée correctement. Est-ce le cas dans notre domaine h205.net ? Pour le vérifier rien de plus simple : nslookup 172.16.VM.ID

    Si tout est bien configuré sur votre machine, ainsi que dans la zone h205.net, ou plutôt que toutes les IP de la zone h205.net sont enregistrées dans la zone inverse correcte, vous devriez récupérer le nom de ville qui a été associé à votre machine. Notez-le, il vous servira dans les prochains TP.

    NOTATION : Pour terminer cette partie exécutez les commandes suivantes : (Elles n'affichent rien, mais créaient des fichiers dans votre dossier /root)

    nslookup 172.16.VM.ID > /root/ville.txt

  • BONUS - Retour de Service Un dernier exercice qui reprend plusieurs concepts vus dans les TP précédents.

    Installation du Service FTP (sur votre machine VMID)

    Normalement, cette étape à déjà été faites lors des précédents TPs Au cas où cela n'aurait pas été fait, voici les étapes de l'installation : apt update apt install proftpd nano /etc/proftpd/proftpd.conf (supprimez le # devant la ligne Default root ~) service proftpd restart

    Création d'un utilisateur (Toujours sur votre machine VMID)

    Créez un utilisateur nommé tp04 (mot de passe 123) Attribuez lui comme répertoire par défaut un dossier nommé /tp04 Faites en sorte que l'utilisateur puisse tout faire dans ce dossier.

    Test du Service (à faire sur la machine TESTID)

    Commencez par vous connecter en ssh à la machine TESTID qui vous correspond en utilisant votre identifiant MMI , le mot de passe est PASSWORD. Suivez les étapes suivantes : 1) Un fois connecté à la machine TESTID, créez un fichier nommé /home/MMI/MMI.txt avec

    comme contenu le nom de votre ville que vous avez découvert dans la partie 3 de ce TP. 2) Ensuite "Uploadez" votre fichier MMI.txt sur votre serveur en utilisant l'utilisateur tp04 que

    vous avez créé dans l'étape précédente. 3) Fermez la session ssh avec exit (pour revenir sur votre serveur VMID) 4) Vérifier que le fichier MMI.txt se trouve bien dans le /tp04 de votre serveur VMID.

    NOTATION DU TP 0 - Absence non justifiée ou rien de fait 1 - TP non terminé (Hors Bonus) 2 - TP Terminé (Hors Bonus) - Tous les fichiers demandés sont dans /root avec le contenu correct. hostname.txt, ifconfig.txt, route.txt, hosts.txt, resolv.txt, manoir.txt, identifiant.txt et ville.txt 3 - Si le point 2 est acquis et que le Bonus est réalisé correctement.