« Atelier SysRes SE4 2024/2025 E5 » : différence entre les versions

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
= Projet Virtualisation - Kaoutar EL-BACHIRI =
= Atelier SysRes SE4 2024/2025 - Kaoutar EL-BACHIRI =


= Atelier SysRes SE4 2024/2025 - Kaoutar EL-BACHIRI =
== 1. Introduction ==
Dans ce TP, nous avons mis en place une infrastructure de **virtualisation** sous **Xen** sur le serveur **Capbreton**. 
L’objectif est de créer, configurer et interconnecter plusieurs machines virtuelles, en respectant l’isolation des ressources et la connectivité réseau.
 
Nous avons utilisé **SSH** pour accéder à Capbreton et y gérer nos VMs :
<syntaxhighlight lang="bash">
ssh user@capbreton.plil.info
</syntaxhighlight>
 
Le TP comprend plusieurs étapes :
# Création des machines virtuelles (Apollo, Moon, Solstice)
# Configuration du stockage avec LVM
# Configuration réseau avec IPv4 et IPv6
# Mise en place de la machine mandataire (Solstice) pour assurer le routage et l’accès Internet
# Tests et validation de la connectivité
 
---


== 1. Création des machines virtuelles ==
== 2. Création des machines virtuelles ==
=== 1.1 Commande de création des VM ===
=== 2.1 Commande de création des VM ===
Nous avons créé les machines virtuelles **Apollo** et **Moon** avec la commande `xen-create-image` :
Nous avons créé nos trois VM sur **Capbreton** en utilisant `xen-create-image` avec les spécifications suivantes :


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
xen-create-image --hostname=SE4.Apollo --dhcp --dir=/usr/local/xen --size=10G --dist=daedalus --memory=2G --bridge=pontKS
xen-create-image --hostname=SE4.Apollo --dhcp --dir=/usr/local/xen --size=10G --dist=daedalus --memory=2G --bridge=pontKS
xen-create-image --hostname=SE4.Moon --dhcp --dir=/usr/local/xen --size=10G --dist=daedalus --memory=2G --bridge=pontKS
xen-create-image --hostname=SE4.Moon --dhcp --dir=/usr/local/xen --size=10G --dist=daedalus --memory=2G --bridge=pontKS
xen-create-image --hostname=SE4.Solstice --dhcp --dir=/usr/local/xen --size=10G --dist=daedalus --memory=2G --bridge=pontKS
</syntaxhighlight>
</syntaxhighlight>


=== 1.2 Lancement et connexion aux VM ===
=== 2.2 Lancement et connexion aux VM ===
Une fois les images créées, nous avons démarré les VMs et accédé à leurs consoles :
Une fois créées, nous avons démarré les VMs et ouvert leurs consoles :


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sudo xl create /etc/xen/SE4.Apollo.cfg
sudo xl create /etc/xen/SE4.Apollo.cfg
sudo xl create /etc/xen/SE4.Moon.cfg
sudo xl create /etc/xen/SE4.Moon.cfg
sudo xl create /etc/xen/SE4.Solstice.cfg


sudo xl console SE4.Apollo
sudo xl console SE4.Apollo
sudo xl console SE4.Moon
sudo xl console SE4.Moon
sudo xl console SE4.Solstice
</syntaxhighlight>
</syntaxhighlight>


---
---


== 2. Configuration des machines de services (Apollo et Moon) ==
== 3. Configuration du stockage et montage de /var et /tmp ==
=== 2.1 Partitions et montage de `/var` et `/home` ===
=== 3.1 Objectif ===
<u>Objectif :</u> Déplacer `/var` et `/tmp` vers des partitions dédiées et les monter automatiquement.
Nous avons séparé les répertoires `/var` et `/tmp` sur des partitions dédiées avec **LVM**, pour améliorer l’organisation et la gestion du stockage.
 
=== 3.2 Création des partitions LVM ===
Nous avons initialisé **LVM** sur chaque VM :


#### **Création des partitions LVM**
'''Sur Apollo :'''
Sur chaque VM, nous avons créé des volumes logiques :
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sudo lvcreate -L10G -nvar apollo_vg
sudo lvcreate -L10G -nvar apollo_vg
sudo lvcreate -L10G -ntmp apollo_vg
sudo lvcreate -L10G -ntmp apollo_vg
</syntaxhighlight>


'''Sur Moon :'''
<syntaxhighlight lang="bash">
sudo lvcreate -L10G -nvar moon_vg
sudo lvcreate -L10G -nvar moon_vg
sudo lvcreate -L10G -ntmp moon_vg
sudo lvcreate -L10G -ntmp moon_vg
</syntaxhighlight>
</syntaxhighlight>


#### **Formatage des partitions**
=== 3.3 Formatage des partitions ===
Nous avons formaté les volumes logiques en `ext4` :
Nous avons formaté les volumes en **ext4** :
 
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sudo mkfs.ext4 /dev/apollo_vg/var
sudo mkfs.ext4 /dev/apollo_vg/var
Ligne 49 : Ligne 74 :
</syntaxhighlight>
</syntaxhighlight>


#### **Modification du fichier `/etc/fstab`**
=== 3.4 Ajout dans /etc/fstab pour montage automatique ===
Nous avons ajouté ces entrées pour monter automatiquement les partitions :
'''Sur Apollo :'''
 
<u>Sur Apollo :</u>
<syntaxhighlight lang="plaintext">
<syntaxhighlight lang="plaintext">
/dev/apollo_vg/var  /var  ext4 defaults 0 2
/dev/apollo_vg/var  /var  ext4 defaults 0 2
Ligne 58 : Ligne 81 :
</syntaxhighlight>
</syntaxhighlight>


<u>Sur Moon :</u>
'''Sur Moon :'''
<syntaxhighlight lang="plaintext">
<syntaxhighlight lang="plaintext">
/dev/moon_vg/var  /var  ext4 defaults 0 2
/dev/moon_vg/var  /var  ext4 defaults 0 2
Ligne 64 : Ligne 87 :
</syntaxhighlight>
</syntaxhighlight>


#### **Test des montages**
=== 3.5 Vérification des montages ===
Nous avons rechargé la configuration et vérifié les montages :
Nous avons testé le montage automatique :
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sudo mount -a
sudo mount -a
Ligne 73 : Ligne 96 :
---
---


== 3. Configuration réseau ==
== 4. Configuration réseau ==
=== 3.1 Choix des adresses IPv4 et IPv6 ===
=== 4.1 Adressage des machines ===
<u>Adresses utilisées :</u>
'''Adresses IPv4 et IPv6 utilisées :'''
- **Apollo** : `172.16.0.2`
* Apollo : `172.16.0.2`
- **Moon** : `172.16.0.3`
* Moon : `172.16.0.3`
- **Machine Mandataire (Solstice)** : `172.16.0.1` et `193.48.57.166/27`
* Machine Mandataire (Solstice) :
** Réseau privé : `172.16.0.1`
** Réseau routé : `193.48.57.166/27`


---
=== 4.2 Configuration réseau des machines de services ===
Nous avons modifié `/etc/network/interfaces` pour définir une adresse IPv4 statique et obtenir une adresse IPv6 automatiquement.


=== 3.2 Configuration des machines de services ===
'''Sur Apollo :'''
Nous avons modifié `/etc/network/interfaces` pour attribuer une adresse IP statique et obtenir une adresse IPv6 automatiquement.
 
<u>Sur Apollo :</u>
<syntaxhighlight lang="plaintext">
<syntaxhighlight lang="plaintext">
auto eth0
auto eth0
Ligne 96 : Ligne 119 :
</syntaxhighlight>
</syntaxhighlight>


<u>Sur Moon :</u>
'''Sur Moon :'''
<syntaxhighlight lang="plaintext">
<syntaxhighlight lang="plaintext">
auto eth0
auto eth0
Ligne 116 : Ligne 139 :
---
---


== 4. Configuration de la machine mandataire (Solstice) ==
== 5. Configuration de la machine mandataire (Solstice) ==
<u>Objectif :</u> Configurer la machine mandataire **SE4.Solstice** pour qu’elle assure la **connexion entre le réseau privé (172.16.0.0/24) et Internet**.
=== 5.1 Configuration réseau ===
 
### **4.1 Modification du fichier `/etc/network/interfaces`**
Nous avons attribué une adresse fixe sur l'interface connectée au réseau privé et une IP publique pour l’accès Internet.
Nous avons attribué une adresse fixe sur l'interface connectée au réseau privé et une IP publique pour l’accès Internet.


Ligne 148 : Ligne 169 :
</syntaxhighlight>
</syntaxhighlight>


---
=== 5.2 Configuration du NAT pour permettre la sortie Internet ===
 
### **4.2 Configuration du NAT pour permettre la sortie Internet**
Pour permettre aux machines Apollo et Moon d’accéder à Internet, nous avons activé le NAT.
 
#### **Activation du transfert IP**
<syntaxhighlight lang="bash">
sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
</syntaxhighlight>
 
#### **Ajout des règles `iptables` pour la NAT**
<syntaxhighlight lang="bash">
sudo iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -o eth0 -j MASQUERADE
</syntaxhighlight>
 
Nous avons sauvegardé la configuration :
<syntaxhighlight lang="bash">
sudo iptables-save | sudo tee /etc/iptables/rules.v4
</syntaxhighlight>
 
---
 
### **4.3 Test de connectivité et accès Internet**
Nous avons testé la sortie Internet depuis **Apollo** et **Moon** :
 
<syntaxhighlight lang="bash">
ping -c 4 google.com
</syntaxhighlight>
 
Si la connexion échoue, nous avons ajouté un serveur DNS temporaire :
<syntaxhighlight lang="bash">
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
ping -c 4 google.com
</syntaxhighlight>


---
---


## **5. Résumé et conclusion**
== 6. Conclusion ==
✔ **Les machines Apollo et Moon sont bien créées et fonctionnelles** 
* Les machines Apollo et Moon sont bien créées et fonctionnelles.
✔ **Les partitions `/var` et `/tmp` sont montées automatiquement via LVM** 
* Les partitions `/var` et `/tmp` sont montées automatiquement via LVM.
✔ **Le réseau privé est configuré avec `172.16.0.0/24` et Solstice en passerelle** 
* Le réseau privé est configuré avec `172.16.0.0/24` et Solstice en passerelle.
✔ **Les machines Apollo et Moon peuvent accéder à Internet via NAT** 
✔ **Les tests de connectivité IPv4 et IPv6 sont concluants** 


Notre infrastructure est maintenant **complètement opérationnelle** ! 🚀
Notre infrastructure est maintenant **complètement opérationnelle** ! 🚀

Version du 4 février 2025 à 12:30

Atelier SysRes SE4 2024/2025 - Kaoutar EL-BACHIRI

1. Introduction

Dans ce TP, nous avons mis en place une infrastructure de **virtualisation** sous **Xen** sur le serveur **Capbreton**. L’objectif est de créer, configurer et interconnecter plusieurs machines virtuelles, en respectant l’isolation des ressources et la connectivité réseau.

Nous avons utilisé **SSH** pour accéder à Capbreton et y gérer nos VMs :

ssh user@capbreton.plil.info

Le TP comprend plusieurs étapes :

  1. Création des machines virtuelles (Apollo, Moon, Solstice)
  2. Configuration du stockage avec LVM
  3. Configuration réseau avec IPv4 et IPv6
  4. Mise en place de la machine mandataire (Solstice) pour assurer le routage et l’accès Internet
  5. Tests et validation de la connectivité

---

2. Création des machines virtuelles

2.1 Commande de création des VM

Nous avons créé nos trois VM sur **Capbreton** en utilisant `xen-create-image` avec les spécifications suivantes :

xen-create-image --hostname=SE4.Apollo --dhcp --dir=/usr/local/xen --size=10G --dist=daedalus --memory=2G --bridge=pontKS
xen-create-image --hostname=SE4.Moon --dhcp --dir=/usr/local/xen --size=10G --dist=daedalus --memory=2G --bridge=pontKS
xen-create-image --hostname=SE4.Solstice --dhcp --dir=/usr/local/xen --size=10G --dist=daedalus --memory=2G --bridge=pontKS

2.2 Lancement et connexion aux VM

Une fois créées, nous avons démarré les VMs et ouvert leurs consoles :

sudo xl create /etc/xen/SE4.Apollo.cfg
sudo xl create /etc/xen/SE4.Moon.cfg
sudo xl create /etc/xen/SE4.Solstice.cfg

sudo xl console SE4.Apollo
sudo xl console SE4.Moon
sudo xl console SE4.Solstice

---

3. Configuration du stockage et montage de /var et /tmp

3.1 Objectif

Nous avons séparé les répertoires `/var` et `/tmp` sur des partitions dédiées avec **LVM**, pour améliorer l’organisation et la gestion du stockage.

3.2 Création des partitions LVM

Nous avons initialisé **LVM** sur chaque VM :

Sur Apollo :

sudo lvcreate -L10G -nvar apollo_vg
sudo lvcreate -L10G -ntmp apollo_vg

Sur Moon :

sudo lvcreate -L10G -nvar moon_vg
sudo lvcreate -L10G -ntmp moon_vg

3.3 Formatage des partitions

Nous avons formaté les volumes en **ext4** :

sudo mkfs.ext4 /dev/apollo_vg/var
sudo mkfs.ext4 /dev/apollo_vg/tmp

sudo mkfs.ext4 /dev/moon_vg/var
sudo mkfs.ext4 /dev/moon_vg/tmp

3.4 Ajout dans /etc/fstab pour montage automatique

Sur Apollo :

/dev/apollo_vg/var  /var  ext4 defaults 0 2
/dev/apollo_vg/tmp  /tmp  ext4 defaults 0 2

Sur Moon :

/dev/moon_vg/var  /var  ext4 defaults 0 2
/dev/moon_vg/tmp  /tmp  ext4 defaults 0 2

3.5 Vérification des montages

Nous avons testé le montage automatique :

sudo mount -a
df -h

---

4. Configuration réseau

4.1 Adressage des machines

Adresses IPv4 et IPv6 utilisées :

  • Apollo : `172.16.0.2`
  • Moon : `172.16.0.3`
  • Machine Mandataire (Solstice) :
    • Réseau privé : `172.16.0.1`
    • Réseau routé : `193.48.57.166/27`

4.2 Configuration réseau des machines de services

Nous avons modifié `/etc/network/interfaces` pour définir une adresse IPv4 statique et obtenir une adresse IPv6 automatiquement.

Sur Apollo :

auto eth0
iface eth0 inet static
    address 172.16.0.2
    netmask 255.255.255.0
    gateway 172.16.0.1

iface eth0 inet6 auto

Sur Moon :

auto eth0
iface eth0 inet static
    address 172.16.0.3
    netmask 255.255.255.0
    gateway 172.16.0.1

iface eth0 inet6 auto

Nous avons appliqué la configuration et vérifié :

sudo systemctl restart networking
ip a
ping 172.16.0.1

---

5. Configuration de la machine mandataire (Solstice)

5.1 Configuration réseau

Nous avons attribué une adresse fixe sur l'interface connectée au réseau privé et une IP publique pour l’accès Internet.

# Interface principale (Internet)
auto eth0
iface eth0 inet static
    address 193.48.57.166
    netmask 255.255.255.224
    gateway 193.48.57.161
    dns-nameservers 8.8.8.8 1.1.1.1

iface eth0 inet6 auto

# Interface privée pour les machines de services
auto eth1
iface eth1 inet static
    address 172.16.0.1
    netmask 255.255.255.0

Nous avons appliqué la configuration :

sudo systemctl restart networking
ip a
ping -c 4 172.16.0.2
ping -c 4 172.16.0.3

5.2 Configuration du NAT pour permettre la sortie Internet

---

6. Conclusion

  • Les machines Apollo et Moon sont bien créées et fonctionnelles.
  • Les partitions `/var` et `/tmp` sont montées automatiquement via LVM.
  • Le réseau privé est configuré avec `172.16.0.0/24` et Solstice en passerelle.

Notre infrastructure est maintenant **complètement opérationnelle** ! 🚀