TP sysres IMA5sc 2018/2019 G11 : Différence entre versions
(→Séance 3 : 10/12/2018) |
(→fin de configuration du routeur) |
||
Ligne 358 : | Ligne 358 : | ||
====fin de configuration du routeur==== | ====fin de configuration du routeur==== | ||
+ | root@cordouan:/home# lvcreate -L10G -n IMA5-Ate-home virtual | ||
+ | Logical volume "IMA5-Ate-home" created. | ||
+ | root@cordouan:/home# lvcreate -L10G -n IMA5-Ate-var virtual | ||
+ | Logical volume "IMA5-Ate-var" created. | ||
====2.1 Installation dans la machine virtuelle Xen==== | ====2.1 Installation dans la machine virtuelle Xen==== |
Version du 10 décembre 2018 à 16:38
Sommaire
- 1 Présentation générale
- 2 Déroulé du TP
- 3 Conteneur à la main
- 4 Docker
- 5 Réseau avancé
- 5.1 Séance 1 : 26/11/2018
- 5.2 Séance 2 : 26/11/2018
- 5.3 Séance 3 : 10/12/2018
Présentation générale
Lors de ce TP nous allons apprendre à utiliser docker. Dans un premier temps nous réaliserons à la main 3 dockers interconnectés à l'aide d'un commutateur virtuel puis nous utiliserons directement la solution Docker.
Déroulé du TP
Conteneur à la main
Séance 1 : 12/11/2018
Etapes réalisées : création de 3 systèmes de fichiers c1,c2,c3
On peut vérifier l'isolation de nos conteneurs en faisant df -h ou une fois le unshare réalisé en tapant le ps aux
création du commutateur virtuel : monpont.
On peut vérifier sa bonne activation avec la commande : brctl show
création des interfaces virtuel
Pour chacun des conteneurs on va créer une interface virtuel vifX qui relieront chacune "monpont" à un conteneur. Un des conteneurs sera relié au bridge de la zabeth afin de nous relier au monde extérieur, ce sera lui le mandataire inverse. Pour nous il s'agit de C1. On peut vérifier la bonne liaison entre le conteneur et le commutateur logiciel en tapant ip l dans chacun des conteneurs et en regardant les interfaces reliées à brctl show.
Attention, parfois Docker est source de problèmes pour nos manipulations, pour s'en débarrasser on tape les commandes suivantes :
iptables -F iptables -F -t nat iptables -P FORWARD ACCEPT
On va maintenant ajouter une IP à chaque interface virtuel pour être capable réaliser un ping depuis le réseau.
Pour cela on se sert de ip address add et de ip route add.
sur chaque conteneur : ip address add dev eth0 192.168.0.x ip l set eth0 up
on vérifie en faisant ip r et on peut pinger nos machines entres elles !
Attention : tout les ip add seront supprimées au prochain reboot. Probablement de même pour les interfaces virtuels.
Séance 2 : 19/11/2018
Objectif de la séance : installer reverse proxy sur un conteneur et 2 serveurs web sur les autres.
Lors du démarrage de la séance pour ressusciter ce que l'on avait fait la dernière fois:
mkdir c1,c2,c3
copie base fichiers
export https_proxy="https://proxy.polytech-lille.fr:3128" export http_proxy="http://proxy.polytech-lille.fr:3128" debootstrap --include=apache2,vim stable /tmp/c1 // de même pour c2 et c3
Montage media
mount -o loop /home/pifou/firstconteneur /tmp/c1 // de même pour c2 et c3 mount -o loop /home/pifou/firstconteneur2 /tmp/c2 mount -o loop /home/pifou/firstconteneur3 /tmp/c3
Création machine
unshare -p -f -m -n -u chroot /tmp/c1 /bin/sh -c "mount /proc ; /bin/bash" unshare -p -f -m -n -u chroot /tmp/c2 /bin/sh -c "mount /proc ; /bin/bash" unshare -p -f -m -n -u chroot /tmp/c3 /bin/sh -c "mount /proc ; /bin/bash"
Création du commutateurs virtuels et des interfaces virtuels
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 eth0@vif4
ip link set vif1 master monpont ip link set vif2 master monpont ip link set vif3 master monpont ip link set vif4 master monpont
Activation de monpont et des vifs
ip link set dev monpont up ip link set dev vif1 up ip link set dev vif2 up ip link set dev vif3 up ip link set dev vif4 up
Connection: (numero de PID arbitraire)
ip link set eth0@vif2 netns /proc/27880/ns/net name eth0 // pour vif 1 ip link set eth0@vif2 netns /proc/27879/ns/net name eth0 // pour vif 2 ip link set eth0@vif2 netns /Bcanuproc/27881/ns/net name eth0 // pour vif 3 ip link set eth0@vif2 netns /proc/27882/ns/net name eth0 // pour vif 4
(numéro de PID arbitraire) nsenter -t 27879 -n ip address add dev eth0 192.168.0.2/24 //pour C1 nsenter -t 27880 -n ip address add dev eth0 192.168.0.3/24 //pour C2 nsenter -t 27881 -n ip address add dev eth0 192.168.0.4/24 //pour C3
pour eth1, on cherche une IP valable dans le réseau du bridge, soit une IP qui ne donne rien quand on la ping puis :
nsenter -t 27879 -n ip address add dev eth1 172.26.145.45/24 // pour que c1 soit le mandataire inverse ip link set eth1 up // dans le conteneur c1
Dans chaque conteneur :
ip link set eth0 up ip link set dev lo up
Nous pouvons à présent pinger les 3 machines entre elles et depuis la machine physique.
Paramétrage du mandataire inverse :
On inscrit sur gandi.net 2 sitBcanues : websiteun et websitedeux.
Dans etc/apache2/sites-available/000-default.conf de notre conteneur C1 qui fait office de mandataire inverse:
< VirtualHost *:80> ServerName websinteun.plil.space ProxyPass "/web1" "http://192.1680.3/" ProxyPassReverse "/web1" "http://192.168.0.3/"
ProxyPass "/web2" "http://192.1680.4/" ProxyPassReverse "/web2" "http://192.168.0.4/"
ProxyRequests Off </VirtualHost >
ip route add default via 172.26.145.254
Il faut démarrer le serveur apBcanupache sur les deux conteneurs de base.
Au final nous pouvons accéder à nos deux conteneurs selon l'URL rentrée :
websiteun.plil.space/ --> accès sur le conteneur C2 websitedeux.plil.space/ --> accès sur le conteneur C3
11h25 => Serveurs Web OK (unshare)
Docker
Séance 2 : 19/11/2018
résumé des tâches à réaliser
1- docker run -t -i debian 2- installer apache et vi (export http htpps si besoin) 3- en dehors du conteneur : docker commit monNom pour sauvegarder l'image de ce conteneur 4- on peut sortir 5- docker image 6-réseau privé: docker network create à faire avant 7- lancer 3 docker --net nomdemonreseau avec un conteneur que je lance en --p:80.
Réalisation:
Dans etc/default/docker : on doit commenter Docker opts ="--iptables=false"
service docker restart iptables-save
Ensuite on peut lancer notre docker avec
docker run -t -i debian
Puis on exporte les variables d'environnements pour le proxy et on peut faire
apt update apt install apache2 apt install vi
Ensuite on sort du conteneur en faisant exit
docker image //nous permet de voir les différents docker disponible docker commit ID debian_apache// nous permet de sauvegarder ce docker avec cette configuration
On crée le réseau privé : docker network create OurReseau
On peut lancer 3 dockers en parrallèle : docker run -i -t --network=OurReseau debian_apache docker run -i -t --network=OurReseau debian_apache docker run -i -t --network=OurReseau -p:80 debian_apache // Docker écoute sur le port 80
On récupère les adresses ip des deux conteneurs serveur web en faisant:
ip a
Dans notre docker mandataire inverse on vient copier le même fichier de configuration que pour le conteneur à la main en pensant juste à modifier les ip Il ne faut pas oublier d'activer proxy et proxyhttps avec a2enmod
Ensuite sur gandi on crée deux nouveaux sites et un nouveau mandataire. On configure avec l'ip de la zabeth.
On teste les adresses suivantes : c2.plil.space c1.plil.space
On constate que tout fonctionne parfaitement!
12h50 : Serveurs WEB (docker) OK
Réseau avancé
Séance 1 : 26/11/2018
Analyse et choix d'organisation
Nous avons choisi la partie numéro 2 à savoir la configuration du routeur 4221
Avant de commencer à configurer le routeur nous nous sommes mis d'accord avec le groupe s'occupant de l'autre routeur ainsi que celui s'occupant du point d'accès pour l'organisation et la répartition des différentes adresses IP. Il a également fallu vérifier ce que le groupe des IMA2A avait fait pour ne pas entrer en collision avec ce qu'ils ont fait.
Voici ce que les IMA2A ont fait :
Nom | Vlan | Réseau IPV4 | Réseau IPV6 | IP Routeur 1 | IP Routeur 2 | IP Routeur Virtuel |
---|---|---|---|---|---|---|
Xen | 42 | 193.48.57.160/28 | 2001.660.4401.60B1::/64 | 193.48.57.174/28 | 193.48.57.173/28 | 193.48.57.172/28 |
Groupe 1 | 2 | 10.60.1.0/24 | 2001.660.4401.60B2::/64 | 10.60.1.254/24 | 10.60.1.253/24 | 10.60.1.252/24 |
Groupe 2 | 3 | 10.60.2.0/24 | 2001.660.4401.60B3::/64 | 10.60.2.254/24 | 10.60.2.253/24 | 10.60.2.252/24 |
Groupe 3 | 4 | 10.60.3.0/24 | 2001.660.4401.60B4::/64 | 10.60.3.254/24 | 10.60.3.253/24 | 10.60.3.252/24 |
Groupe 4 | 5 | 10.60.4.0/24 | 2001.660.4401.60B5::/64 | 10.60.4.254/24 | 10.60.4.253/24 | 10.60.4.252/24 |
Groupe 5 | 6 | 10.60.5.0/24 | 2001.660.4401.60B6::/64 | 10.60.5.254/24 | 10.60.5.253/24 | 10.60.5.252/24 |
Interconnexion | 130 | 192.168.222.0/29 | Router1 : fe80::42:2 // Router2 : fe80::42:3 // Ecole : fe80::42:1 | 192.168.222.1/29 | 192.168.222.2/29 |
On remarque que les adresses prises par eux se trouvent après 193.48.57.174/28 ce qui nous laissent toutes les adresses inférieures.
Pour le réseau 10.60.X.0/24 nous pouvons prendre les adresses avec X >5
On peut donc attribuer d'ores et déjà les adresses suivantes :
193.48.57.188 Routeur 1
193.48.57.189 Routeur 2
193.48.57.190 Machine virtuel
On attribue donc les adresses suivantes sur le Réseau IPV4
on a choisi la convention suivantes : les groupes obtiennent l'ip 10.60.10+numeroDeGroupe.0/24
Configuration du commutateur
Connexion avec Minicom
Nous nous sommes connectés directement via USB au routeur pour ensuite taper les commande suivantes
demesg | grep tty // nous permet de vérifier que nous sommes bien connectés au commutateur minicom -os
Dans minicom on indique les informations de configuration :
baudrate : 9600 /ttyACM0 Hardware flow control : No
Configuration du commutateur
Nous avons 3 port GIGABIT disponible, GIGABIT 0 : relié au commutateur de l'école GIGABIT 1 : relié au commutateur 4006 par fibre GIGABIT 2 : relié au commutateur 6000 par cuivre
pour connaitre les interfaces disponibles:
show run
D'autres commandes de bases très utiles :
write // permet de sauvegarder la configuration
Configuration de l'interface pour le commutateur de l'école :
enable // passage en root configure terminal interface GigabitEthernet0/0/1 no ip address negotiation auto service instance 11 ethernet encapsulation dot1q 11 rewrite ingress tag pop 1 bridge-domain 11
service instance 12 ethernet encapsulation dot1q 12 rewrite ingress tag pop 1 bridge-domain 12
service instance 13 ethernet encapsulation dot1q 13 rewrite ingress tag pop 1 bridge-domain 13
...Et ainsi de suite jusque:
service instance 21 ethernet encapsulation dot1q 21 rewrite ingress tag pop 1 bridge-domain 21 service instance 43 ethernet encapsulation dot1q 43 rewrite ingress tag pop 1 bridge-domain 43 service instance 131 ethernet encapsulation dot1q 131 rewrite ingress tag pop 1 bridge-domain 131
Configuration des BDI :
On vient ici indiquer une adresse IP à chaque Vlan
interface BDI11 ip address 10.60.11.253/24 255.255.255.000 standby version 11 standby 11 ip 10.60.11.254
// il y a peut etre une erreur sur la BDI12 et BDI19 suite à une erreur de communication avec le routeur
Séance 2 : 26/11/2018
Configuration du commutateur suite
Séance 3 : 10/12/2018
fin de configuration du routeur
root@cordouan:/home# lvcreate -L10G -n IMA5-Ate-home virtual
Logical volume "IMA5-Ate-home" created.
root@cordouan:/home# lvcreate -L10G -n IMA5-Ate-var virtual
Logical volume "IMA5-Ate-var" created.
2.1 Installation dans la machine virtuelle Xen
Nous allons ici partitionner var et home :
4 Services Internet
4.1 Serveur ssh
Activation de ssh (déjà installé) :
sudo systemctl enable ssh sudo systemctl start ssh
4.2 Serveur DNS
Installation de bind
apt update apt-get install bind9 dnsutils