Dans cette section, on étudie la machine virtuelle qui joue le rôle de routeur entre le réseau d'infrastructure (VLAN rouge) et le réseau étendu (VLANs violet et orange) qui dessert le site distant.
Une fois la machine virtuelle routeur lancée, les premières étapes consistent à lui attribuer un nouveau nom et à configurer les interfaces réseau pour joindre les hôtes voisins.
Q9. |
Comment changer le nom de la machine virtuelle ? |
Il faut éditer le fichier
|
|
Q10. |
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.360: # VLAN rouge id: 360 link: enp0s1 addresses: - 192.168.104.130/29 - 2001:678:3fc:168::82/64 routes: - to: default via: 192.168.104.129 - to: "::/0" via: "fe80:168::1" on-link: true enp0s1.440: # VLAN violet id: 440 link: enp0s1 addresses: - fe80:1b8::1/64 enp0s1.441: # VLAN orange id: 441 link: enp0s1 addresses: [] Une fois le fichier de configuration en place, il suffit de faire appel à la commande netplan pour appliquer les changements. sudo netplan apply Pour vérifier que l'adressage réseau est correct, on dispose de plusieurs solutions. Voici un exemple avec netplan qui reprend l'ensemble de la configuration réseau. sudo netplan status Online state: online DNS Addresses: 2001:678:3fc:3::2 (compat) 172.16.0.2 (compat) 2001:678:3fc:3::2 (compat) DNS Search: . ● 1: lo ethernet UNKNOWN/UP (unmanaged) MAC Address: 00:00:00:00:00:00 Addresses: 127.0.0.1/8 ::1/128 ● 2: enp0s1 ethernet UP (networkd: enp0s1) MAC Address: b8:ad:ca:fe:00:05 (Red Hat, Inc.) Addresses: fe80::baad:caff:fefe:5/64 (link) DNS Addresses: 172.16.0.2 2001:678:3fc:3::2 Routes: fe80::/64 metric 256 ● 3: enp0s1.441 vlan UP (networkd: enp0s1.441) MAC Address: b8:ad:ca:fe:00:05 Addresses: fe80::baad:caff:fefe:5/64 (link) Routes: fe80::/64 metric 256 ● 4: enp0s1.440 vlan UP (networkd: enp0s1.440) MAC Address: b8:ad:ca:fe:00:05 Addresses: fe80:1b8::1/64 (link) fe80::baad:caff:fefe:5/64 (link) Routes: fe80::/64 metric 256 fe80:1b8::/64 metric 256 ● 5: enp0s1.360 vlan UP (networkd: enp0s1.360) MAC Address: b8:ad:ca:fe:00:05 Addresses: 192.168.104.130/29 2001:678:3fc:168:baad:caff:fefe:5/64 (dynamic, ra) 2001:678:3fc:168::82/64 (ra) fe80::baad:caff:fefe:5/64 (link) DNS Addresses: 2001:678:3fc:3::2 Routes: default via 192.168.104.129 (static) 192.168.104.128/29 from 192.168.104.130 (link) 2001:678:3fc:168::/64 metric 256 2001:678:3fc:168::/64 metric 512 (ra) fe80::/64 metric 256 default via fe80:168::1 metric 1024 (static) |
|
Q11. |
Quels sont les tests de connectivité réalisables après application de la nouvelle configuration des interfaces réseau ? Relever l'état des trois interfaces et procédez aux tests ICMP et DNS en respectant l'ordre des couches de la modélisation. |
Sans la confirmation que la configuration du serveur de conteneurs est prête, c'est du côté hébergement et accès Internet qu'il faut orienter les tests. Classiquement, on cherche à joindre la passerelle en premier puis l'Internet ensuite via des requêtes ICMP. Enfin, on effectue un test de couche application avec une requête DNS. ping -q -c2 192.168.104.129
PING 192.168.104.129 (192.168.104.129) 56(84) bytes of data.
--- 192.168.104.129 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 1.501/1.516/1.531/0.015 ms
PING 9.9.9.9 (9.9.9.9) 56(84) bytes of data.
--- 9.9.9.9 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 49.304/52.098/54.892/2.794 ms
ping -q -c2 fe80:168::1%enp0s1.360
PING fe80:168::1%enp0s1.360(fe80:168::1%enp0s1.360) 56 data bytes
--- fe80:168::1%enp0s1.360 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 1.459/13.305/25.152/11.846 ms
ping -q -c2 2620:fe::fe
PING 2620:fe::fe(2620:fe::fe) 56 data bytes
--- 2620:fe::fe ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 41.812/42.437/43.063/0.625 ms
host quad9.net quad9.net has address 216.21.3.77 quad9.net has IPv6 address 2620:0:871:9000::77 quad9.net mail is handled by 10 mx4.quad9.net. quad9.net mail is handled by 20 mx2.quad9.net. quad9.net mail is handled by 5 mx1.quad9.net. |
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.
Le résultat de la question ci-dessus montre que les hôtes situés dans le réseau des conteneurs ne peuvent pas joindre l'Internet puisque les préfixes réseau utilisés ont une portée limitée.
Dans le scénario de ces travaux pratiques, il est nécessaire de passer par une authentification pour acheminer le trafic réseau entre les routeurs Hub et Spoke. Cette fonction est assurée à l'aide du protocole PPP.
Le protocole PPP n'a pas été conçu suivant le modèle client/serveur mais pair à pair. Il suppose que deux les processus pairs de la liaison point à point échangent des informations, dont l'authentification mutuelle.
Dans notre cas, le routeur qui tient le rôle Hub joue le rôle de serveur dans le sens où il exige que le routeur avec le rôle Spoke s'authentifie auprès de lui avant de fournir les adresses de couche réseau.
Q18. |
Quel paquet spécifique à la gestion du dialogue PPPoE à installer sur le routeur Hub ? Rechercher dans le catalogue des paquets, la référence pppoe. |
|||
apt search ^pppoe pppoe/testing 4.0-1 amd64 Pilote PPP sur Ethernet Le résultat de la commande apt show pppoe montre que c'est bien ce paquet qui répond au besoin. On peut donc l'installer. sudo apt -y install pppoe |
||||
Q19. |
Quel est l'outil contenu dans le paquet demandé à la question précédente qui assure le rôle de serveur PPPoE ? Rechercher dans la liste des outils fournis avec le paquet et les pages de manuels. |
|||
L'outil pppoe-server gère directement l'encapsulation des trames PPP dans les trames Ethernet. Il communique ensuite les paramètres utiles au démon pppd qui fonctionne de façon totalement transparente vis-à-vis de la technologie du réseau sous-jacent. |
||||
Q20. |
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 les différents protocoles utilisés lors de l'ouverture de session. Exemple de commande de consultation des journaux système. journalctl -n 200 -f -u pppoe-server.service
Des exemples complets de traces d'établissement de connexion PPP sont donnés à l'adresse : Traces d'une ouverture de session PPPoE. |
||||
Q21. |
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
|
||||
Q22. |
Dans quel fichier sont stockés les paramètres d'identité et d'authentification utilisés par le protocole EAP pour la méthode 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. # Secrets for authentication using CHAP # client server secret IP addresses "spoke_site0" * "5p0k3" * On peut le compléter directement à l'aide de la commande suivante. echo '"spoke_site0" * "5p0k3" *' | sudo tee -a /etc/ppp/chap-secrets |
||||
Q23. |
Dans quel fichier sont stockés les paramètres passés au démon pppd lors du lancement du serveur PPPoE ? Consulter les pages de manuels de l'outil pppoe-server. |
|||
C'est le fichier |
||||
Q24. |
Quelles sont les options du protocole PPP qui doivent être implantées dans le fichier demandé à la question précédente ? Consulter les pages de manuels du démon pppd et rechercher les paramètres correspondant à la liste suivante.
|
|||
Voici une copie de la commande de création du fichier
cat << 'EOF' | sudo tee /etc/ppp/pppoe-server-options # Gestion de session avec PAM login # Authentification EAP require-eap # Le Routeur Hub détient déjà une route par défaut nodefaultroute # Envoi de l'adresse de résolution DNS avec les adresses IPv4 ms-dns 172.16.0.2 # Ajout du protocole IPv6 +ipv6 # Informations détaillées dans la journalisation debug # Options préconisées par la documentation noaccomp default-asyncmap nodeflate nopcomp novj novjccomp lcp-echo-interval 10 EOF |
||||
Q25. |
Comment créer le compte utilisateur local sur le routeur bleu sachant qu'il n'est autorisé ni à se connecter ni à avoir un répertoire personnel ? Consulter les options de la commande adduser. |
|||
Voici un exemple de commande adduser. sudo adduser --gecos 'Spoke Router site0' --disabled-login --no-create-home spoke_site0
|
||||
Q26. |
Quels sont les paramètres à donner au lancement de l'outil pppoe-server pour qu'il délivre les adresses au routeur vert après authentification de celui-ci ? Consulter les options de la commande pppoe-server. |
|||
Voici un exemple de lancement manuel de la commande pppoe-server. sudo pppoe-server -I enp0s1.441 -C BRAS -L 10.4.41.1 -R 10.4.41.2 -N 1 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. sudo killall pppoe-server |
||||
Q27. |
Comment créer une nouvelle unité systemd responsable du lancement du processus pppoe-server ? 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é :
Dans l'exemple ci-dessous, les paramètres suivants doivent être édités pour respecter le plan d'adressage défini.
Voici un exemple de création du fichier d'unité systemd. cat << 'EOF' | sudo tee /etc/systemd/system/pppoe-server.service [Unit] Description=PPPoE Server After=systemd-networkd.service Wants=systemd-networkd.service BindsTo=sys-subsystem-net-devices-enp0s1.441.device After=sys-subsystem-net-devices-enp0s1.441.device [Service] Type=forking ExecCondition=/bin/sh -c '[ "$(systemctl show --property MainPID --value pppoe-server.service)" = "0" ]' ExecCondition=/bin/sh -c '[ -z "$(pgrep pppoe-server)" ]' ExecStart=/usr/sbin/pppoe-server -I enp0s1.441 -C BRAS -L 10.4.41.1 -R 10.4.41.2 -N 1 Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target EOF |
||||
Q28. |
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 pppoe-server.service On lance ce nouveau service. sudo systemctl start pppoe-server.service On vérifie que l'opération s'est déroulée correctement. systemctl status pppoe-server.service ● pppoe-server.service - PPPoE Server Loaded: loaded (/etc/systemd/system/pppoe-server.service; enabled; preset: enabled) Active: active (running) since Sat 2024-09-21 15:39:39 CEST; 36min ago Invocation: 23332f16c26f4889a9f063870e77da9c Process: 2958 ExecCondition=/bin/sh -c [ "$(systemctl show --property MainPID --value pppoe-server.service)" = "0" ] (code=exited, status=0/SUCCESS) Process: 2960 ExecCondition=/bin/sh -c [ -z "$(pgrep pppoe-server)" ] (code=exited, status=0/SUCCESS) Process: 2964 ExecStart=/usr/sbin/pppoe-server -I enp0s1.441 -C BRAS -L 10.4.41.1 -R 10.4.41.2 -N 1 (code=exited, status=0/SUCCESS) Main PID: 2966 (pppoe-server) Tasks: 1 (limit: 1086) Memory: 208K (peak: 1.8M) CPU: 67ms CGroup: /system.slice/pppoe-server.service └─2966 /usr/sbin/pppoe-server -I enp0s1.441 -C BRAS -L 10.4.41.1 -R 10.4.41.2 -N 1 sept. 21 15:39:39 hub systemd[1]: Starting pppoe-server.service - PPPoE Server... sept. 21 15:39:39 hub systemd[1]: Started pppoe-server.service - PPPoE Server. la copie d'écran ci-dessus montre que le service pppoe-server est lancé avec le jeu de paramètres de la maquette. En l'état actuel de la configuration, aucune session PPP n'a encore été établie. Il faut maintenant passer à la configuration réseau du routeur Spoke pour avancer dans l'utilisation du protocole PPP. |