TP sysres IMA5sc 2018/2019 G2

De Wiki d'activités IMA
Révision datée du 10 décembre 2018 à 16:41 par Qboens (discussion | contributions) (Mise en place serveur DNS)

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

  • Vers le commutateur 4006 - 10 cables 1G (Notre Salle)
Switch>enable
Switch# conf t
Switch(config)#interface range Gi0/1 - 10
Switch(config-if-range)#switchport
Switch(config-if-range)#switchport trunk encapsulation dot1q
Switch(config-if-range)#switchport mode trunk
Switch(config-if-range)#exit

  • Vers le commutateur 6000 - 1 cable 1G (Autre Salle)
Switch>enable
Switch# conf t
Switch(config)#interface gi0/11
Switch(config-if)#switchport
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport access vlan 131
Switch(config-if)#exit


  • Vers Cordouan - cable 10G (Fibre)
Router(config)#conf t
Router(config)#interface Te0/2
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 43                                       // vlan 43 (XEN IMA5)
Switch(config-if)#exit
  • Vers le local SR52
Router(config)#conf t
Router(config)#interface Te0/1
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 131                                       // vlan 131 (interconnexion IMA5)
Switch(config-if)#exit
  • Le vlan 11 (Groupe 1)
Switch#conf t
Switch(config)#int vlan11
Switch(config-if)#ip address 10.60.11.252 255.255.255.0
Switch(config-if)#standby version 2
Switch(config-if)#standby 11 ip 10.60.11.254
Switch(config-if)#standby 11 preempt
Switch(config-if)#ipv6 enable
Switch(config-if)#ipv6 address autoconfig
Switch(config-if)#ipv6 nd prefix 2001:660:4401:60C1::/64
Switch(config-if)#ipv6 nd router-preference High
Switch(config-if)#exit
  • Le vlan 12 (Groupe 2)
Switch#conf t
Switch(config)#int vlan12
Switch(config-if)#ip address 10.60.12.252 255.255.255.0
Switch(config-if)#standby version 2
Switch(config-if)#standby 11 ip 10.60.12.254
Switch(config-if)#standby 11 preempt
Switch(config-if)#ipv6 enable
Switch(config-if)#ipv6 address autoconfig
Switch(config-if)#ipv6 nd prefix 2001:660:4401:60C2::/64
Switch(config-if)#ipv6 nd router-preference High
Switch(config-if)#exit
  • Le vlan 13 (Groupe 3)
Switch(config)#int vlan13
Switch(config-if)#ip address 10.60.13.252 255.255.255.0
Switch(config-if)#standby version 2
Switch(config-if)#standby 11 ip 10.60.13.254
Switch(config-if)#standby 11 preempt
Switch(config-if)#ipv6 enable
Switch(config-if)#ipv6 address autoconfig
Switch(config-if)#ipv6 nd prefix 2001:660:4401:60C3::/64
Switch(config-if)#ipv6 nd router-preference High
Switch(config-if)#exit 
  • Le vlan 14 (Groupe 4)
Switch(config)#int vlan14
Switch(config-if)#ip address 10.60.14.252 255.255.255.0
Switch(config-if)#standby version 2
Switch(config-if)#standby 11 ip 10.60.14.254
Switch(config-if)#standby 11 preempt
Switch(config-if)#ipv6 enable
Switch(config-if)#ipv6 address autoconfig
Switch(config-if)#ipv6 nd prefix 2001:660:4401:60C4::/64
Switch(config-if)#ipv6 nd router-preference High
Switch(config-if)#exit
  • Le vlan 15 (Groupe 5)
Switch(config)#int vlan15
Switch(config-if)#ip address 10.60.15.252 255.255.255.0
Switch(config-if)#standby version 2
Switch(config-if)#standby 15 ip 10.60.15.254
Switch(config-if)#standby 15 preempt
Switch(config-if)#ipv6 enable
Switch(config-if)#ipv6 address autoconfig
Switch(config-if)#ipv6 nd prefix 2001:660:4401:60C5::/64
Switch(config-if)#ipv6 nd router-preference High
Switch(config-if)#exit
  • Le vlan 16 (Groupe 6)
Switch(config)#int vlan16
Switch(config-if)#ip address 10.60.16.252 255.255.255.0
Switch(config-if)#standby version 2
Switch(config-if)#standby 16 ip 10.60.16.254
Switch(config-if)#standby 16 preempt
Switch(config-if)#ipv6 enable
Switch(config-if)#ipv6 address autoconfig
Switch(config-if)#ipv6 nd prefix 2001:660:4401:60C6::/64
Switch(config-if)#ipv6 nd router-preference High
Switch(config-if)#exit
  • Le vlan 17 (Groupe 7)
Switch(config)#int vlan17
Switch(config-if)#ip address 10.60.17.252 255.255.255.0
Switch(config-if)#standby version 2
Switch(config-if)#standby 17 ip 10.60.17.254
Switch(config-if)#standby 17 preempt
Switch(config-if)#ipv6 enable
Switch(config-if)#ipv6 address autoconfig
Switch(config-if)#ipv6 nd prefix 2001:660:4401:60C7::/64
Switch(config-if)#ipv6 nd router-preference High
Switch(config-if)#exit
  • Le vlan 18 (Groupe 8)
Switch(config)#int vlan18
Switch(config-if)#ip address 10.60.18.252 255.255.255.0
Switch(config-if)#standby version 2
Switch(config-if)#standby 18 ip 10.60.18.254
Switch(config-if)#standby 18 preempt
Switch(config-if)#ipv6 enable
Switch(config-if)#ipv6 address autoconfig
Switch(config-if)#ipv6 nd prefix 2001:660:4401:60C8::/64
Switch(config-if)#ipv6 nd router-preference High
Switch(config-if)#exit
  • Le vlan 19 (Groupe 9)


Switch(config)#int vlan19
Switch(config-if)#ip address 10.60.19.252 255.255.255.0
Switch(config-if)#standby version 2
Switch(config-if)#standby 19 ip 10.60.19.254
Switch(config-if)#standby 19 preempt
Switch(config-if)#ipv6 enable
Switch(config-if)#ipv6 address autoconfig
Switch(config-if)#ipv6 nd prefix 2001:660:4401:60C9::/64
Switch(config-if)#ipv6 nd router-preference High
Switch(config-if)#exit
  • Le vlan 20 (Groupe 10)
Switch(config)#int vlan20
Switch(config-if)#ip address 10.60.20.252 255.255.255.0
Switch(config-if)#standby version 2
Switch(config-if)#standby 20 ip 10.60.20.254
Switch(config-if)#standby 20 preempt
Switch(config-if)#ipv6 enable
Switch(config-if)#ipv6 address autoconfig
Switch(config-if)#ipv6 nd prefix 2001:660:4401:60CA::/64
Switch(config-if)#ipv6 nd router-preference High
Switch(config-if)#exit
  • Le vlan 21 (Groupe 11)
Switch(config)#int vlan21
Switch(config-if)#ip address 10.60.21.252 255.255.255.0
Switch(config-if)#standby version 2
Switch(config-if)#standby 21 ip 10.60.21.254
Switch(config-if)#standby 21 preempt
Switch(config-if)#ipv6 enable
Switch(config-if)#ipv6 address autoconfig
Switch(config-if)#ipv6 nd prefix 2001:660:4401:60CB::/64
Switch(config-if)#ipv6 nd router-preference High
Switch(config-if)#exit

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

Mise en place serveur DNS

Utilisation de la méthode bind

Dans le répertoire /etc/bind, nous modifirons les trois fichiers suivants :

named.conf.options

acl "allowed to transfer"{
        217.70.184.38/32;
};

named.conf.local

zone "dionysos.space"{
        type master;
        file "/etc/bind/dionysos.lan";
};


Puis nous créons le fichier /etc/bind/dionysos.space

 cp db.local dionysos.lan

Dans ce fichier nous entrons les paramètres suivants

 ;
 ; BIND data file for local loopback interface
 ;
 $TTL    604800
 @       IN      SOA     ns.dionysos.space. root.dionysos.space (
                               2         ; Serial
                          604800         ; Refresh
                           86400         ; Retry
                         2419200         ; Expire
                          604800 )       ; Negative Cache TTL
 ;
 @       IN      NS      ns.dionysos.space.
 ns      IN      A       217.70.184.38
 www     IN      A       217.70.184.38