Proxmox ou la virtualisation simple d'accès
Proxmox est une solution libre de virtualisation "bare metal" que j'affectionne particulièrement. Plusieurs raisons à cela, la première est sa simplicité de mise en oeuvre, puis d'autres raisons plus liées au modèle économique de Mind And Go et au comparatif avec ses concurrents :- Interface d'administration full web (pas besoin de VM supplémentaires pour monitorer, sauvegarder, etc...)
- Web service REST disponibles pour une intégration avec vos applications
- Une version mobile pour l'administration
- Support de Qemu, et des conteneurs OpenVZ ou LXC son remplaçant dans la v4
- Le support de nombreux systèmes de fichiers distribués pour s'affranchir d'investissement en SAN couteux, ZFS, NFS, Gluster, RDB, DRDB (dans la v4)
- La possibilité de faire de la haute disponibilité sans coût de licence supplémentaire
- Et j'en passe...
Ci contre vous pourrez observer que notre parc de VM est plus que convenable, avec pourtant une faible consommation des ressources.
Kimsufi, la solution pour un cloud peu onéreux
Ou comment utiliser une seule IP pour tout son parc
La solution Kimsufi est une solution de serveurs à moindres coûts portée par OVH. Avec des moyens ridicules vous pouvez obtenir des serveurs pour 5 à 10 fois moins chers que chez les hébergeurs classiques, OVH compris. La contrepartie de ce service est la non assistance technique sur la mise en place de votre infrastructure (Sur le matériel en revanche pas de soucis).
Autant le dire tout de suite, pour faire du serveur dédié tout le monde devrait s'en sortir mais dès que l'on souhaite faire du cloud avec de la virtualisation et autres architectures un peu complexes alors il faut savoir une chose toute simple : Impossible d'associer plusieurs IP (Dites failover) à votre serveur Kimsufi, c'est contractuel ! Les habitués d'autres solutions pour lesquelles il est facile d'acheter des IP en pagaille seront désarçonnés. Pour ma part, je trouve cette limitation plus que judicieuse car elle permet de sécuriser votre réseau. Je parlerai de cela ultérieurement.
Notre problème désormais est donc le suivant, comment faire pour poser plein de VM, et les atteindre bien sûr, derrière un seule IP? A cette question, figurez vous que tous vos FAI le permettent dans votre BOX préférée en routant le traffic externe sur l'IP de votre LAN qualifiée de DMZ. Donc rien d'insurmontable pour un Proxmox qui tourne sur Debian, si c'est du routage on va pouvoir s'en sortir, et il nous suffira de mettre en place du NAT.
La stratégie est donc la suivante, Nater tout le trafic réseau (ou presque) sur l'IP publique vers une VM intern dédiée à cela. Pour le choix de cette VM nous choisirons une autre de nos solutions favorites de routage : pfSense. Allons y, nous avons tous les éléments.
Dernière étape, le Natage de votre IP publique
Voilà nous touchons au plus important, les précédentes étapes étant plutôt classiques. Pour cette dernère étape nous allons utiliser un peu de ligne de commande pour créer deux fichiers de conf qui seront exécutés au démarrage du réseau :
# cd /vz/root
# touch kvm-networking-down.sh kvm-networking.sh
# chmod +x kvm-networking*
Ensuite, référencez ces quelques lignes dans votre fichier de gestion du réseau Proxmox comme écrit ci contre. Occupons nous maintenant de remplir ces fichiers de conf. Commençons par le premier kvm-networking.sh :
# Enable IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
#Allow the trafic on vmbr1 to be redirected / coming from vmbr0
iptables -t nat -A POSTROUTING -s '10.0.10.0/24' -o vmbr0 -j MASQUERADE
#Activation of services to be nated
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 10.0.10.250:80
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 443 -j DNAT --to 10.0.10.250:443
#Put here after the other rules for opening other port/services
Dans cette séquence toute simple nous avons activé l'IP forwarding et ouvert les ports 80 et 443 (http et https) de sorte que tout le traffic soit redirigé vers le pfSense.
Pour le second fichier, nous fermerons chacun des services ouverts. Contenu du fichier kvm-networking-down.sh :
#Close the trafic on vmbr1 to/from vmbr0
iptables -t nat -D POSTROUTING -s '10.0.10.0/24' -o vmbr0 -j MASQUERADE
#De-Activation of nated services
iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 10.0.10.250:80
iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 443 -j DNAT --to 10.0.10.250:443
Voilà, il vous suffit désormais de redémarrer votre Proxmox et nous serons bons.
Synthèse et remerciements
Désormais votre pfSense devrait répondre sur l'URL http://1.2.3.4 pour finaliser l'installation. Je vous conseille vivement de passer ensuite en https sur un autre port que le port standard car nous aurons besoin de nater de nouveau le http et https vers d'autres VM's. Ce genre de configuration fera l'objet d'un autre billet.
Voilà, en tout et pour tout j'aurais mis plus de temps à écrire ce billet qu'à réaliser les opérations décrites. j'aurais également passé un peu de temps à m'assurer que Kimsufi disait vraiment non aux multiples failover IP (à priori cela devait être possible dans le passé). J'aurais également écumé de nombreuses ressources sur le net.
J'en profite donc pour citer quelques précieuses références :
- https://forum.kimsufi.com/showthread.php?22659-Tuto-installer-vm-windows-avec-proxmox-et-acces-r%E9seau
- https://forum.ovh.co.uk/showthread.php?7071-Poor-man-s-Proxmox-cluster-with-NAT
- Site officiel de Proxmox sur le NAT
Les commentaires ne sont pas encore ouverts sur ce site mais vous pouvez nous contacter pour en savoir plus sur nos compétences.
Cloud Proxmox derrière une seule IP
Déployer des VM dans un réseau Naté
architecture cloud pfsense proxmox réseau version