Projet

Général

Profil

StageKVMBIRD » Historique » Version 24

Vincent Passama, 04/03/2013 15:59

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 24 Vincent Passama
}@
135 22 Vincent Passama
136 24 Vincent Passama
@protocol bgp h31 {
137 22 Vincent Passama
description "BGP H3 65001";
138 22 Vincent Passama
local as 65000;
139 1 Laurent GUERBY
neighbor 192.0.1.2 as 65001;
140 1 Laurent GUERBY
import all;
141 1 Laurent GUERBY
export all;
142 24 Vincent Passama
}@
143 1 Laurent GUERBY
144 24 Vincent Passama
@protocol bgp h32 {
145 22 Vincent Passama
description "BGP H3 65002";
146 22 Vincent Passama
local as 65000;
147 22 Vincent Passama
neighbor 192.0.2.2 as 65002;
148 1 Laurent GUERBY
import all;
149 1 Laurent GUERBY
export all;
150 24 Vincent Passama
}@
151 22 Vincent Passama
152 24 Vincent Passama
*@cat /etc bird.conf // CONFIGURATION STRI@*
153 1 Laurent GUERBY
154 24 Vincent Passama
@log syslog all;@
155 24 Vincent Passama
156 24 Vincent Passama
@protocol kernel {
157 22 Vincent Passama
persist;		# Don't remove routes on bird shutdown
158 24 Vincent Passama
scan time 20;           # Scan kernel routing table every 20 seconds
159 1 Laurent GUERBY
import all;		# Default is import all
160 22 Vincent Passama
export all;		# Default is export none
161 24 Vincent Passama
}@
162 22 Vincent Passama
163 24 Vincent Passama
@# This pseudo-protocol watches all interface up/down events.
164 1 Laurent GUERBY
protocol device {
165 22 Vincent Passama
scan time 10;		# Scan interfaces every 10 seconds
166 1 Laurent GUERBY
primary "eth1" 192.0.1.2;
167 1 Laurent GUERBY
primary "eth2" 192.0.3.2;
168 24 Vincent Passama
}@
169 22 Vincent Passama
170 24 Vincent Passama
@protocol static {
171 1 Laurent GUERBY
import all;
172 1 Laurent GUERBY
route 192.0.3.0/24 via 192.0.3.2;
173 22 Vincent Passama
route 192.0.1.0/24 via 192.0.1.2;
174 24 Vincent Passama
}@
175 22 Vincent Passama
176 24 Vincent Passama
@protocol bgp stri1 {
177 1 Laurent GUERBY
description "BGP STRI 65002";
178 1 Laurent GUERBY
local as 65001;
179 1 Laurent GUERBY
neighbor 192.0.3.1 as 65002;
180 22 Vincent Passama
import all;
181 22 Vincent Passama
export all;
182 24 Vincent Passama
}@
183 22 Vincent Passama
184 24 Vincent Passama
@protocol bgp stri2 {
185 1 Laurent GUERBY
description "BGP STRI 65000";
186 22 Vincent Passama
local as 65001;
187 22 Vincent Passama
neighbor 192.0.1.1 as 65000;
188 22 Vincent Passama
import all;
189 22 Vincent Passama
export all;
190 24 Vincent Passama
}@
191 22 Vincent Passama
192 24 Vincent Passama
*@cat /etc bird.conf // CONFIGURATION N7@*
193 22 Vincent Passama
194 24 Vincent Passama
@log syslog all;@
195 24 Vincent Passama
196 24 Vincent Passama
@protocol kernel {
197 22 Vincent Passama
persist;		# Don't remove routes on bird shutdown
198 22 Vincent Passama
scan time 20;	# Scan kernel routing table every 20 seconds
199 22 Vincent Passama
import all;		# Default is import all
200 22 Vincent Passama
export all;		# Default is export none
201 24 Vincent Passama
}@
202 22 Vincent Passama
203 24 Vincent Passama
@# This pseudo-protocol watches all interface up/down events.
204 22 Vincent Passama
protocol device {
205 22 Vincent Passama
scan time 10;		# Scan interfaces every 10 seconds
206 22 Vincent Passama
primary "eth1" 192.168.2.2;
207 22 Vincent Passama
primary "eth2" 192.168.3.1;
208 24 Vincent Passama
}@
209 22 Vincent Passama
210 24 Vincent Passama
@protocol static {
211 22 Vincent Passama
import all;
212 24 Vincent Passama
}@
213 22 Vincent Passama
214 24 Vincent Passama
@protocol bgp n71 {
215 22 Vincent Passama
description "BGP N7 65000";
216 22 Vincent Passama
local as 65002;
217 22 Vincent Passama
neighbor 192.0.1.1 as 65000;
218 22 Vincent Passama
import all;
219 22 Vincent Passama
export all;
220 24 Vincent Passama
}@
221 22 Vincent Passama
222 24 Vincent Passama
@protocol bgp n72 {
223 22 Vincent Passama
description "BGP N7 65001";
224 22 Vincent Passama
local as 65002;
225 22 Vincent Passama
neighbor 192.0.3.2 as 65001;
226 22 Vincent Passama
import all;
227 22 Vincent Passama
export all;
228 22 Vincent Passama
}@
229 22 Vincent Passama
230 22 Vincent Passama
Ici, relancer les services BIRD sur chaque machine et patienter quelques secondes...
231 22 Vincent Passama
(voir schema route-BGP-static.png)
232 22 Vincent Passama
233 5 Vincent Passama
h2. Tâches en cours
234 5 Vincent Passama
235 18 Vincent Passama
h3. Vincent
236 5 Vincent Passama
237 18 Vincent Passama
Paramétrage OSPF + BIRD sur une topologie regroupant plusieurs routeurs. (Triangle pour commencer).
238 13 othmane elmouden
239 13 othmane elmouden
h3. Othmane
240 17 othmane elmouden
241 6 Vincent Passama
Documentation et Installation de  KVM+OVS
242 14 Philippe Latu
Documentation et Installation de BIRD
243 14 Philippe Latu
Documentation sur l'utilisation des vlans dans ovs
244 14 Philippe Latu
245 15 othmane elmouden
Réponse:
246 15 othmane elmouden
247 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é.
248 15 othmane elmouden
 
249 15 othmane elmouden
Justement nous avons pu lancer le virt-manager au niveau d'un utilisateur normal.
250 15 othmane elmouden
251 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 
252 15 othmane elmouden
253 15 othmane elmouden
configurer ports taggés sur le open vswitch.
254 15 othmane elmouden
255 15 othmane elmouden
Serait il nécessaire de passer par des vlans au niveau OVS?
256 15 othmane elmouden
257 16 othmane elmouden
Merci d'avance pour  m'avoir apporter quelque explications pour la prochaine étape .
258 15 othmane elmouden
 
259 15 othmane elmouden
260 20 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
261 19 Laurent GUERBY
262 21 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.
263 21 Vincent Passama
264 1 Laurent GUERBY
h2. Liens utiles
265 1 Laurent GUERBY
266 6 Vincent Passama
h3. KVM
267 6 Vincent Passama
268 1 Laurent GUERBY
* http://www.linux-kvm.org/page/Main_Page : Site officiel de KVM
269 6 Vincent Passama
* http://www.vogelweith.com/debian_server/14_kvm.php : Installation et administration d'un serveur KVM
270 6 Vincent Passama
* http://www.admin-magazine.com/CloudAge/Articles/Virtualization-with-KVM : Autre article sur KVM
271 6 Vincent Passama
272 6 Vincent Passama
h3. open vSwitch
273 6 Vincent Passama
274 6 Vincent Passama
* http://openvswitch.org : Site officiel Open vSwitch
275 6 Vincent Passama
* http://tech.covoiturage.fr/2012/08/22/open-vswitch-un-switch-logiciel-pour-des-reseaux-virtuels : Documentation sur open vSwitch
276 1 Laurent GUERBY
* http://www.admin-magazine.com/CloudAge/Articles/Virtual-switching-with-Open-vSwitch :  Autre article sur open vSwitch
277 1 Laurent GUERBY
278 6 Vincent Passama
h3. BIRD
279 6 Vincent Passama
280 6 Vincent Passama
* http://bird.network.cz : Site officiel BIRD
281 1 Laurent GUERBY
* [[BIRD]] : Page wiki sur BIRD
282 6 Vincent Passama
283 10 Laurent GUERBY
h2. Fichiers et documentation
284 3 Vincent Passama
285 3 Vincent Passama
h2. Notes
286 11 Laurent GUERBY
287 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
288 18 Vincent Passama
289 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