StageKVMBIRD » Historique » Version 27
Version 26 (Vincent Passama, 04/03/2013 17:04) → Version 27/53 (Vincent Passama, 07/03/2013 17:17)
{{>toc}}
h1. StageKVMBIRD
Projet de maquettage réseau virtualisé avec interconnexion de niveaux 2 et 3 (routage dynamique)
h2. Projet
h3. Technique
* Installation et prise en main de KVM/libvirt, Open vSwitch, BIRD.
* Accès aux machines virtuelles par groupe d'utilisateurs (accès non root)
* Etablissement de plusieurs topologies de test (voir schéma en lien)
* Utilisation de routes statiques puis réglages d'OSPF
h3. Information / gestion
* Documentation et prise en main de BIRD, open vSwitch, KVM
h2. Point d'avancement
h3.
* *Installation et lancement de Open vSwitch :*
> @aptitude install openvswitch-brcompat openvswitch-common openvswitch-datapath-dkms@ openvswitch-datapath-dkms
@cat /etc/network/interfaces@
*@ > cat /etc/network/interfaces
> # The loopback network interface@* interface
> auto lo
> iface lo inet loopback@
*@ loopback
>
> # The primary network interface@* interface
@auto > auto eth0
> iface eth0 inet manual
> up ifconfig $IFACE 0.0.0.0 up
> down ifconfig $IFACE down@
*@ down
>
> # Host Network@* Network
@iface > iface ovsbr0p1 inet dhcp@
@ovs-vsctl dhcp
>
> ovs-vsctl add-br ovsbr0
> ovs-vsctl add-port ovsbr0 eth0
> ovs-vsctl add-port ovsbr0 ovsbr0p1 -- set interface ovsbr0p1 type=internal
> reboot@
h3.
* *Ajout de VMs avec qemu-kvm :*
> @qemu-img create -f raw debian.raw 2G // Création d'une image disque au format RAW
> 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
> virt-clone --connect qemu:///system --original DebianTestingSource --name X --file ./debianX.raw // Clônage de la machine virtuelle
> virt-manager // Pour superviser les VMs en mode graphique
> virt-viewer nomVM // Pour lancer la vue sur une VM en ligne de commande@
h3.
* *Accès aux utilisateurs non root résolu via l'utilisation de plusieurs commandes :*
> @cat /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla
> [libvirt Management Access]
> Identity=unix-group:libvirt;unix-user:root
> Action=org.libvirt.unix.manage
> ResultAny=yes
> ResultInactive=yes
> ResultActive=yes@
Ce fichier permet de déclarer les accès à la supervision des machines virtuelles selon le nom ou le groupe d'un utilisateur.
> @adduser vince kvm
> adduser vince libvirt
> adduser vince vde2-net@
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.
Ne pas oublier par la suite de manipuler les machines virtuelles avec cet ajout dans les commandes :
> @--connect qemu:///system@
h3.
* *Edition de la VM pour ajouter l'interface créée via Open vSwitch :*
> @virsh edit DebianTestingSource
> <interface type='bridge'>
> <source bridge='ovsbr0'/>
> <virtualport type='openvswitch' />
> <model type='virtio'/>@
h3.
* *Installation et lancement de BIRD :*
> @aptitude install bird bird6 // Installation du paquet BIRD (et BIRD6 pour ipv6)
> vim /etc/bird.conf // Edition du fichier de configuration
> birdc // Invite de commande pour BIRD
> service bird stop|start // Relancer le service BIRD@
h3.
* *Topologie du triangle BGP (3 AS) avec routes statiques :*
!http://img199.imageshack.us/img199/5747/tetaneutraltriangle.png!
Sur 3 Vms, effectuer l'activation du routage IP :
@cat /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p /etc/sysctl.conf@
Configuration de BIRD :
*@cat /etc bird.conf // CONFIGURATION H3@*
@log syslog all;@
@protocol kernel {
persist; # Don't remove routes on bird shutdown
scan time 20; # Scan kernel routing table every 20 seconds
import all;
export all; # Default is export none
}@
@# This pseudo-protocol watches all interface up/down events.
protocol device {
scan time 10; # Scan interfaces every 10 seconds
primary "eth1" 192.0.1.1;
primary "eth2" 192.0.2.1;
}@
@protocol static {
import all;
route 192.0.1.0/24 via 192.0.1.1;
route 192.0.2.0/24 via 192.0.2.1;
}@
@protocol bgp h31 {
description "BGP H3 65001";
local as 65000;
neighbor 192.0.1.2 as 65001;
import all;
export all;
}@
@protocol bgp h32 {
description "BGP H3 65002";
local as 65000;
neighbor 192.0.2.2 as 65002;
import all;
export all;
}@
*@cat /etc bird.conf // CONFIGURATION STRI@*
@log syslog all;@
@protocol kernel {
persist; # Don't remove routes on bird shutdown
scan time 20; # Scan kernel routing table every 20 seconds
import all; # Default is import all
export all; # Default is export none
}@
@# This pseudo-protocol watches all interface up/down events.
protocol device {
scan time 10; # Scan interfaces every 10 seconds
primary "eth1" 192.0.1.2;
primary "eth2" 192.0.3.2;
}@
@protocol static {
import all;
route 192.0.3.0/24 via 192.0.3.2;
route 192.0.1.0/24 via 192.0.1.2;
}@
@protocol bgp stri1 {
description "BGP STRI 65002";
local as 65001;
neighbor 192.0.3.1 as 65002;
import all;
export all;
}@
@protocol bgp stri2 {
description "BGP STRI 65000";
local as 65001;
neighbor 192.0.1.1 as 65000;
import all;
export all;
}@
*@cat /etc bird.conf // CONFIGURATION N7@*
@log syslog all;@
@protocol kernel {
persist; # Don't remove routes on bird shutdown
scan time 20; # Scan kernel routing table every 20 seconds
import all; # Default is import all
export all; # Default is export none
}@
@# This pseudo-protocol watches all interface up/down events.
protocol device {
scan time 10; # Scan interfaces every 10 seconds
primary "eth1" 192.0.2.2;
primary "eth2" 192.0.3.1;
}@
@protocol static {
import all;
route 192.0.2.0/24 via 192.0.2.2;
route 192.0.3.0/24 via 192.0.3.1;
}@
@protocol bgp n71 {
description "BGP N7 65000";
local as 65002;
neighbor 192.0.1.1 as 65000;
import all;
export all;
}@
@protocol bgp n72 {
description "BGP N7 65001";
local as 65002;
neighbor 192.0.3.2 as 65001;
import all;
export all;
}@
Ici, relancer les services BIRD sur chaque machine et patienter quelques secondes...
(voir schema route-BGP-static.png)
h3. *Topologie du triangle BGP (3 AS) avec routes dynamiques (OSPF) :*
!http://img35.imageshack.us/img35/9895/tetaneutraltriangleospf.png!
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.
Pour les eBGP, les routes sont diffusées via BGP.
h2. Tâches en cours
h3. Vincent
A se partager avec Othmane :
* Prévoir l'utilisation de VLANs
* Regarder les rejets de routes
* Faire le bilan sur les possibilités de la virtualisation (partage de systèmes de fichiers) et comparer avec notre avancement
* Faire cohabiter Quagga / BIRD dans la Choix d'une topologie plus complexe (voir tetaneutral-triangle-OSPF.png en lien) pour constater notamment les différences d'accès illustrer le fonctionnement d'OSPF couplé à l'espace utilisateur / espace noyau BGP.
* Vérifier et noter la sécurité des VMs par rapport à des erreurs de manipulations entre différents utilisateurs
* Mettre Peut-être qu'une architecture plus simple sera mise en place si il s'avère qu'il est trop long de la topologie suivante :
!http://img803.imageshack.us/img803/1870/tetaneutralinterco.png!
* Automatiser l'installation / la configuration des VMs au moyen de scripts
* Rédiger le rapport et préparer l'oral (plan à venir) mettre en place.
h3. Othmane
Documentation et Installation de KVM+OVS
Documentation et Installation de BIRD
Documentation sur l'utilisation des vlans dans ovs
Réponse:
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é.
Justement nous avons pu lancer le virt-manager au niveau d'un utilisateur normal.
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
configurer ports taggés sur le open vswitch.
Serait il nécessaire de passer par des vlans au niveau OVS?
Merci d'avance pour m'avoir apporter quelque explications pour la prochaine étape .
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
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
h2. Liens utiles
h3. KVM
* http://www.linux-kvm.org/page/Main_Page : Site officiel de KVM
* http://www.vogelweith.com/debian_server/14_kvm.php : Installation et administration d'un serveur KVM
* http://www.admin-magazine.com/CloudAge/Articles/Virtualization-with-KVM : Autre article sur KVM
h3. open vSwitch
* http://openvswitch.org : Site officiel Open vSwitch
* http://tech.covoiturage.fr/2012/08/22/open-vswitch-un-switch-logiciel-pour-des-reseaux-virtuels : Documentation sur open vSwitch
* http://www.admin-magazine.com/CloudAge/Articles/Virtual-switching-with-Open-vSwitch : Autre article sur open vSwitch
h3. BIRD
* http://bird.network.cz : Site officiel BIRD
* [[BIRD]] : Page wiki sur BIRD
h2. Fichiers et documentation
h2. Notes
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
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
h1. StageKVMBIRD
Projet de maquettage réseau virtualisé avec interconnexion de niveaux 2 et 3 (routage dynamique)
h2. Projet
h3. Technique
* Installation et prise en main de KVM/libvirt, Open vSwitch, BIRD.
* Accès aux machines virtuelles par groupe d'utilisateurs (accès non root)
* Etablissement de plusieurs topologies de test (voir schéma en lien)
* Utilisation de routes statiques puis réglages d'OSPF
h3. Information / gestion
* Documentation et prise en main de BIRD, open vSwitch, KVM
h2. Point d'avancement
h3.
* *Installation et lancement de Open vSwitch :*
> @aptitude install openvswitch-brcompat openvswitch-common openvswitch-datapath-dkms@ openvswitch-datapath-dkms
@cat /etc/network/interfaces@
*@ > cat /etc/network/interfaces
> # The loopback network interface@* interface
> auto lo
> iface lo inet loopback@
*@ loopback
>
> # The primary network interface@* interface
@auto > auto eth0
> iface eth0 inet manual
> up ifconfig $IFACE 0.0.0.0 up
> down ifconfig $IFACE down@
*@ down
>
> # Host Network@* Network
@iface > iface ovsbr0p1 inet dhcp@
@ovs-vsctl dhcp
>
> ovs-vsctl add-br ovsbr0
> ovs-vsctl add-port ovsbr0 eth0
> ovs-vsctl add-port ovsbr0 ovsbr0p1 -- set interface ovsbr0p1 type=internal
> reboot@
h3.
* *Ajout de VMs avec qemu-kvm :*
> @qemu-img create -f raw debian.raw 2G // Création d'une image disque au format RAW
> 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
> virt-clone --connect qemu:///system --original DebianTestingSource --name X --file ./debianX.raw // Clônage de la machine virtuelle
> virt-manager // Pour superviser les VMs en mode graphique
> virt-viewer nomVM // Pour lancer la vue sur une VM en ligne de commande@
h3.
* *Accès aux utilisateurs non root résolu via l'utilisation de plusieurs commandes :*
> @cat /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla
> [libvirt Management Access]
> Identity=unix-group:libvirt;unix-user:root
> Action=org.libvirt.unix.manage
> ResultAny=yes
> ResultInactive=yes
> ResultActive=yes@
Ce fichier permet de déclarer les accès à la supervision des machines virtuelles selon le nom ou le groupe d'un utilisateur.
> @adduser vince kvm
> adduser vince libvirt
> adduser vince vde2-net@
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.
Ne pas oublier par la suite de manipuler les machines virtuelles avec cet ajout dans les commandes :
> @--connect qemu:///system@
h3.
* *Edition de la VM pour ajouter l'interface créée via Open vSwitch :*
> @virsh edit DebianTestingSource
> <interface type='bridge'>
> <source bridge='ovsbr0'/>
> <virtualport type='openvswitch' />
> <model type='virtio'/>@
h3.
* *Installation et lancement de BIRD :*
> @aptitude install bird bird6 // Installation du paquet BIRD (et BIRD6 pour ipv6)
> vim /etc/bird.conf // Edition du fichier de configuration
> birdc // Invite de commande pour BIRD
> service bird stop|start // Relancer le service BIRD@
h3.
* *Topologie du triangle BGP (3 AS) avec routes statiques :*
!http://img199.imageshack.us/img199/5747/tetaneutraltriangle.png!
Sur 3 Vms, effectuer l'activation du routage IP :
@cat /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p /etc/sysctl.conf@
Configuration de BIRD :
*@cat /etc bird.conf // CONFIGURATION H3@*
@log syslog all;@
@protocol kernel {
persist; # Don't remove routes on bird shutdown
scan time 20; # Scan kernel routing table every 20 seconds
import all;
export all; # Default is export none
}@
@# This pseudo-protocol watches all interface up/down events.
protocol device {
scan time 10; # Scan interfaces every 10 seconds
primary "eth1" 192.0.1.1;
primary "eth2" 192.0.2.1;
}@
@protocol static {
import all;
route 192.0.1.0/24 via 192.0.1.1;
route 192.0.2.0/24 via 192.0.2.1;
}@
@protocol bgp h31 {
description "BGP H3 65001";
local as 65000;
neighbor 192.0.1.2 as 65001;
import all;
export all;
}@
@protocol bgp h32 {
description "BGP H3 65002";
local as 65000;
neighbor 192.0.2.2 as 65002;
import all;
export all;
}@
*@cat /etc bird.conf // CONFIGURATION STRI@*
@log syslog all;@
@protocol kernel {
persist; # Don't remove routes on bird shutdown
scan time 20; # Scan kernel routing table every 20 seconds
import all; # Default is import all
export all; # Default is export none
}@
@# This pseudo-protocol watches all interface up/down events.
protocol device {
scan time 10; # Scan interfaces every 10 seconds
primary "eth1" 192.0.1.2;
primary "eth2" 192.0.3.2;
}@
@protocol static {
import all;
route 192.0.3.0/24 via 192.0.3.2;
route 192.0.1.0/24 via 192.0.1.2;
}@
@protocol bgp stri1 {
description "BGP STRI 65002";
local as 65001;
neighbor 192.0.3.1 as 65002;
import all;
export all;
}@
@protocol bgp stri2 {
description "BGP STRI 65000";
local as 65001;
neighbor 192.0.1.1 as 65000;
import all;
export all;
}@
*@cat /etc bird.conf // CONFIGURATION N7@*
@log syslog all;@
@protocol kernel {
persist; # Don't remove routes on bird shutdown
scan time 20; # Scan kernel routing table every 20 seconds
import all; # Default is import all
export all; # Default is export none
}@
@# This pseudo-protocol watches all interface up/down events.
protocol device {
scan time 10; # Scan interfaces every 10 seconds
primary "eth1" 192.0.2.2;
primary "eth2" 192.0.3.1;
}@
@protocol static {
import all;
route 192.0.2.0/24 via 192.0.2.2;
route 192.0.3.0/24 via 192.0.3.1;
}@
@protocol bgp n71 {
description "BGP N7 65000";
local as 65002;
neighbor 192.0.1.1 as 65000;
import all;
export all;
}@
@protocol bgp n72 {
description "BGP N7 65001";
local as 65002;
neighbor 192.0.3.2 as 65001;
import all;
export all;
}@
Ici, relancer les services BIRD sur chaque machine et patienter quelques secondes...
(voir schema route-BGP-static.png)
h3. *Topologie du triangle BGP (3 AS) avec routes dynamiques (OSPF) :*
!http://img35.imageshack.us/img35/9895/tetaneutraltriangleospf.png!
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.
Pour les eBGP, les routes sont diffusées via BGP.
h2. Tâches en cours
h3. Vincent
A se partager avec Othmane :
* Prévoir l'utilisation de VLANs
* Regarder les rejets de routes
* Faire le bilan sur les possibilités de la virtualisation (partage de systèmes de fichiers) et comparer avec notre avancement
* Faire cohabiter Quagga / BIRD dans la Choix d'une topologie plus complexe (voir tetaneutral-triangle-OSPF.png en lien) pour constater notamment les différences d'accès illustrer le fonctionnement d'OSPF couplé à l'espace utilisateur / espace noyau BGP.
* Vérifier et noter la sécurité des VMs par rapport à des erreurs de manipulations entre différents utilisateurs
* Mettre Peut-être qu'une architecture plus simple sera mise en place si il s'avère qu'il est trop long de la topologie suivante :
!http://img803.imageshack.us/img803/1870/tetaneutralinterco.png!
* Automatiser l'installation / la configuration des VMs au moyen de scripts
* Rédiger le rapport et préparer l'oral (plan à venir) mettre en place.
h3. Othmane
Documentation et Installation de KVM+OVS
Documentation et Installation de BIRD
Documentation sur l'utilisation des vlans dans ovs
Réponse:
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é.
Justement nous avons pu lancer le virt-manager au niveau d'un utilisateur normal.
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
configurer ports taggés sur le open vswitch.
Serait il nécessaire de passer par des vlans au niveau OVS?
Merci d'avance pour m'avoir apporter quelque explications pour la prochaine étape .
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
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
h2. Liens utiles
h3. KVM
* http://www.linux-kvm.org/page/Main_Page : Site officiel de KVM
* http://www.vogelweith.com/debian_server/14_kvm.php : Installation et administration d'un serveur KVM
* http://www.admin-magazine.com/CloudAge/Articles/Virtualization-with-KVM : Autre article sur KVM
h3. open vSwitch
* http://openvswitch.org : Site officiel Open vSwitch
* http://tech.covoiturage.fr/2012/08/22/open-vswitch-un-switch-logiciel-pour-des-reseaux-virtuels : Documentation sur open vSwitch
* http://www.admin-magazine.com/CloudAge/Articles/Virtual-switching-with-Open-vSwitch : Autre article sur open vSwitch
h3. BIRD
* http://bird.network.cz : Site officiel BIRD
* [[BIRD]] : Page wiki sur BIRD
h2. Fichiers et documentation
h2. Notes
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
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