TP sysres IMA5sc 2018/2019 G7
Wiki de TP
- Création d'une partition:
dd if=/dev/zero of=/disk1 bs=1024K count=10240
- Formatage :
mtfs.etx4 /disk1
- Montage de la partition:
mount /disk1 /mnt
- Installation d'un système Debian:
debootstrap --include=apache2,nano stable /mnt
- Préparation du montage du pseudo système de fichier /proc:
echo "proc /proc proc defaults 0 0" >> rootfs/etc/fstab
- Démontage :
umount /mnt
- Copie en 2 exemplaires:
cp /disk1 /disk2 cp /disk1 /disk3
- Montage des 3 partitions :
mount -oloop /disk1 /mnt/dsk1 mount -oloop /disk2 /mnt/dsk2 mount -oloop /disk3 /mnt/dsk3
- Création du processus isolé par unshare:
unshare -p -f -m -n -u chroot /mnt/dsk1 /bin/sh -c "mount /proc ; /bin/bash" unshare -p -f -m -n -u chroot /mnt/dsk2 /bin/sh -c "mount /proc ; /bin/bash" unshare -p -f -m -n -u chroot /mnt/dsk3 /bin/sh -c "mount /proc ; /bin/bash"
- Création d'un commutateur logiciel:
ip link add mehcret2 type bridge
- Création des interfaces virtuelles:
ip link add vif1 type veth peer name eth0@vif1 ip link add vif2 type veth peer name eth0@vif2 ip link add vif3 type veth peer name eth0@vif3 ip link add vif4 type veth peer name eth1@vif4
- Ajout d'interfaces dans le commutateur :
ip link set vif1 master mehcret2 ip link set vif2 master mehcret2 ip link set vif3 master mehcret2 ip link set vif4 master bridge
- Activation des interfaces:
ip link set eth0 up ip link set eth1 up
- Récupération du PID des conteneurs :
ps auxwww | grep unshare
- Ajout des interfaces dans les conteneurs :
ip link set eth0@vif2 netns /proc/19382/ns/net name eth0 (dsk1) ip link set eth0@vif1 netns /proc/19377/ns/net name eth0 (dsk2) ip link set eth1@vif4 netns /proc/19377/ns/net name eth1 (dsk2) ip link set eth0@vif3 netns /proc/19396/ns/net name eth0 (dsk3)
- Activation du pont:
ip address add dev mehcret2 192.168.60.0/24
- Configuration réseau des conteneurs :
ip address add dev eth0 192.168.60.51/24 (dsk1) ip address add dev eth0 192.168.60.52/24 (dsk2) ip address add dev eth0 192.168.60.53/24 (dsk3) ip address add dev eth1 172.26.145.67/24 (dsk2)
- Activation :
ip link set eth0 up ip link set vif1 up ip link set vif2 up ip link set vif3 up ip link set vif4 up ip link set mehcret2 up
On peut désormais pinger entre les différents conteneurs.
Nous devons maintenant mettre en place les serveurs apache. Dans le repertoire /etc/apache2/sites-available/, nous créons un fichier contenant la configuration de chaque serveur :
- Configuration:
<VirtualHost *:80> ServerName web1mehcret.plil.space Options Indexes FollowSymLinks DocumentRoot /var/www/html/web1mehcret/ </VirtualHost>
Dans les dossiers /var/www/html/web1mehcret et /var/www/html/web2mehcret dans leur conteneurs respectifs, nous créons une page index.html contenant une simple balise h1.
Nous mettons en place les sous domaines sous GANDI. Nous allons dans Enregistrements DNS, nous cliquons sur ajouter : nous réalisons un enregistrement de type A, avec pour nom du reverse proxy mndtMehcret, et pointant sur l'adresse du reverse Proxy 172.26.145.67 Nous réalisons deux autres enregistrements, de type CNAME cette fois, pour nos conteneurs, avec pour noms web1Mehcret et web2Mehcret et dont le mandataire est celui créé précédemment.
Dans le conteneur 2, dont l'interface virtuelle est connectée à la fois à eth0 et eth1, nous mettons en place le mandataire inverse :
<VirtualHost *:80> ServerName mndtMehcret.plil.space ProxyPass "/web1" "http://192.168.60.51/" ProxyPassReverse "/web1" "http://192.168.60.51/" ProxyPass "/web2" "http://"http://192.168.60.53/" ProxyPassReverse "/web2" "http://192.168.60.53/" </VirtualHost>
Pour utiliser apache en mode reverse proxy, on execute la commande :
$ a2enmod proxy proxy_http