Dans cette section, on étudie la machine virtuelle qui joue le rôle de routeur entre le réseau étendu (VLANs violet et orange) et le réseau d'hébergement des conteneurs (VLAN vert) du site distant.
Une fois la machine virtuelle serveur de conteneurs lancée, les premières étapes consistent à lui attribuer un nouveau nom et à configurer les interfaces réseau pour joindre le routeur voisin et l'Internet.
Q29. |
Comment changer le nom de la machine virtuelle ? |
Il faut éditer les deux fichiers
|
|
Q30. |
Comment appliquer les configurations réseau IPv4 et IPv6 à partir de l'unique interface du routeur ? Consulter la documentation de Netplan pour obtenir les informations sur la configuration des interfaces réseau à l'adresse Netplan documentation. |
Il existe plusieurs possibilités pour configurer une interface réseau. Dans le contexte de ces manipulations, on utilise Netplan dans le but de séparer la partie déclarative du moteur de configuration. C'est La configuration de base fournie avec l'image maître suppose que l'interface obtienne un bail DHCP pour la partie IPv4 et une configuration automatique via SLAAC pour la partie IPv6. Cette configuration par défaut doit être éditée et remplacée. Il faut configurer trois interfaces.
Voici une copie du fichier network: version: 2 ethernets: enp0s1: dhcp4: false dhcp6: false accept-ra: false nameservers: addresses: - 172.16.0.2 - 2001:678:3fc:3::2 vlans: enp0s1.440: # VLAN violet id: 440 link: enp0s1 addresses: - fe80:1b8::2/64 enp0s1.441: # VLAN orange id: 441 link: enp0s1 addresses: [] enp0s1.52: # VLAN accès temporaire id: 52 link: enp0s1 dhcp4: true dhcp6: false accept-ra: true |
Sans modification de la configuration par défaut, un système GNU/Linux n'assure pas la fonction de routage du trafic d'une interface réseau à une autre.
L'activation du routage correspond à un réglage de paramètres du sous-système réseau du noyau Linux. L'outil qui permet de consulter et modifier les réglages de paramètre sur le noyau est appelé sysctl.
On retrouve ici les mêmes opérations que celles effectuées sur le routeur qui tient le rôle Hub.
Le routeur Spoke doit utiliser un
démon pppd sur le VLAN Data
(orange)
pour établir une session PPP
avec le routeur Hub. À la différence de
ce dernier, il n'est pas à l'initiative du dialogue PPPoE mais il doit être capable de gérer
l'encapsulation des trames PPP
sur un réseau local Ethernet.
Q32. |
Quel paquet fournit le démon de gestion des sessions du protocole PPP sur le routeur Spoke ? Rechercher dans le catalogue des paquets, la référence ppp. |
|||
apt search ^ppp ppp/testing 2.5.0-1+2 amd64
protocole point à point (PPP) - démon
ppp-dev/testing 2.5.0-1+2 all
protocole point à point (PPP) – fichiers de développement
ppp-gatekeeper/testing 0.1.0-201406111015-1.1 all
PPP manager for handling balanced, redundant and failover links
pppoe/testing 4.0-1 amd64
Pilote PPP sur Ethernet
pppoeconf/testing 1.21+nmu3 all
configures PPPoE/ADSL connections
wmppp.app/testing 1.3.2-2 amd64
contrôle de connexion et surveillance de la charge réseau avec aspect NeXTStep
Le résultat de la commande apt show ppp montre que c'est bien ce paquet qui répond au besoin. sudo apt -y install ppp |
||||
Q33. |
Comment utiliser l'encapsulation des trames PPP dans Ethernet à partir du démon pppd fourni avec le paquet ppp ? Rechercher dans le répertoire de documentation du paquet ppp. |
|||
Dans le répertoire Toujours à partir du même répertoire, on trouve dans la liste
des fichiers d'exemples de configuration un modèle adapté à notre
contexte : |
||||
Q34. |
Dans quel fichier sont stockés les paramètres d'identité et d'authentification utilisés par le protocole CHAP ? Consulter les pages de manuels du démon pppd à la section AUTHENTICATION. |
|||
C'est le fichier Voici un exemple du contenu de ce fichier. Le nom du client ainsi que son mot de passe secret doivent être identiques à chaque extrémité de la session PPP. # Secrets for authentication using CHAP # client server secret IP addresses "spoke_site0" * "5p0k3" * |
||||
Q35. |
Quelles sont les options de configuration
du démon pppd à
placer dans le fichier Utiliser le fichier exemple PPPoE fourni avec la documentation du paquet ppp. |
|||
Voici comment créer un fichier cat << 'EOF' | sudo tee /etc/ppp/peers/pppoe-provider # Le nom d'utilisateur désigne l'entrée du fichier /etc/ppp/chap-secrets user spoke_site0 # Chargement du module PPPoE avec les détails dans la journalisation plugin rp-pppoe.so rp_pppoe_ac BRAS rp_pppoe_verbose 1 # Interface (VLAN) utilisé pour l'établissement de la session PPP enp0s1.441 # Les adresses sont attribuées par le "serveur" PPPoE noipdefault # L'adresse de résolution DNS est aussi fournie par le serveur PPPoE usepeerdns # La session PPP devient la route par défaut du routeur Spoke defaultroute # Demande de réouverture de session automatique en cas de rupture persist # Le routeur Spoke n'exige pas que le routeur Hub s'authentifie noauth # Messages d'informations détaillés dans la journalisation debug # Utilisation du protocole IPv6 +ipv6 # Options préconisées par la documentation noaccomp default-asyncmap nodeflate nopcomp novj novjccomp lcp-echo-interval 10 EOF |
||||
Q36. |
Comment lancer le démon pppd pour qu'il prenne en compte les paramètres définis dans le fichier complété à la question précédente ? Consulter les pages de manuels du démon pppd. |
|||
C'est l'outil pon qui permet de désigner le fichier de configuration à utiliser. Voici une copie d'écran du lancement du démon pppd. sudo pon pppoe-provider Cette commande individuelle est à utiliser pour faire un tout premier test. Pour rendre la configuration persistante au redémarrage nous avons besoin de créer un service systemd. Il ne faut donc pas oublier d'arrêter le processus avant de passer à la question suivante. Le paquet fournit un outil dédié : poff. sudo poff -a pppoe-provider |
||||
Q37. |
Quels sont les noms des deux sous-couches du protocole PPP qui apparaissent dans les journaux systèmes ? Quels sont les rôles respectifs de ces deux sous-couches ? Consulter la page Point-to-Point Protocol. |
|||
La consultation des journaux système lors du dialogue PPP fait apparaître tous les détails. Voir les exemples de traces à l'adresse : Traces d'une ouverture de session PPPoE. |
||||
Q38. |
Quels sont les en-têtes du dialogue qui identifient les requêtes (émises|reçues), les rejets et les acquittements ? Consulter les journaux système contenant les traces d'une connexion PPP. |
|||
La copie d'écran donnée ci-dessus fait apparaître les directives
|
||||
Q39. |
Comment assurer une ouverture automatique de la session PPP à chaque réinitialisation système ? Consulter la page systemd Services et rechercher la procédure à suivre pour ajouter un service au lancement du système. |
|||
On commence par la création du fichier de service appelé :
Voici l'instruction de création du fichier de service. cat << EOF | sudo tee /etc/systemd/system/ppp.service [Unit] Description=PPPoE Client Connection After=network.target Wants=network.target BindsTo=sys-subsystem-net-devices-enp0s1.441.device After=sys-subsystem-net-devices-enp0s1.441.device [Service] Type=forking ExecStart=/usr/bin/pon pppoe-provider ExecStop=/usr/bin/poff pppoe-provider Restart=on-failure RestartSec=20 [Install] WantedBy=multi-user.target EOF |
||||
Q40. |
Comment activer le nouveau service et contrôler son état après lancement ? Consulter la page systemd Services et rechercher la procédure à suivre pour activer et lancer un service. |
|||
On commence par la relecture de la liste des services disponibles par le gestionnaire systemd. sudo systemctl daemon-reload On active le nouveau service. sudo systemctl enable ppp.service On lance ce nouveau service. sudo systemctl start ppp.service On vérifie que l'opération s'est déroulée correctement. systemctl status ppp.service ● ppp.service - PPPoE Client Connection Loaded: loaded (/etc/systemd/system/ppp.service; enabled; preset: enabled) Active: active (running) since Sun 2024-09-22 08:21:32 CEST; 13min ago Invocation: 69386a40f7574821b3986ed6c6c242f7 Main PID: 496 (pppd) Tasks: 1 (limit: 1086) Memory: 2.8M (peak: 4.9M) CPU: 56ms CGroup: /system.slice/ppp.service └─496 /usr/sbin/pppd call pppoe-provider sept. 22 08:21:37 spoke pppd[496]: rcvd [IPCP ConfAck id=0x2 <addr 10.4.41.2> <ms-dns1 172.16.0.2> <ms-dns2 172.16.0.2>] sept. 22 08:21:37 spoke pppd[496]: Script /etc/ppp/ip-pre-up started (pid 510) sept. 22 08:21:37 spoke pppd[496]: Script /etc/ppp/ip-pre-up finished (pid 510), status = 0x0 sept. 22 08:21:37 spoke pppd[496]: local IP address 10.4.41.2 sept. 22 08:21:37 spoke pppd[496]: remote IP address 10.4.41.1 sept. 22 08:21:37 spoke pppd[496]: primary DNS address 172.16.0.2 sept. 22 08:21:37 spoke pppd[496]: secondary DNS address 172.16.0.2 sept. 22 08:21:37 spoke pppd[496]: Script /etc/ppp/ip-up started (pid 514) sept. 22 08:21:37 spoke pppd[496]: Script /etc/ppp/ipv6-up finished (pid 509), status = 0x0 sept. 22 08:21:37 spoke pppd[496]: Script /etc/ppp/ip-up finished (pid 514), status = 0x0 |
||||
Q41. |
Comment utiliser la session PPP (le VLAN orange) comme lien unique de raccordement réseau du routeur Spoke ? Maintenant que le fonctionnement de la session PPP est validé, nous n'avons plus besoin du
raccordement temporaire sur le routeur Spoke. Il faut donc commenter les entrées du
fichier Une fois ces opérations effectuées, on peut redémarre le routeur Spoke pour se placer en situation de raccordement distant. |
|||
Pour commencer, on commente les entrées inutile du fichier
cat /etc/netplan/enp0s1.yaml network: version: 2 ethernets: enp0s1: dhcp4: false dhcp6: false accept-ra: false # nameservers: # addresses: # - 172.16.0.2 # - 2001:678:3fc:3::2 vlans: enp0s1.440: # VLAN violet id: 440 link: enp0s1 addresses: - fe80:1b8::2/64 enp0s1.441: # VLAN orange id: 441 link: enp0s1 addresses: [] # enp0s1.52: # VLAN accès temporaire # id: 52 # link: enp0s1 # dhcp4: true # dhcp6: false # accept-ra: true On peut appliquer directement les modifications à l'aide de la commande netplan. sudo netplan apply sudo netplan status
On édite le fichier grep -Ev '(^#|^$)' /etc/systemd/resolved.conf [Resolve] DNS=172.16.0.2 Il ne faut pas oublier de relancer le service pour prendre en compte les modifications du fichier. sudo systemctl restart systemd-resolved Le routeur Spoke est maintenant prêt à être redémarré pour utiliser le lien de raccordement distant comme seul canal d'accès aux autres réseaux. sudo reboot |