TP sysres IMA5sc 2018/2019 G2 : Différence entre versions

De Wiki d'activités IMA
(Mise en place commutateur virtuel)
(Mise en place commutateur virtuel)
Ligne 42 : Ligne 42 :
 
   ip link add iface_virt_2 type veth peer name iface_ns_2
 
   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
 
   ip link add iface_virt_3 type veth peer name iface_ns_3
 +
 +
Création de l'interface virtuelle
 +
  ip link add iface_virt_0 type veth peer name iface_ns_0
  
 
Création de notre propre pont
 
Création de notre propre pont
Ligne 52 : Ligne 55 :
 
   ip link set iface_virt_2 master jdqb_bridge
 
   ip link set iface_virt_2 master jdqb_bridge
 
   ip link set iface_virt_3 master jdqb_bridge
 
   ip link set iface_virt_3 master jdqb_bridge
 +
 +
  
 
Activation des interfaces
 
Activation des interfaces
Ligne 74 : Ligne 79 :
 
Obtention des PIDs
 
Obtention des PIDs
 
   ps aux | grep unshare
 
   ps aux | grep unshare
 +
 +
Quatrième interface, reliant le mandataire web inverse (conteneur 1) et le bridge de zabeth09
  
 
==Modification de la table IP==
 
==Modification de la table IP==

Version du 12 novembre 2018 à 11:51

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

 unshare -n -u -p -f -m chroot /tmp/JDQB_DISK1 /bin/sh -c "mount /proc ; /bin/bash" ;
 unshare -n -u -p -f -m chroot /tmp/JDQB_DISK2 /bin/sh -c "mount /proc ; /bin/bash" ;
 unshare -n -u -p -f -m chroot /tmp/JDQB_DISK3 /bin/sh -c "mount /proc ; /bin/bash" ;

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 l'interface virtuelle

 ip link add iface_virt_0 type veth peer name iface_ns_0

Création de notre propre pont

 ip link add jdqb_brige 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

Modification de la table IP