21 novembre 2024

Tuto Virtualisation V.2018 : Partie VI, Un nouveau VLAN

Sixième partie du tutoriel sur la virtualisation « Xen et OpenVswitch sont dans une Debian« .
Dans l’article précédent « Partie V : 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

Une image valant mille mots…
schema tuto2

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 les paquets).
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

 

B – Ajout de la nouvelle interface pour les VMS coté Xen

Maintenant, on va arrêter toutes les vms :

dom0# xen shutdown proxy
dom0# xen shutdown ids
dom0# xen shutdown routeur

On va 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:A0:02:02,bridge=brint.2',
                 'vifname=routeur.2,ip=10.20.1.2 ,mac=00:16:3E:A0:02:20,bridge=brint.20',
                 'vifname=routeur.3,ip=10.99.1.2 ,mac=00:16:3E:A0:02:40,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:A0:03:02,bridge=brint.2',
                'vifname=ids.1,ip=10.10.1.3 ,mac=00:16:3E:A0:03:10,bridge=brint.10',
                'vifname=ids.2,ip=10.20.1.3 ,mac=00:16:3E:A0:03:20,bridge=brint.20',
                'vifname=ids.3,ip=10.99.1.3 ,mac=00:16:3E:A0:03:99,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:A0:10:10,bridge=brint.10',
                'vifname=proxy.1,ip=10.20.1.10 ,mac=00:16:3E:A0:10:20,bridge=brint.20',
                'vifname=proxy.2,ip=10.99.1.10 ,mac=00:16:3E:A0:10:99,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 et tester si tout est ok.

dom0# ssh 10.99.1.2

On teste le ntp (voir si nos vms se connectent toujours bien au dom0 10.99.1.1) :

routeur# ntpq -p

et la connexion internet :

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 également pinger les autres sur le nouveau réseau. Au passage, tester que un http://IP_FAILOVER vous donne bien la page d’accueil Nginx.
Bref, tout est Ok pour la prochaine étape, la création de ce fameux proxy interne, qui permettra aux machines connectées uniquement aux Vlan 20 et 99 d’avoir accès aux ressources d’internet.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *