Dans cette section, on étudie la machine virtuelle qui joue le rôle de routeur entre le réseau d'hébergement et un réseau de conteneurs. Pour traiter les questions, il est nécessaire de mettre en œuvre une maquette avec un adressage indépendant. Voici les choix effectués pour la maquette.
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.
Q6. |
Comment changer le nom de la machine virtuelle ? |
Il faut éditer le fichier
|
|
Q7. |
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: 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: id: 440 link: enp0s1 addresses: - 192.0.2.1/24 - fda0:7a62:1b8::1/64 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 la commande networkctl qui synthétise l'ensemble de la configuration réseau. networkctl status ● Interfaces: 1, 2, 3, 4 State: routable Online state: online Address: 192.168.104.130 on enp0s1.360 192.0.2.1 on enp0s1.440 2001:678:3fc:168::82 on enp0s1.360 2001:678:3fc:168:baad:caff:fefe:5 on enp0s1.360 fda0:7a62:1b8::1 on enp0s1.440 fe80::baad:caff:fefe:5 on enp0s1 fe80::baad:caff:fefe:5 on enp0s1.360 fe80::baad:caff:fefe:5 on enp0s1.440 Gateway: 192.168.104.129 on enp0s1.360 fe80:168::1 on enp0s1.360 DNS: 172.16.0.2 2001:678:3fc:3::2 |
|
Q8. |
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 5 mx1.quad9.net. quad9.net mail is handled by 20 mx2.quad9.net. quad9.net mail is handled by 100 keriomail.pch.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 but mettre en place un adressage automatique des
conteneurs hébergés sur l'autre machine virtuelle, on utilise
l'outil dnsmasq
. L'idée est de
fournir un service DHCPv4 et
SLAAC en un seul et unique
fichier de configuration.
On débute par l'installation du paquet.
sudo apt -y install dnsmasq
Q15. |
Comment remplacer le fichier de configuration fourni lors de l'installation du paquet par notre propre fichier de configuration ? Consulter le contenu du fichier |
|||
Voici la commande de copie du fichier issu de l'installation. sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.dist Voici un exemple de configuration adaptée à la maquette. cat << EOF | sudo tee /etc/dnsmasq.conf # Specify Container VLAN interface interface=enp0s1.440 # Enable DHCPv4 on Container VLAN dhcp-range=192.0.2.20,192.0.2.200,3h # Enable IPv6 router advertisements enable-ra # Enable SLAAC dhcp-range=::,constructor:enp0s1.440,ra-names,slaac # Optional: Specify DNS servers dhcp-option=option:dns-server,172.16.0.2,9.9.9.9 dhcp-option=option6:dns-server,[2001:678:3fc:3::2],[260:fe::fe] # Avoid DNS listen port conflict between dnsmasq and systemd-resolved port=0 EOF
sudo systemctl restart dnsmasq systemctl status dnsmasq ● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; enabled; preset: enabled) Active: active (running) since Sat 2024-09-14 18:49:02 CEST; 10min ago Invocation: 8887da64fc36432db7be668ec71cbfb7 Process: 1072 ExecStartPre=/usr/share/dnsmasq/systemd-helper checkconfig (code=exited, status=0/SUCCESS) Process: 1077 ExecStart=/usr/share/dnsmasq/systemd-helper exec (code=exited, status=0/SUCCESS) Process: 1084 ExecStartPost=/usr/share/dnsmasq/systemd-helper start-resolvconf (code=exited, status=0/SUCCESS) Main PID: 1083 (dnsmasq) Tasks: 1 (limit: 1087) Memory: 720K (peak: 2.8M) CPU: 94ms CGroup: /system.slice/dnsmasq.service └─1083 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -r /run/dnsmasq/resolv.conf \ -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d sept. 14 18:49:02 router systemd[1]: Started dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server. |