EDIT 2018 : Retrouvez cette série de tuto dans une grosse mise à jour ici : Xen et OpenVswitch sont dans une Debian 9 – V.2018
Cinquième partie du tutoriel sur la virtualisation « Xen et OpenVswitch sont dans une Debian« .
Dans l’article précédent « Partie IV : Firewall » nous avons appliquer un poil de sécurité.
Nous allons maintenant complexifier un peu la chose au niveau de notre réseau…
I – Présentation
A – Schéma
B – Explication
Cependant, quelques mots, cela peut aider 😉
Pour rappel, VLAN 2, VLAN10, VLAN20 et VLAN99 sont dans le même switch brint.
1 – switch bro
Vlan permettant de « partager » le lien ethernet entre le Dom0 et la VM routeur, chacune avec son ip.
Rien de plus sur ce switch.
2 – Vlan 99
Ce vlan ne sert que pour deux choses : la diffusion du temps correct aux VMs et leur administration par ssh depuis le dom0.
Il est obligatoire sur chaque VM.
3 – Vlan 2
Vlan servant à relier le routeur au vlan 10 par le biais de l’ids (qui fait aussi routeur au final, mais sans règle particulière, il fait juste passer).
On ne trouvera donc dedans que le routeur et l’ids.
4 – Vlan 10
Dans l’idée, je ne veux dans ce vlan que les machines qui « discutent » avec le net derrière le routeur (et l’ids). A savoir :
- l’ids a forcement une de ses interfaces dessus pour permettre au vlan 10 d’accéder au routeur
- le proxy web (enfin, qui va faire du reverse proxy)
- le serveur mail
- le serveur dns
- le proxy interne (qui va servir de proxy pour nos vms, je reviens dessus plus tard)
5 – Vlan 20
Le petit nouveau… Celui ci sert pour la communication entre les machines dans le cas d’échanges d’informations entres elles.
Du proxy (enfin, reverse proxy pour être précis) vers les serveurs web.
Des serveurs Webs vers les serveurs SQL, GLUSTER, et autres.
Et il servira également pour le monitoring.
Comme le vlan99, il est obligatoire.
Ce sont les deux Vlan « transverses » chacun affecté à une tâche.
Sur le schéma, je n’ai indiqué qu’une seule machine, mais il y en aura beaucoup d’autres une fois tout en place.
Je reviens sur l’intérêt de la nouvelle machine proxyint dans le vlan 10…
En effet, si vous êtes attentifs, vous remarquerez qu’une VM dans le vlan 20, Web1 par exemple, pour accéder au net (pour télécharger ses paquets par exemple, elle croise du monde.
Quelles sont ses possibilités ?
Passer par le Vlan système, oui, mais non, ce n’est pas son but.
Rejoindre le routeur directement par le vlan 20. Possible, mais le Vlan 20 n’est pas fait pour ça.
Le seul Vlan que je veux en « lien » avec le grand net, c’est le 10. On va donc faire passer toutes les VMs par une unique proxy qui aura une pâte sur le vlan20 et une pâte sur le vlan10. Dessus ? Un squid, un cache APT…
II – Mise en place
A – Dom0
Sur l’hyperviseur, on va simplement ajouter le vlan :
dom0# ovs-vsctl add-br vlan20 brint 20
Pfff, c’était compliqué.
B – Ajout de la nouvelle interface pour les VMS coté Xen
Maintenant, on va arrêter les vms :
dom0# xen shutdown proxy dom0# xen shutdown ids dom0# xen shutdown routeur
On modifier pour chacune son fichier de configuration.
1 – Routeur
Editez le fichier /etc/xen/routeur.cfg :
vif = [ 'vifname=routeur.0,ip=IPFAILOVER ,mac=00:16:3e:00:10:21,bridge=br0', 'vifname=routeur.1,ip=10.2.1.2 ,mac=00:16:3E:A7:63:8E,bridge=brint.2', 'vifname=routeur.2,ip=10.20.1.2 ,mac=00:16:3E:A7:63:8F,bridge=brint.20'] 'vifname=routeur.3,ip=10.99.1.2 ,mac=00:16:3E:A7:63:8E,bridge=brint.99']
On modifie le fichier interface :
dom0# mount /dev/vg0/routeur-disk /mnt/vm/ dom0# nano /mnt/vm/etc/network/interface
Avec cela :
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address IPFAILOVER netmask 255.255.255.0 gateway GATEWAYDEDIBOX auto eth1 iface eth1 inet static address 10.2.1.2 netmask 255.255.255.0 auto eth2 iface eth2 inet static address 10.20.1.2 netmask 255.255.255.0 auto eth3 iface eth3 inet static address 10.99.1.2 netmask 255.255.255.0
On démonte :
dom0# umount /mnt/vm
On le relance :
dom0# xen create /etc/xen/routeur.cfg
2 – IDS
Editez le fichier /etc/xen/ids.cfg :
vif = [ 'vifname=ids.0,ip=10.2.1.3 ,mac=00:16:3E:69:9D:4A,bridge=brint.2', 'vifname=ids.1,ip=10.10.1.3 ,mac=00:16:3E:69:9D:4B,bridge=brint.10', 'vifname=ids.2,ip=10.20.1.3 ,mac=00:16:3E:69:9D:4D,bridge=brint.20', 'vifname=ids.3,ip=10.99.1.3 ,mac=00:16:3E:69:9D:4C,bridge=brint.99']
On modifie le fichier interface :
dom0# mount /dev/vg0/ids-disk /mnt/vm/ dom0# nano /mnt/vm/etc/network/interface
Avec cela :
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.2.1.3 netmask 255.255.255.0 gateway 10.2.1.2 auto eth1 iface eth1 inet static address 10.10.1.3 netmask 255.255.255.0 auto eth2 iface eth2 inet static address 10.20.1.3 netmask 255.255.255.0 auto eth3 iface eth3 inet static address 10.99.1.3 netmask 255.255.255.0
On démonte :
dom0# umount /mnt/vm
On le relance :
dom0# xen create /etc/xen/ids.cfg
3 – Proxy
Et rebelote…
Editez le fichier /etc/xen/proxy.cfg :
vif = [ 'vifname=proxy.0,ip=10.10.1.10 ,mac=00:16:3E:38:E6:D9,bridge=brint.10', 'vifname=proxy.1,ip=10.20.1.10 ,mac=00:16:3E:38:E6:DB,bridge=brint.20', 'vifname=proxy.2,ip=10.99.1.10 ,mac=00:16:3E:38:E6:DA,bridge=brint.99']
On modifie le fichier interface :
dom0# mount /dev/vg0/proxy-disk /mnt/vm/ dom0# nano /mnt/vm/etc/network/interface
Avec cela :
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.10.1.10 netmask 255.255.255.0 gateway 10.10.1.3 auto eth1 iface eth1 inet static address 10.20.1.10 netmask 255.255.255.0 auto eth2 iface eth2 inet static address 10.99.1.10 netmask 255.255.255.0
On démonte :
dom0# umount /mnt/vm
On le relance :
dom0# xen create /etc/xen/proxy.cfg
C – Configuration des VMs
Une fois tout redémarré, on va se connecter sur chaque machine, ajouter l’interface et tester si tout est ok
dom0# ssh 10.99.1.2
On teste le ntp (voir si nos vms choppent bien le serveur en 10.99.1.1) :
routeur# ntpq -p
et la connexion :
routeur# wget google.fr
Et la même chose depuis l’ids (ssh 10.99.1.3) et le proxy (ssh 10.99.1.10)
Chaque machine peut pinger les autres sur le nouveau réseau également.
Bref, tout est Ok pour la prochaine étape, la création de ce fameux proxy : Partie VI, Le proxy interne.