Projet

Général

Profil

StageKVMBIRD » Historique » Version 26

Vincent Passama, 04/03/2013 17:04

1 1 Laurent GUERBY
{{>toc}}
2 1 Laurent GUERBY
3 1 Laurent GUERBY
h1. StageKVMBIRD
4 1 Laurent GUERBY
5 2 Vincent Passama
Projet de maquettage réseau virtualisé avec interconnexion de niveaux 2 et 3 (routage dynamique)
6 2 Vincent Passama
7 10 Laurent GUERBY
h2. Projet
8 2 Vincent Passama
9 4 Vincent Passama
h3. Technique
10 4 Vincent Passama
11 18 Vincent Passama
* Installation et prise en main de KVM/libvirt, Open vSwitch, BIRD.
12 18 Vincent Passama
* Accès aux machines virtuelles par groupe d'utilisateurs (accès non root)
13 18 Vincent Passama
* Etablissement de plusieurs topologies de test (voir schéma en lien)
14 18 Vincent Passama
* Utilisation de routes statiques puis réglages d'OSPF
15 1 Laurent GUERBY
16 18 Vincent Passama
h3. Information / gestion
17 1 Laurent GUERBY
18 18 Vincent Passama
* Documentation et prise en main de BIRD, open vSwitch, KVM
19 1 Laurent GUERBY
20 18 Vincent Passama
h2. Point d'avancement
21 1 Laurent GUERBY
22 1 Laurent GUERBY
23 18 Vincent Passama
* *Installation et lancement de Open vSwitch :*
24 18 Vincent Passama
25 18 Vincent Passama
26 18 Vincent Passama
> @aptitude install openvswitch-brcompat openvswitch-common openvswitch-datapath-dkms
27 18 Vincent Passama
28 18 Vincent Passama
> cat /etc/network/interfaces 
29 18 Vincent Passama
> # The loopback network interface
30 18 Vincent Passama
> auto lo
31 18 Vincent Passama
> iface lo inet loopback
32 18 Vincent Passama
> 
33 18 Vincent Passama
> # The primary network interface
34 18 Vincent Passama
> auto eth0
35 18 Vincent Passama
> iface eth0 inet manual
36 18 Vincent Passama
> up ifconfig $IFACE 0.0.0.0 up
37 18 Vincent Passama
> down ifconfig $IFACE down
38 18 Vincent Passama
> 
39 18 Vincent Passama
> # Host Network
40 18 Vincent Passama
> iface ovsbr0p1 inet dhcp
41 18 Vincent Passama
> 
42 18 Vincent Passama
> ovs-vsctl add-br ovsbr0
43 18 Vincent Passama
> ovs-vsctl add-port ovsbr0 eth0
44 18 Vincent Passama
> ovs-vsctl add-port ovsbr0 ovsbr0p1 -- set interface ovsbr0p1 type=internal
45 18 Vincent Passama
> reboot@
46 18 Vincent Passama
47 18 Vincent Passama
48 18 Vincent Passama
* *Ajout de VMs avec qemu-kvm :*
49 18 Vincent Passama
50 18 Vincent Passama
51 18 Vincent Passama
> @qemu-img create -f raw debian.raw 2G // Création d'une image disque au format RAW
52 18 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
53 18 Vincent Passama
> virt-clone --connect qemu:///system --original DebianTestingSource --name X --file ./debianX.raw // Clônage de la machine virtuelle
54 18 Vincent Passama
> virt-manager // Pour superviser les VMs en mode graphique
55 18 Vincent Passama
> virt-viewer nomVM // Pour lancer la vue sur une VM en ligne de commande@
56 18 Vincent Passama
57 18 Vincent Passama
58 18 Vincent Passama
* *Accès aux utilisateurs non root résolu via l'utilisation de plusieurs commandes :*
59 18 Vincent Passama
60 18 Vincent Passama
61 18 Vincent Passama
> @cat /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla
62 18 Vincent Passama
> [libvirt Management Access]
63 18 Vincent Passama
> Identity=unix-group:libvirt;unix-user:root
64 18 Vincent Passama
> Action=org.libvirt.unix.manage
65 18 Vincent Passama
> ResultAny=yes
66 18 Vincent Passama
> ResultInactive=yes
67 18 Vincent Passama
> ResultActive=yes@
68 18 Vincent Passama
69 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.
70 18 Vincent Passama
71 18 Vincent Passama
> @adduser vince kvm 
72 18 Vincent Passama
> adduser vince libvirt 
73 18 Vincent Passama
> adduser vince vde2-net@
74 18 Vincent Passama
75 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.
76 18 Vincent Passama
Ne pas oublier par la suite de manipuler les machines virtuelles avec cet ajout dans les commandes :
77 18 Vincent Passama
78 18 Vincent Passama
> @--connect qemu:///system@
79 18 Vincent Passama
80 18 Vincent Passama
81 18 Vincent Passama
* *Edition de la VM pour ajouter l'interface créée via Open vSwitch :*
82 18 Vincent Passama
83 18 Vincent Passama
84 18 Vincent Passama
> @virsh edit DebianTestingSource
85 18 Vincent Passama
> <interface type='bridge'>
86 18 Vincent Passama
> <source bridge='ovsbr0'/>
87 18 Vincent Passama
> <virtualport type='openvswitch' />
88 18 Vincent Passama
> <model type='virtio'/>@
89 18 Vincent Passama
90 18 Vincent Passama
91 22 Vincent Passama
* *Installation et lancement de BIRD :*
92 22 Vincent Passama
93 22 Vincent Passama
94 22 Vincent Passama
> @aptitude install bird bird6 // Installation du paquet BIRD (et BIRD6 pour ipv6)
95 22 Vincent Passama
> vim /etc/bird.conf // Edition du fichier de configuration
96 22 Vincent Passama
> birdc // Invite de commande pour BIRD
97 23 Vincent Passama
> service bird stop|start // Relancer le service BIRD@
98 22 Vincent Passama
99 22 Vincent Passama
100 22 Vincent Passama
* *Topologie du triangle BGP (3 AS) avec routes statiques :*
101 22 Vincent Passama
102 22 Vincent Passama
103 22 Vincent Passama
!http://img199.imageshack.us/img199/5747/tetaneutraltriangle.png!
104 22 Vincent Passama
105 22 Vincent Passama
106 22 Vincent Passama
Sur 3 Vms, effectuer l'activation du routage IP : 
107 22 Vincent Passama
108 22 Vincent Passama
@cat /etc/sysctl.conf
109 22 Vincent Passama
net.ipv4.ip_forward=1
110 22 Vincent Passama
sysctl -p /etc/sysctl.conf@
111 22 Vincent Passama
112 22 Vincent Passama
Configuration de BIRD :
113 22 Vincent Passama
114 24 Vincent Passama
*@cat /etc bird.conf // CONFIGURATION H3@*
115 22 Vincent Passama
116 24 Vincent Passama
@log syslog all;@
117 22 Vincent Passama
118 24 Vincent Passama
@protocol kernel {
119 22 Vincent Passama
persist;		# Don't remove routes on bird shutdown
120 24 Vincent Passama
scan time 20;	        # Scan kernel routing table every 20 seconds
121 22 Vincent Passama
import all;
122 22 Vincent Passama
export all;		# Default is export none
123 24 Vincent Passama
}@
124 22 Vincent Passama
125 24 Vincent Passama
@# This pseudo-protocol watches all interface up/down events.
126 22 Vincent Passama
protocol device {
127 22 Vincent Passama
scan time 10;		# Scan interfaces every 10 seconds
128 22 Vincent Passama
primary "eth1" 192.0.1.1;
129 22 Vincent Passama
primary "eth2" 192.0.2.1;
130 24 Vincent Passama
}@
131 22 Vincent Passama
132 24 Vincent Passama
@protocol static {
133 22 Vincent Passama
import all;
134 25 Vincent Passama
route 192.0.1.0/24 via 192.0.1.1;
135 25 Vincent Passama
route 192.0.2.0/24 via 192.0.2.1;
136 24 Vincent Passama
}@
137 22 Vincent Passama
138 24 Vincent Passama
@protocol bgp h31 {
139 22 Vincent Passama
description "BGP H3 65001";
140 22 Vincent Passama
local as 65000;
141 1 Laurent GUERBY
neighbor 192.0.1.2 as 65001;
142 1 Laurent GUERBY
import all;
143 1 Laurent GUERBY
export all;
144 24 Vincent Passama
}@
145 1 Laurent GUERBY
146 24 Vincent Passama
@protocol bgp h32 {
147 22 Vincent Passama
description "BGP H3 65002";
148 22 Vincent Passama
local as 65000;
149 22 Vincent Passama
neighbor 192.0.2.2 as 65002;
150 1 Laurent GUERBY
import all;
151 1 Laurent GUERBY
export all;
152 24 Vincent Passama
}@
153 22 Vincent Passama
154 24 Vincent Passama
*@cat /etc bird.conf // CONFIGURATION STRI@*
155 1 Laurent GUERBY
156 24 Vincent Passama
@log syslog all;@
157 24 Vincent Passama
158 24 Vincent Passama
@protocol kernel {
159 22 Vincent Passama
persist;		# Don't remove routes on bird shutdown
160 24 Vincent Passama
scan time 20;           # Scan kernel routing table every 20 seconds
161 1 Laurent GUERBY
import all;		# Default is import all
162 22 Vincent Passama
export all;		# Default is export none
163 24 Vincent Passama
}@
164 22 Vincent Passama
165 24 Vincent Passama
@# This pseudo-protocol watches all interface up/down events.
166 1 Laurent GUERBY
protocol device {
167 22 Vincent Passama
scan time 10;		# Scan interfaces every 10 seconds
168 1 Laurent GUERBY
primary "eth1" 192.0.1.2;
169 1 Laurent GUERBY
primary "eth2" 192.0.3.2;
170 24 Vincent Passama
}@
171 22 Vincent Passama
172 24 Vincent Passama
@protocol static {
173 1 Laurent GUERBY
import all;
174 1 Laurent GUERBY
route 192.0.3.0/24 via 192.0.3.2;
175 22 Vincent Passama
route 192.0.1.0/24 via 192.0.1.2;
176 24 Vincent Passama
}@
177 22 Vincent Passama
178 24 Vincent Passama
@protocol bgp stri1 {
179 1 Laurent GUERBY
description "BGP STRI 65002";
180 1 Laurent GUERBY
local as 65001;
181 1 Laurent GUERBY
neighbor 192.0.3.1 as 65002;
182 22 Vincent Passama
import all;
183 22 Vincent Passama
export all;
184 24 Vincent Passama
}@
185 22 Vincent Passama
186 24 Vincent Passama
@protocol bgp stri2 {
187 1 Laurent GUERBY
description "BGP STRI 65000";
188 22 Vincent Passama
local as 65001;
189 22 Vincent Passama
neighbor 192.0.1.1 as 65000;
190 22 Vincent Passama
import all;
191 22 Vincent Passama
export all;
192 24 Vincent Passama
}@
193 22 Vincent Passama
194 24 Vincent Passama
*@cat /etc bird.conf // CONFIGURATION N7@*
195 22 Vincent Passama
196 24 Vincent Passama
@log syslog all;@
197 24 Vincent Passama
198 24 Vincent Passama
@protocol kernel {
199 22 Vincent Passama
persist;		# Don't remove routes on bird shutdown
200 22 Vincent Passama
scan time 20;	# Scan kernel routing table every 20 seconds
201 22 Vincent Passama
import all;		# Default is import all
202 22 Vincent Passama
export all;		# Default is export none
203 24 Vincent Passama
}@
204 22 Vincent Passama
205 24 Vincent Passama
@# This pseudo-protocol watches all interface up/down events.
206 1 Laurent GUERBY
protocol device {
207 1 Laurent GUERBY
scan time 10;		# Scan interfaces every 10 seconds
208 25 Vincent Passama
primary "eth1" 192.0.2.2;
209 25 Vincent Passama
primary "eth2" 192.0.3.1;
210 24 Vincent Passama
}@
211 22 Vincent Passama
212 1 Laurent GUERBY
@protocol static {
213 1 Laurent GUERBY
import all;
214 25 Vincent Passama
route 192.0.2.0/24 via 192.0.2.2;
215 25 Vincent Passama
route 192.0.3.0/24 via 192.0.3.1;
216 24 Vincent Passama
}@
217 22 Vincent Passama
218 24 Vincent Passama
@protocol bgp n71 {
219 22 Vincent Passama
description "BGP N7 65000";
220 22 Vincent Passama
local as 65002;
221 22 Vincent Passama
neighbor 192.0.1.1 as 65000;
222 22 Vincent Passama
import all;
223 22 Vincent Passama
export all;
224 24 Vincent Passama
}@
225 22 Vincent Passama
226 24 Vincent Passama
@protocol bgp n72 {
227 22 Vincent Passama
description "BGP N7 65001";
228 22 Vincent Passama
local as 65002;
229 22 Vincent Passama
neighbor 192.0.3.2 as 65001;
230 22 Vincent Passama
import all;
231 22 Vincent Passama
export all;
232 22 Vincent Passama
}@
233 22 Vincent Passama
234 22 Vincent Passama
Ici, relancer les services BIRD sur chaque machine et patienter quelques secondes...
235 22 Vincent Passama
(voir schema route-BGP-static.png)
236 22 Vincent Passama
237 5 Vincent Passama
h2. Tâches en cours
238 5 Vincent Passama
239 18 Vincent Passama
h3. Vincent
240 5 Vincent Passama
241 26 Vincent Passama
Choix d'une topologie plus complexe (voir tetaneutral-triangle-OSPF.png en lien) pour illustrer le fonctionnement d'OSPF couplé à BGP.
242 26 Vincent Passama
Peut-être qu'une architecture plus simple sera mise en place si il s'avère qu'il est trop long de la mettre en place.
243 13 othmane elmouden
244 13 othmane elmouden
h3. Othmane
245 17 othmane elmouden
246 6 Vincent Passama
Documentation et Installation de  KVM+OVS
247 14 Philippe Latu
Documentation et Installation de BIRD
248 14 Philippe Latu
Documentation sur l'utilisation des vlans dans ovs
249 14 Philippe Latu
250 15 othmane elmouden
Réponse:
251 15 othmane elmouden
252 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é.
253 15 othmane elmouden
 
254 15 othmane elmouden
Justement nous avons pu lancer le virt-manager au niveau d'un utilisateur normal.
255 15 othmane elmouden
256 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 
257 15 othmane elmouden
258 15 othmane elmouden
configurer ports taggés sur le open vswitch.
259 15 othmane elmouden
260 15 othmane elmouden
Serait il nécessaire de passer par des vlans au niveau OVS?
261 15 othmane elmouden
262 16 othmane elmouden
Merci d'avance pour  m'avoir apporter quelque explications pour la prochaine étape .
263 15 othmane elmouden
 
264 15 othmane elmouden
265 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
266 19 Laurent GUERBY
267 26 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
268 21 Vincent Passama
269 1 Laurent GUERBY
h2. Liens utiles
270 1 Laurent GUERBY
271 6 Vincent Passama
h3. KVM
272 6 Vincent Passama
273 1 Laurent GUERBY
* http://www.linux-kvm.org/page/Main_Page : Site officiel de KVM
274 6 Vincent Passama
* http://www.vogelweith.com/debian_server/14_kvm.php : Installation et administration d'un serveur KVM
275 6 Vincent Passama
* http://www.admin-magazine.com/CloudAge/Articles/Virtualization-with-KVM : Autre article sur KVM
276 6 Vincent Passama
277 6 Vincent Passama
h3. open vSwitch
278 6 Vincent Passama
279 6 Vincent Passama
* http://openvswitch.org : Site officiel Open vSwitch
280 6 Vincent Passama
* http://tech.covoiturage.fr/2012/08/22/open-vswitch-un-switch-logiciel-pour-des-reseaux-virtuels : Documentation sur open vSwitch
281 1 Laurent GUERBY
* http://www.admin-magazine.com/CloudAge/Articles/Virtual-switching-with-Open-vSwitch :  Autre article sur open vSwitch
282 1 Laurent GUERBY
283 6 Vincent Passama
h3. BIRD
284 6 Vincent Passama
285 6 Vincent Passama
* http://bird.network.cz : Site officiel BIRD
286 1 Laurent GUERBY
* [[BIRD]] : Page wiki sur BIRD
287 6 Vincent Passama
288 10 Laurent GUERBY
h2. Fichiers et documentation
289 3 Vincent Passama
290 3 Vincent Passama
h2. Notes
291 11 Laurent GUERBY
292 11 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
293 18 Vincent Passama
294 18 Vincent Passama
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