TP sysres IMA5sc 2018/2019 G2
Sommaire
TP GIS4 - Conteneur réalisation manuelle
Création des systèmes fichier
Dans le répertoire /home/pifou/Documents/IMA5/JDQB/PRA/ (Zabeth09)
dd if=/dev/zero of=disk1 bs=1024k count=10240
mkfs disk1
Dans /tmp création de répertoires pour le stockage
mkdir JDQB_DISK1 mkdir JDQB_DISK2 mkdir JDQB_DISK3
mount -o loop disk1 /tmp/JDQB_DISK1
debootstrap --include=apache2,nano stable /tmp/JDQB_DISK1
echo "proc /proc defaults 0 0" >> /tmp/JDQB_DISK1/etc/fstab
umount -d /tmp/JDQB_DISK1
On clone le disk1 pour avoir disk2 et disk3 (cp)
On remonte les trois disques
mount -o loop diskX /tmp/JDQB_DISKX
Lancement des conteneurs
Ouverture de trois terminaux en root, puis utilisation de la commande dans chacun des terminaux
unshare -n -u -p -f -m chroot /tmp/JDQB_DISKX /bin/sh -c "mount /proc ; /bin/bash" ;
Dans chaque conteneur
ip l set eth0 up
Cette commande s'applique aussi à eth1 pour le conteneur 1
Mise en place commutateur virtuel
Création des interfaces liées
iface_virt_X (interface virtuelle X) <-> iface_ns_X (interface namespace X)
ip link add iface_virt_1 type veth peer name iface_ns_1 ip link add iface_virt_2 type veth peer name iface_ns_2 ip link add iface_virt_3 type veth peer name iface_ns_3
Création de notre propre pont
ip link add jdqb_bridge type bridge
Ajout des parties des interfaces dans le commutateur
ip link set iface_virt_1 master jdqb_bridge ip link set iface_virt_2 master jdqb_bridge ip link set iface_virt_3 master jdqb_bridge
Activation des interfaces
ip link set iface_virt_1 up ip link set iface_virt_2 up ip link set iface_virt_3 up
Activation du pont
ip address add dev jdqb_bridge 192.168.0.1/24
Montée du pont
ip link set jdqb_bridge up
Connexion des conteneurs à leur interface virtuelle respective
ip link set iface_ns_1 netns /proc/<PID1>/ns/net name eth0 ip link set iface_ns_2 netns /proc/<PID2>/ns/net name eth0 ip link set iface_ns_3 netns /proc/<PID3>/ns/net name eth0
Obtention des PIDs
ps aux | grep unshare
Quatrième interface, reliant le mandataire web inverse (conteneur 1) et le bridge de zabeth09
ip link add iface_virt_0 type veth peer name iface_ns_0 ip link set iface_virt_0 master bridge ip link set iface_virt_0 up ip link set iface_ns_0 netns /proc/<PID1>/ns/net name eth1
Modification de la table IP
iptables -F iptables -F -t nat iptables -P FORWARD ACCEPT
Attribution des adresses aux conteneurs
nsenter -t <PID1> -n ip address add dev eth0 192.168.0.91/24 nsenter -t <PID2> -n ip address add dev eth0 192.168.0.92/24 nsenter -t <PID3> -n ip address add dev eth0 192.168.0.93/24
nsenter -t <PID1> -n ip address add dev eth1 172.26.145.90/24
Mandataire inverse
Configuration Apache2
Afin de configurer notre premier conteneur en mandataire inverse, nous modifions le fichier : /etc/apache2/sites-available/000-default.conf
Nous ajoutons :
<VirtualHost *:80> ... ProxyPass /site1 http://192.168.0.92/ ProxyPassReverse /site1 http://192.168.0.92/ ProxyPass /site2 http://192.168.0.93/ ProxyPassReverse /site2 http://192.168.0.93/ ProxyRequests Off ... </VirtualHost>
Configuration réseau
Ajout de la route par défaut (Polytech) :
ip route add default via 172.26.145.254
Configuration eth1 :
ip add add dev eth1 172.26.145.90/24 ip link set eth1 up
11h25 => Serveurs Web unshare OK
Création des conteneurs via Docker
InstructionsTexte italique
docker run -i -t debian
export http
apt-get install apache nano vi
En dehors conteneur docker commit <image name> sur le conteneur
Creer réseau privé docker network create
(2X)docker run -i -t <image name> --net nom réseau
docker run -i -t <image name> --net nom réseau -p 80:80
DNS : vérifier les @IP des conteneurs LE mandataire inverse doit avoir @IP de zabeth
Procédure
Modification des paramètres de docker dans /etc/default/docker, commenter la ligne DOCKER_EPTS="--iptables=false"
iptables-save service docker restart
docker run -i -t debian /bin/bash
Dans le conteneur
export http_proxy export https_proxy
apt-get update apt-get install apache2 nano vim
Récupération ID du docker
docker ps
Commit sur le docker
docker commit <ID> apache2
Création du network
docker network create jdqb_network
Lancement des conteneurs
docker run -i -t --net jdqb_network apache2 docker run -i -t --net jdqb_network apache2 docker run -i -t --net jdqb_network -p 80:80 apache2
Dans chaque conteneur
ip a
Dans le conteneur mandataire
nano /etc/apache2/sites-enabled/000-default.conf
Ajout des proxypass
ProxyPass /site1 http://<IP conteneur 1>/ ProxyPassReverse /site1 http://<IP conteneur 1>/ ProxyPass /site2 http://<IP conteneur 2>/ ProxyPassReverse /site2 http://<IP conteneur 2>/ ProxyRequests Off
Ajout d'un DNS dans GANDI @plil.space
Type A , TTL 1800, nom jdqb-docker, <ip bridge zabeth>
Sur les trois conteneurs
service apache2 restart
10h20 Serveurs Web (docker) OK
TP PRA - Mise en place du routeur Catalyst 3650
Séance 1 : 26/11/2018
Nous avons à notre disposition l'adresse IPV4 routée 193.48.57.160/27.
Nous disposons également de l'adresse IPV4 non routée 10.60.0.0/16.
Découpage réseau IPV4 routé en deux sous réseaux
Nous divisons l'IPV4 routée en deux sous réseaux.
Pour réaliser leur TP, les IMA2A5 ont utilisés les adresses comprises entre 193.48.57.160/28 et 193.48.57.175/28.
Nous utiliserons donc le second sous réseau : 193.48.57.176/28 à 193.48.57.191/28.
Par conséquent l'adresse IP du routeur 1 est 193.48.57.188/28
Celle du routeur 2 est 193.48.57.189/28
Et enfin le routeur virtuel, pour la diffusion entre routeurs, est 193.48.57.190/28
Découpage du réseau IPV4 non routée en sous réseaux
Nous découpons notre réseau en 254 sous réseaux disponibles. Les IMA2A5 ont utilisés les 5 premiers 10.60.1.0/24 à 10.60.5.0/24 .
Nous prendrons donc les adresses entre 10.60.11.0/24 et 10.60.21.0/24 .
Ces adresses seront routées vers les adresses comprises entre 193.48.57.177/28 et 193.48.57.187/28 .
Séance 2 : 27/11/2018
Configuration du routeur Catalyst 3560
Mise en place du routeur et connexion à celui ci
La configuration du routeur se fera via minicom.
Vérification de l'interface à utiliser :
ls /dev/ | grep ttyUSB
Notre routeur est connecté sur ttyUSB0.
minicom -os
Les paramètres de configuration de minicom sont les suivants :
- port /dev/ttyUSB0
- baud 9600
- 8 bits
- pas de bit de parité
- 1 bit de stop
- pas de contrôle de flux
Configuration du routeur : Configuration des ports
Passage en administrateur :
Router>enable Router#
On liste les interfaces
Router#show interface status Port Name Status Vlan Duplex Speed Type Gi0/1 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/2 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/3 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/4 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/5 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/6 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/7 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/8 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/9 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/10 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/11 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 2 (en E306) // Non connecté [...interfaces Gi0/12-Gi0/48] // les fibres Te0/1 notconnect 1 full 10G 10GBase-SR // vers le local SR52 Te0/2 notconnect 1 full 10G 10GBase-SR // vers cordouan
Afin d'accélérer la communication entre le routeur et le commutateur, les ports 1 à 10 du routeur seront connectés au commutateur.
Router(config)#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#interface range Gi0/1 - 11 Switch(config-if)#switchport mode access Switch(config-if)#switchport access access trunk Switch(config-if)#exit
Configuration de l'interface 10G vers le local SR52
Router(config)#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#interface Te0/1 Switch(config-if)#switchport mode access Switch(config-if)#switchport access access vlan 131 // vlan 131 (interconnexion IMA5) Switch(config-if)#exit
Configuration de l'interface 10G vers Cordouan
Router(config)#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#interface Te0/2 Switch(config-if)#switchport mode access Switch(config-if)#switchport access access vlan 43 // vlan 43 (XEN IMA5) Switch(config-if)#exit
PROBLEME :
*Mar 1 01:42:30.518: %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on TenGigabitEthernet0/2 (43), with Switch GigabitEthernet3/2 (42).
A FAIRE :
- configurer les interfaces / BDI
Mise en place de la machine virtuelle
Notre machine virtuelle a les paramètres suivants :
-Hostname = Dionysos
-@IP = 193.48.57.178
-Netmask = 255.255.255.240
-dossier = /usr/local/xen
xen-create-image __hostname=Dionysos --ip=193.48.57.178 --netmask=255.255.255.240 --dir=/usr/local/xen
Dans le répertoire /etc/xen, nous modifions le fichier Dionysos.cfg.
Nous adaptons le bridge StudentsInfo, qui devient IMA5sc.
Pour que le système soit connecté dans /etc/network/interfaces nous ajoutons la gateway.
gateway 193.48.57.190
Pour autoriser les connections ssh. Dans /etc/ssh/sshd_config
Puis nous lançons une instance de la VM
xl create Dionysos.cfg xl console Dionysos
Nous avons modifié le mot de passe initial.
Pour éteindre une VM
xl shutdown Dionysos
Séance 3 : 10/12/2018
Config Routeur 3560
Mise en place des partitions pour la VM
Sur cordouan
lvcreate -L10G -nIMA5_Dionysos_var virtual lvcreate -L10G -nIMA5_Dionysos_home virtual mke2fs /dev/virtual/IMA5_Dionysos_var mke2fs /dev/virtual/IMA5_Dionysos_home
Dans le fichier /etc/xen/Dionysos.cfg
disk = [ 'file:/usr/local/xen/domains/Dionysos/disk.img,xvda2,w', 'file:/usr/local/xen/domains/Dionysos/swap.img,xvda1,w 'phy:/dev/virtual/IMA5_Dionysos_var,xvdb2,w', 'phy:/dev/virtual/IMA5_Dionysos_home,xvdb1,w', ]
Sur la VM, dans le fichier /etc/fstab
/dev/xvdb1 /home ext4 defaults 0 3
Le cas du répertoire /var est plus complexe.
Si nous utilisons la même méthode que pour /home, nous perdrons le /var. Nous ne pourrions donc plus utiliser apt-get, par exemple.
Dans la VM, dans le fichier /etc/fstab
/dev/xvdb2 /var ext4 defaults 0 2
Puis dans le terminal de la VM
mount /dev/xvdb2 /mnt mv /var/* /mnt/ unmount /mnt mount -a
Via la commande df nous contrôlons le résultat.
Filesystem 1K-blocks Used Available Use% Mounted on ... ... ... ... ... ... /dev/xvdb1 10255636 36888 9678076 1% /home /dev/xvdb2 10321208 23028 9773892 1% /var