9 DS réseau du 7 novembre 2018
Tous documents autorisés. Répondez directement sur l’énoncé.
Vous trouverez la correction sur le site web habituel.
9.1 Exercice sur l’isolation
Le but de cet exercice est d’automatiser la gestion des conteneurs à base de unshare.
Les conteneurs sont créés à partir d’une image, c’est à dire un système de fichiers contenu
dans un fichier. Un conteneur est créé connecté à un ou plusieurs commutateurs virtuels.
-
Lors de l’exécution de quelle commande le script de création d’un conteneur se rendra
compte qu’un commutateur virtuel n’existe pas ? En cas de non-existence d’un commutateur
virtuel quelles opérations de nettoyage le script doit-il entreprendre ? Comment ordonnancer
les opérations de création d’un conteneur pour réduire le nombre des opérations de nettoyage ?
- Quelles sont les informations à conserver de la création d’un conteneur pour pouvoir
en supprimer toute trace lors de son arrêt ? Dans quel objet Unix ces informations peuvent-elles
être stockées ? Donnez un format de sauvegarde permettant de simplifier l’opération d’arrêt
du conteneur.
- En vous basant sur le format présenté dans la question précédente écrivez le script
d’arrêt du conteneur. Il est supposé qu’un nom de conteneur est donné lors de la création d’un
conteneur. Le même nom est donné en paramètre du script d’arrêt.
- Quel utilitaire, évoqué en cours, peut-être utilisé pour lancer un shell dans un
conteneur démarré par le script de création de conteneur ? Ecrivez, pour notre système de conteneurs,
l’équivalent de la commande docker attach. Ce script prend en paramètre le nom du conteneur.
- Ecrivez l’équivalent de la commande docker ps pour notre système de conteneurs.
- Ecrivez le script, exécuté par un conteneur, permettant d’attendre la création des interfaces
réseaux du conteneur. Il est entendu que les noms des interfaces réseaux sont passés en paramètres
du script d’attente.
9.2 Exercice sur la virtualisation
Deux machines virtuelles Xen sont définies sur un serveur de virtualisation : bob et alice.
Les fichiers de configuration des deux machines sont donnés :
# cat alice.cfg
kernel = '/boot/vmlinuz-3.16.0-4-amd64'
extra = 'elevator=noop'
ramdisk = '/boot/initrd.img-3.16.0-4-amd64'
vcpus = '1'
memory = '1024'
root = '/dev/xvda2 ro'
disk = [
'file:/usr/local/xen/domains/alice/disk.img,xvda2,w',
'file:/usr/local/xen/domains/alice/swap.img,xvda1,w'
]
name = 'alice'
vif = [ 'mac=00:61:6c:69:63:65,bridge=wonderland' ]
# cat bob.cfg
kernel = '/boot/vmlinuz-3.16.0-4-amd64'
extra = 'elevator=noop'
ramdisk = '/boot/initrd.img-3.16.0-4-amd64'
vcpus = '2'
memory = '4096'
root = '/dev/xvda2 ro'
disk = [
'phy:/dev/big/bob,xvda2,w'
]
name = 'bob'
vif = [ 'mac=00:62:6f:62:20:20' ]
-
L’administrateur a oublié l’adresse IPv4 et le mot de passe de l’unique utilisateur root
d’alice. Cette adresse est définie de façon statique dans la machine. Indiquez à l’administrateur les
commandes UNIX à utiliser, sur le serveur de virtualisation, pour récupérer l’adresse.
- L’adresse IPv4 récupérée, l’administrateur tente de lancer un ping de la machine bob
vers alice. Le ping ne fonctionne pas. Au vu du fichier de configuration de bob, pouvez-vous
dire pourquoi ?
- L’administrateur s’aperçoit que le système de fichiers de bob est presque plein. Quelles
commandes pouvez-vous lui suggérer pour décongestionner bob ? Pour chaque commande, précisez sur
quelle machine il faut la lancer.
9.3 Exercice sur la configuration IP
Cet exercice consiste à vous faire diagnostiquer une panne réseau étape par étape. Les utilisateurs
de base se contentent de crier "le réseau ne fonctionne pas" dès qu’ils n’arrivent plus à naviguer
sur Internet. En tant qu’ingénieur informaticien, vous êtes forcément plus subtil.
Vous avez commencé par regarder si la machine avait encore une adresse IPv4 valide avec la commande
ip address show et vous constaté que non. Le serveur DHCP semble donc hors-service ou non
accessible. Répondez aux questions suivantes pour cerner le problème.
-
Comment faites-vous pour vérifier que le commutateur sur lequel est connecté votre PC est
bien alimenté électriquement (vous n’avez pas accès aux locaux techniques) ?
- Supposons que vous constatez que le commutateur est allumé, comment tester les commutateurs
fonctionnent réellement, au moins localement ? Considérez, par exemple, que vous êtes dans la salle E304.
- Supposons que vous constatez que les commutateurs fonctionnent parfaitement, comment tester
si vous avez accès au routeur du site ? Là encore, considérez que vous vous trouvez en E304, vous
connaissez bien la configuration IPv4 des machines de cette salle.
- Supposons que vous constatez avoir accès au commutateur, comment allez vous tester que vous
avez accès au serveur DNS du site ? Prenez encore l’exemple des machines de la salle E304.
- Supposons que vous constatez avoir accès au serveur DNS, comment allez vous tester que ce
serveur DNS fonctionne ? Prenez encore l’exemple des machines de la salle E304.
- Si le serveur DNS fonctionne comment pouvez trancher entre une panne du serveur DHCP
ou un accès Internet coupé à la sortie de votre site ?