Cloonix est un logiciel qui permet la gestion d’un réseau virtuel de machines (virtuelles aussi bien sûr).
À la différence de nombreuses solutions qui tendent à descendre dans le noyau dès que le réseau doit être modifié, Cloonix tente de remonter le réseau dans le monde utilisateur, les liens entre machines étant des [[sockets]].
Cette méthode est à la fois plus souple et plus sécurisée, car il n’est pas obligatoire d’être super‐utilisateur (root) pour créer son réseau virtuel.
Au centre de Cloonix, un processus a pour rôle le clonage de machines et l’émulation du réseau physique reliant les machines virtuelles. Ce processus brasse les paquets en accord avec la topologie choisie par l’utilisateur, cette topologie peut évoluer dynamiquement.
Cloonix combine les avantages des commandes script (toute commande peut être intégrée à un script) aux avantages du « clicodrome », grâce à son interface graphique conviviale basée sur une bibliothèque vectorielle.
Cloonix est un logiciel utilisant les technologies de virtualisation suivantes :
UML : virtualisation Linux faisant tourner le noyau modifié comme un processus en espace utilisateur. L’émulation du matériel est intégrée à UML dans le noyau Linux. Il est inutile d’être super‐utilisateur (root) par cette méthode ;
KVM : virtualisation par une émulation matérielle, grâce à l’association Qemu/KVM, Qemu étant un processus et KVM un module accessible à Qemu par le pseudo‐fichier
« /dev/kvm »
. Le module KVM s’appuie sur une fonctionnalité du processeur, spécialisée dans la virtualisation. Il est inutile d’être super‐utilisateur avec cette méthode ;LXC : virtualisation par compartimentation des processus et des ressources utilisés, même la pile IP est isolée. On utilise le noyau de la machine hôte comme noyau dans les compartiments. Pour réaliser une machine virtuelle avec cette technique, il faut isoler un système de fichiers, des accès IP, les IPC (dialogues inter‐processus et mémoire partagée) et les pseudo‐terminaux, puis appeler la fonction init du démarrage de Linux dans ce petit monde isolé. Init va effectuer un « fork », et chaque enfant restera dans son groupe. On doit être super‐utilisateur (root) pour utiliser cette méthode.
Cloonix profite avantageusement du dernier système de fichiers Btrfs
Btrfs est le nouveau système de fichiers qui succède à ext4. Ce système de fichiers a un avantage pour la virtualisation : il possède une gestion de clichés intégrée. Ainsi, on peut à tout moment prendre un cliché (snapshot) de l’état du système de fichiers, pour donner celui‐ci à une machine qui peut le lire et l’écrire sans modifier le système de fichiers de référence.
Dans Cloonix, cette méthode remplace, pour les machines LXC, la copie sur écriture (Copy On Write) existant dans UML et KVM.
La version 10 est disponible à l’adresse http://clownix.net/.
Aller plus loin
- Site officiel (1143 clics)
# Commentaire supprimé
Posté par Anonyme . Évalué à 1.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: boulette
Posté par clownix (site web personnel) . Évalué à -1.
Il n'y a pas de boulette, le COW existe bien sur UML et KVM, il est le terme utilisé pour dire que l'on fait une sorte de lien entre un fichier vide au départ et le fichier de réference représentant le file-system. Sur chaque écriture par la machine virtuelle, la différence avec la reference est écrite dans ce fichier vide au départ nommé COW.
BTRFS permet les snapshots, (photo du file-system) et permet d'écrire sur ce snapshot sans modification de la référence, donc comme LXC n'a pas de meccanisme de COW, on utilise le BTRFS pour faire du COW.
[^] # Re: boulette
Posté par barmic . Évalué à 1.
Le CoW consiste à au lieux de faire une copie d'un fichier (ou d'une arborescence de fichiers) à maintenir un pointeur. Lorsque le fichier est accédé en lecture aucun problème. Lorsque le fichier est accédé en écriture pour la première fois, avant d'effectuer l'écriture le fichier est effectivement copié et ce n'est que la version (qu'il faut soit la première version soit sa copie) qui est modifiée.
L'intérêt est double, d'une part tu ne copie que ce qui est utile donc tu gagne potentiellement beaucoup de place, d'autre part tu répartis le temps induit par la copie sur une période plus longue ce qui peut être agréable.
C'est utilisé dans pleins d'endroits comme Btrfs dans les snapshots (la création de snapshot est instantané et c'est lorsque tu modifie les fichiers qu'il fait des copie (pour rappelle ce n'est pas la seule raison qui fait que les snapshot btrfs ne sont pas des backups)), je crois que c'est aussi utilisé par le noyau lors du fork ou seul les pages mémoire (mais je ne suis plus tout à fait sur de moi pour le fork).
Bref Cloonix utilise le CoW de Btrfs au lieux de réinventer la roue et à vu de nez ça me semble être une bonne idée.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: boulette
Posté par Victor . Évalué à 4.
La boulette (pour les deux commentaires qui répondent) c'est que la dépêche traduit copy on write par copie sur lecture, au lieu de copie sur écriture !
[^] # Re: boulette
Posté par clownix (site web personnel) . Évalué à 4.
OK, c'est une faute d'inatention, désolé!
[^] # Re: boulette
Posté par BAud (site web personnel) . Évalué à 4.
corrigé :) cela permet de vérifier ceux qui lisent jusqu'à la fin :D
[^] # Re: boulette
Posté par clownix (site web personnel) . Évalué à 2.
Merci bien, de la part de Noura et moi:)
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à -3.
Ce commentaire a été supprimé par l’équipe de modération.
# Usage?
Posté par ʭ ☯ . Évalué à 4.
C'est censé servir à quoi?
⚓ À g'Auch TOUTE! http://afdgauch.online.fr
[^] # Re: Usage?
Posté par clownix (site web personnel) . Évalué à 5.
Usage principal de cloonix:
Créer et partager des démonstrations de protocoles réseaux, on monte d'un cran dans l'open-source et on peut avec cloonix creer l'"open-demo":)
Une démo cloonix est un ensemble de fichiers qui vont à la fois créer un réseau d'un nombre de machines (jusqu'à 25 facilement) avec la topologie choisie pour cette démo, puis dans chaque machines sont transmis avant démarrages de celle-ci les configurations particulières qui seront activés à l'init des machines.
Donc une machine cloonix est constitué d'un file-system de réference qui est utilisé avec le systéme COW pour ne pas impacter le systeme d'origine et un ensemble de fichiers particularisant chaque machine pour qu'elle ait une action/configuration différente de celle de sa voisine.
Il y a dans le cloonix de base des démonstrations pour quagga/ospf qui est le protocole de routage le plus classique.
Notre but dans l'équipe cloonix est de faire et diffuser des démonstrations de logiciels open-sources ayant besoin de plusieurs machines en réseaux pour travailler.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à -4.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Usage?
Posté par jiyuu . Évalué à 9.
[^] # Re: Usage?
Posté par Frédéric Perrin (site web personnel) . Évalué à 5.
De tête, et sans réfléchir trop fort :
tester des logiciels réseau ;
faire de la formation sur le routage ;
reproduire un réseau pour vérifier qu'en modifiant les règles du pare-feu, les applications continuent à fonctionner...
[^] # Re: Usage?
Posté par Patrick Lamaizière (site web personnel) . Évalué à 3.
Je bosse sur une appli pour lister les règles de pare-feux entre deux points d'un réseau et j'ai écarté les émulateurs de réseaux parce qu'inadaptés (au besoin) :
La solution utilisée émule (au sens de reproduire le comportement, pas faire tourner un binaire) simplement les pare-feux en les faisant tourner sur un modèle de réseau léger en diffusion. L'inconvénient c'est qu'il faut coder le pare-feu à émuler mais c'est la seule méthode pour avoir un accès complet aux règles et savoir ce qu'il se passe.
L'appli est là : https://listes.cru.fr/wiki/jtacl/index
les pixels au peuple !
[^] # Re: Usage?
Posté par clownix (site web personnel) . Évalué à 4.
Quand même quelques rectifications:
Pour les régles iptables avec cloonix tu peux tester tes règles chez toi sur un pc quelconque, tu prototype avec une machine d'attaque et une machine cible puis après ce brouillon tu met ton ensemble de règles iptables sur un vrai serveur.
Pour l'histoire des routes multiples vers une destination, on est au coeur même de ce que peut faire cloonix et pour moi les termes "routes" et "ip" sont complétement liés (niveau 3 des protocoles) et cloonix peut créer autant de routes que tu veux vers ta cible.
Pour ce qui est de la reproduction d'un environnement applicatif complet, pour une debian ce sera juste une suite de apt-get et "beaucoup trop de chose" montre un manque de maitrise de la construction des machines en question, 1 script d'installation doit pouvoir installer "beaucoup de choses" et ce script doit être valable pour une machine virtuelle.
# Marionet
Posté par Marotte ⛧ . Évalué à 4.
Dans le même genre il y a Marionnet. Il n'y a peut-être pas la possibilité de fonctionner en mode utilisateur.
Le site officiel n'a pas l'air de répondre.
Anonyme avait écrit un journal lors de la sortie de la dernière version en février.
[^] # Re: Marionet
Posté par clownix (site web personnel) . Évalué à 4.
Pour ne pas en oublier d'autres:
Netkit
VNUML
GNS3
...
et aussi dans le domaine du controle des machines virtuelles de façon normalisé (ce qui est aussi le but de cloonix):
libvirt
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.