Project

General

Profile

StageKVMBIRD » History » Version 27

Vincent Passama, 03/07/2013 05:17 PM

1 1 Laurent GUERBY
{{>toc}}
2 1 Laurent GUERBY
3 27 Vincent Passama
4 1 Laurent GUERBY
h1. StageKVMBIRD
5 1 Laurent GUERBY
6 27 Vincent Passama
7 2 Vincent Passama
Projet de maquettage réseau virtualisé avec interconnexion de niveaux 2 et 3 (routage dynamique)
8 2 Vincent Passama
9 27 Vincent Passama
10 10 Laurent GUERBY
h2. Projet
11 2 Vincent Passama
12 27 Vincent Passama
13 4 Vincent Passama
h3. Technique
14 4 Vincent Passama
15 27 Vincent Passama
16 18 Vincent Passama
* Installation et prise en main de KVM/libvirt, Open vSwitch, BIRD.
17 18 Vincent Passama
* Accès aux machines virtuelles par groupe d'utilisateurs (accès non root)
18 18 Vincent Passama
* Etablissement de plusieurs topologies de test (voir schéma en lien)
19 18 Vincent Passama
* Utilisation de routes statiques puis réglages d'OSPF
20 1 Laurent GUERBY
21 27 Vincent Passama
22 18 Vincent Passama
h3. Information / gestion
23 18 Vincent Passama
24 27 Vincent Passama
25 18 Vincent Passama
* Documentation et prise en main de BIRD, open vSwitch, KVM
26 1 Laurent GUERBY
27 27 Vincent Passama
28 1 Laurent GUERBY
h2. Point d'avancement
29 1 Laurent GUERBY
30 18 Vincent Passama
31 1 Laurent GUERBY
32 27 Vincent Passama
h3. *Installation et lancement de Open vSwitch :*
33 18 Vincent Passama
34 1 Laurent GUERBY
35 1 Laurent GUERBY
36 27 Vincent Passama
@aptitude install openvswitch-brcompat openvswitch-common openvswitch-datapath-dkms@
37 1 Laurent GUERBY
38 27 Vincent Passama
@cat /etc/network/interfaces@
39 27 Vincent Passama
*@ # The loopback network interface@*
40 27 Vincent Passama
auto lo
41 27 Vincent Passama
iface lo inet loopback@
42 1 Laurent GUERBY
43 27 Vincent Passama
*@ # The primary network interface@*
44 27 Vincent Passama
@auto eth0
45 27 Vincent Passama
iface eth0 inet manual
46 27 Vincent Passama
up ifconfig $IFACE 0.0.0.0 up
47 27 Vincent Passama
down ifconfig $IFACE down@
48 1 Laurent GUERBY
49 27 Vincent Passama
*@ # Host Network@*
50 27 Vincent Passama
@iface ovsbr0p1 inet dhcp@
51 18 Vincent Passama
52 27 Vincent Passama
@ovs-vsctl add-br ovsbr0
53 27 Vincent Passama
ovs-vsctl add-port ovsbr0 eth0
54 27 Vincent Passama
ovs-vsctl add-port ovsbr0 ovsbr0p1 -- set interface ovsbr0p1 type=internal
55 27 Vincent Passama
reboot@
56 1 Laurent GUERBY
57 1 Laurent GUERBY
58 1 Laurent GUERBY
59 27 Vincent Passama
h3. *Ajout de VMs avec qemu-kvm :*
60 18 Vincent Passama
61 27 Vincent Passama
62 27 Vincent Passama
63 27 Vincent Passama
@qemu-img create -f raw debian.raw 2G // Création d'une image disque au format RAW
64 27 Vincent Passama
virt-install --connect qemu:///system --name=DebianTestingSource --hvm --noautoconsole --ram 1024 --file=./debian.raw --vnc --os-type=linux --cdrom ./debian-wheezy-DI-rc1-amd64-CD-1.iso --nonetworks // Ajout d'une VM utilisant l'image
65 27 Vincent Passama
virt-clone --connect qemu:///system --original DebianTestingSource --name X --file ./debianX.raw // Clônage de la machine virtuelle
66 27 Vincent Passama
virt-manager // Pour superviser les VMs en mode graphique
67 27 Vincent Passama
virt-viewer nomVM // Pour lancer la vue sur une VM en ligne de commande@
68 27 Vincent Passama
69 27 Vincent Passama
70 27 Vincent Passama
71 27 Vincent Passama
h3. *Accès aux utilisateurs non root résolu via l'utilisation de plusieurs commandes :*
72 27 Vincent Passama
73 27 Vincent Passama
74 27 Vincent Passama
75 27 Vincent Passama
@cat /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla
76 27 Vincent Passama
[libvirt Management Access]
77 27 Vincent Passama
Identity=unix-group:libvirt;unix-user:root
78 27 Vincent Passama
Action=org.libvirt.unix.manage
79 27 Vincent Passama
ResultAny=yes
80 27 Vincent Passama
ResultInactive=yes
81 27 Vincent Passama
ResultActive=yes@
82 27 Vincent Passama
83 18 Vincent Passama
Ce fichier permet de déclarer les accès à la supervision des machines virtuelles selon le nom ou le groupe d'un utilisateur.
84 18 Vincent Passama
85 27 Vincent Passama
@adduser vince kvm 
86 27 Vincent Passama
adduser vince libvirt 
87 27 Vincent Passama
adduser vince vde2-net@
88 1 Laurent GUERBY
89 18 Vincent Passama
On ajoute l'utilisateur en question au groupe. Puis on se reconnecte sur la machine pour que les changements de groupe soient pris en compte.
90 18 Vincent Passama
Ne pas oublier par la suite de manipuler les machines virtuelles avec cet ajout dans les commandes :
91 18 Vincent Passama
92 27 Vincent Passama
@--connect qemu:///system@
93 18 Vincent Passama
94 18 Vincent Passama
95 18 Vincent Passama
96 27 Vincent Passama
h3. *Edition de la VM pour ajouter l'interface créée via Open vSwitch :*
97 18 Vincent Passama
98 18 Vincent Passama
99 18 Vincent Passama
100 27 Vincent Passama
@virsh edit DebianTestingSource
101 27 Vincent Passama
<interface type='bridge'>
102 27 Vincent Passama
<source bridge='ovsbr0'/>
103 27 Vincent Passama
<virtualport type='openvswitch' />
104 27 Vincent Passama
<model type='virtio'/>@
105 23 Vincent Passama
106 22 Vincent Passama
107 22 Vincent Passama
108 27 Vincent Passama
h3. *Installation et lancement de BIRD :*
109 22 Vincent Passama
110 22 Vincent Passama
111 22 Vincent Passama
112 27 Vincent Passama
@aptitude install bird bird6 // Installation du paquet BIRD (et BIRD6 pour ipv6)
113 27 Vincent Passama
vim /etc/bird.conf // Edition du fichier de configuration
114 27 Vincent Passama
birdc // Invite de commande pour BIRD
115 27 Vincent Passama
service bird stop|start // Relancer le service BIRD@
116 27 Vincent Passama
117 27 Vincent Passama
118 27 Vincent Passama
119 27 Vincent Passama
h3. *Topologie du triangle BGP (3 AS) avec routes statiques :*
120 27 Vincent Passama
121 27 Vincent Passama
122 27 Vincent Passama
123 22 Vincent Passama
!http://img199.imageshack.us/img199/5747/tetaneutraltriangle.png!
124 24 Vincent Passama
125 22 Vincent Passama
126 24 Vincent Passama
Sur 3 Vms, effectuer l'activation du routage IP : 
127 22 Vincent Passama
128 24 Vincent Passama
@cat /etc/sysctl.conf
129 22 Vincent Passama
net.ipv4.ip_forward=1
130 22 Vincent Passama
sysctl -p /etc/sysctl.conf@
131 24 Vincent Passama
132 22 Vincent Passama
Configuration de BIRD :
133 24 Vincent Passama
134 22 Vincent Passama
*@cat /etc bird.conf // CONFIGURATION H3@*
135 22 Vincent Passama
136 22 Vincent Passama
@log syslog all;@
137 24 Vincent Passama
138 22 Vincent Passama
@protocol kernel {
139 27 Vincent Passama
scan time 20;	# Scan kernel routing table every 20 seconds
140 27 Vincent Passama
export all;	# Default is export none
141 22 Vincent Passama
}@
142 22 Vincent Passama
143 1 Laurent GUERBY
@# This pseudo-protocol watches all interface up/down events.
144 1 Laurent GUERBY
protocol device {
145 27 Vincent Passama
scan time 10;	# Scan interfaces every 10 seconds
146 1 Laurent GUERBY
}@
147 1 Laurent GUERBY
148 24 Vincent Passama
@protocol static {
149 1 Laurent GUERBY
import all;
150 24 Vincent Passama
route 192.0.1.0/24 via 192.0.1.1;
151 22 Vincent Passama
route 192.0.2.0/24 via 192.0.2.1;
152 22 Vincent Passama
}@
153 22 Vincent Passama
154 1 Laurent GUERBY
@protocol bgp h31 {
155 1 Laurent GUERBY
description "BGP H3 65001";
156 24 Vincent Passama
local as 65000;
157 22 Vincent Passama
neighbor 192.0.1.2 as 65001;
158 24 Vincent Passama
import all;
159 1 Laurent GUERBY
export all;
160 24 Vincent Passama
}@
161 24 Vincent Passama
162 24 Vincent Passama
@protocol bgp h32 {
163 22 Vincent Passama
description "BGP H3 65002";
164 24 Vincent Passama
local as 65000;
165 1 Laurent GUERBY
neighbor 192.0.2.2 as 65002;
166 22 Vincent Passama
import all;
167 24 Vincent Passama
export all;
168 22 Vincent Passama
}@
169 24 Vincent Passama
170 1 Laurent GUERBY
*@cat /etc bird.conf // CONFIGURATION STRI@*
171 1 Laurent GUERBY
172 24 Vincent Passama
@log syslog all;@
173 22 Vincent Passama
174 24 Vincent Passama
@protocol kernel {
175 27 Vincent Passama
scan time 20;   # Scan kernel routing table every 20 seconds
176 27 Vincent Passama
export all;	# Default is export none
177 1 Laurent GUERBY
}@
178 1 Laurent GUERBY
179 1 Laurent GUERBY
@# This pseudo-protocol watches all interface up/down events.
180 1 Laurent GUERBY
protocol device {
181 27 Vincent Passama
scan time 10;	# Scan interfaces every 10 seconds
182 1 Laurent GUERBY
}@
183 1 Laurent GUERBY
184 1 Laurent GUERBY
@protocol static {
185 1 Laurent GUERBY
import all;
186 1 Laurent GUERBY
route 192.0.3.0/24 via 192.0.3.2;
187 1 Laurent GUERBY
route 192.0.1.0/24 via 192.0.1.2;
188 1 Laurent GUERBY
}@
189 1 Laurent GUERBY
190 1 Laurent GUERBY
@protocol bgp stri1 {
191 1 Laurent GUERBY
description "BGP STRI 65002";
192 1 Laurent GUERBY
local as 65001;
193 1 Laurent GUERBY
neighbor 192.0.3.1 as 65002;
194 1 Laurent GUERBY
import all;
195 1 Laurent GUERBY
export all;
196 1 Laurent GUERBY
}@
197 1 Laurent GUERBY
198 1 Laurent GUERBY
@protocol bgp stri2 {
199 1 Laurent GUERBY
description "BGP STRI 65000";
200 1 Laurent GUERBY
local as 65001;
201 1 Laurent GUERBY
neighbor 192.0.1.1 as 65000;
202 1 Laurent GUERBY
import all;
203 1 Laurent GUERBY
export all;
204 1 Laurent GUERBY
}@
205 22 Vincent Passama
206 24 Vincent Passama
*@cat /etc bird.conf // CONFIGURATION N7@*
207 22 Vincent Passama
208 24 Vincent Passama
@log syslog all;@
209 1 Laurent GUERBY
210 1 Laurent GUERBY
@protocol kernel {
211 1 Laurent GUERBY
scan time 20;	# Scan kernel routing table every 20 seconds
212 27 Vincent Passama
export all;	# Default is export none
213 22 Vincent Passama
}@
214 24 Vincent Passama
215 22 Vincent Passama
@# This pseudo-protocol watches all interface up/down events.
216 24 Vincent Passama
protocol device {
217 27 Vincent Passama
scan time 10;	# Scan interfaces every 10 seconds
218 22 Vincent Passama
}@
219 22 Vincent Passama
220 22 Vincent Passama
@protocol static {
221 22 Vincent Passama
import all;
222 24 Vincent Passama
route 192.0.2.0/24 via 192.0.2.2;
223 22 Vincent Passama
route 192.0.3.0/24 via 192.0.3.1;
224 24 Vincent Passama
}@
225 22 Vincent Passama
226 24 Vincent Passama
@protocol bgp n71 {
227 24 Vincent Passama
description "BGP N7 65000";
228 24 Vincent Passama
local as 65002;
229 22 Vincent Passama
neighbor 192.0.1.1 as 65000;
230 22 Vincent Passama
import all;
231 22 Vincent Passama
export all;
232 22 Vincent Passama
}@
233 24 Vincent Passama
234 22 Vincent Passama
@protocol bgp n72 {
235 24 Vincent Passama
description "BGP N7 65001";
236 1 Laurent GUERBY
local as 65002;
237 1 Laurent GUERBY
neighbor 192.0.3.2 as 65001;
238 25 Vincent Passama
import all;
239 25 Vincent Passama
export all;
240 24 Vincent Passama
}@
241 22 Vincent Passama
242 1 Laurent GUERBY
Ici, relancer les services BIRD sur chaque machine et patienter quelques secondes...
243 1 Laurent GUERBY
(voir schema route-BGP-static.png)
244 25 Vincent Passama
245 27 Vincent Passama
246 27 Vincent Passama
247 27 Vincent Passama
h3. *Topologie du triangle BGP (3 AS) avec routes dynamiques (OSPF) :*
248 27 Vincent Passama
249 27 Vincent Passama
250 27 Vincent Passama
251 27 Vincent Passama
!http://img35.imageshack.us/img35/9895/tetaneutraltriangleospf.png!
252 27 Vincent Passama
253 27 Vincent Passama
254 27 Vincent Passama
La mise en place est un succès, nous déclarons les area OSPF de tous les routeurs "Rx" iBGP puis également sur les interfaces intra-AS des routeurs eBGP. Ainsi ils diffusent leurs routes à l'ensemble du réseau.
255 27 Vincent Passama
Pour les eBGP, les routes sont diffusées via BGP.
256 27 Vincent Passama
257 27 Vincent Passama
258 22 Vincent Passama
h2. Tâches en cours
259 22 Vincent Passama
260 27 Vincent Passama
261 22 Vincent Passama
h3. Vincent
262 22 Vincent Passama
263 27 Vincent Passama
264 27 Vincent Passama
A se partager avec Othmane :
265 27 Vincent Passama
266 27 Vincent Passama
* Prévoir l'utilisation de VLANs
267 27 Vincent Passama
* Regarder les rejets de routes
268 27 Vincent Passama
* Faire le bilan sur les possibilités de la virtualisation (partage de systèmes de fichiers) et comparer avec notre avancement
269 27 Vincent Passama
* Faire cohabiter Quagga / BIRD dans la topologie pour constater notamment les différences d'accès à l'espace utilisateur / espace noyau
270 27 Vincent Passama
* Vérifier et noter la sécurité des VMs par rapport à des erreurs de manipulations entre différents utilisateurs
271 27 Vincent Passama
* Mettre en place la topologie suivante :
272 27 Vincent Passama
273 27 Vincent Passama
!http://img803.imageshack.us/img803/1870/tetaneutralinterco.png!
274 27 Vincent Passama
275 27 Vincent Passama
* Automatiser l'installation / la configuration des VMs au moyen de scripts
276 27 Vincent Passama
* Rédiger le rapport et préparer l'oral (plan à venir)
277 14 Philippe Latu
278 14 Philippe Latu
h3. Othmane
279 14 Philippe Latu
280 15 othmane elmouden
Documentation et Installation de  KVM+OVS
281 15 othmane elmouden
Documentation et Installation de BIRD
282 15 othmane elmouden
Documentation sur l'utilisation des vlans dans ovs
283 15 othmane elmouden
284 15 othmane elmouden
Réponse:
285 15 othmane elmouden
286 15 othmane elmouden
Ayant pas reçu un mail et du fait que j'ai vue votre publication très tard,je voudrais m'excuser pour ne pas avoir été présent en réunion la semaine passé.
287 15 othmane elmouden
 
288 15 othmane elmouden
Justement nous avons pu lancer le virt-manager au niveau d'un utilisateur normal.
289 15 othmane elmouden
290 15 othmane elmouden
je viens de voir l'aspect routage(quagga ospfd) entre 3 vm (topologie logique triangle) et je vois que le routage ospf fonctionne bien,sachant que j'ai pas 
291 15 othmane elmouden
292 16 othmane elmouden
configurer ports taggés sur le open vswitch.
293 15 othmane elmouden
294 15 othmane elmouden
Serait il nécessaire de passer par des vlans au niveau OVS?
295 1 Laurent GUERBY
296 19 Laurent GUERBY
Merci d'avance pour  m'avoir apporter quelque explications pour la prochaine étape .
297 26 Vincent Passama
 
298 21 Vincent Passama
299 1 Laurent GUERBY
20130304 13h45 : les VLANs ne sont pas prioritaire pour l'association. Est-ce que vous avez un document qui montre ce qu'il faut faire pas a pas pour lancer le switch et 3 VMs interconnectées avec BIRD ? Que pensez-vous presenter a votre soutenance entreprise le mercredi 13 mars dans un peu plus d'une semaine ? / Laurent GUERBY
300 1 Laurent GUERBY
301 6 Vincent Passama
20130304 14h05 : Oui pour l'instant je travaille essentiellement sur BIRD pour interconnecter les VMS sur du statique puis bientôt OSPF donc les vlans seront étudiés si le temps le permet. Pour le 13 mars je suis d'accord. Je n'ai pas encore recrée la topologie dans son intégralité car je suis encore sur les 3 machines en triangle mais une documentation en étapes sera éditée pour monter l'architecture effectivement. Je peux la fournir dès que j'aurai réussi avec BIRD. / Vincent Passama
302 6 Vincent Passama
303 1 Laurent GUERBY
h2. Liens utiles
304 6 Vincent Passama
305 6 Vincent Passama
h3. KVM
306 6 Vincent Passama
307 6 Vincent Passama
* http://www.linux-kvm.org/page/Main_Page : Site officiel de KVM
308 6 Vincent Passama
* http://www.vogelweith.com/debian_server/14_kvm.php : Installation et administration d'un serveur KVM
309 6 Vincent Passama
* http://www.admin-magazine.com/CloudAge/Articles/Virtualization-with-KVM : Autre article sur KVM
310 6 Vincent Passama
311 1 Laurent GUERBY
h3. open vSwitch
312 1 Laurent GUERBY
313 6 Vincent Passama
* http://openvswitch.org : Site officiel Open vSwitch
314 6 Vincent Passama
* http://tech.covoiturage.fr/2012/08/22/open-vswitch-un-switch-logiciel-pour-des-reseaux-virtuels : Documentation sur open vSwitch
315 6 Vincent Passama
* http://www.admin-magazine.com/CloudAge/Articles/Virtual-switching-with-Open-vSwitch :  Autre article sur open vSwitch
316 1 Laurent GUERBY
317 6 Vincent Passama
h3. BIRD
318 10 Laurent GUERBY
319 3 Vincent Passama
* http://bird.network.cz : Site officiel BIRD
320 3 Vincent Passama
* [[BIRD]] : Page wiki sur BIRD
321 11 Laurent GUERBY
322 11 Laurent GUERBY
h2. Fichiers et documentation
323 18 Vincent Passama
324 18 Vincent Passama
h2. Notes
325 1 Laurent GUERBY
326 1 Laurent GUERBY
20130204 15h13 je passe au Batiment U2 salle 213 pour voir vos collegues mercredi 6 fevrier a 9h, ou en-ete-vous ? On se voit aussi ? / Laurent
327 1 Laurent GUERBY
328 1 Laurent GUERBY
Je suis actuellement sur la topologie de Laurent, j'ai refais le schéma mais j'ai des doutes sur pas mal d'éléments (voir le fichier ajouté). / Vincent