Cloonix 10 est disponible !

Posté par  . Modéré par baud123.
20
24
sept.
2011
Virtualisation

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

  • # Commentaire supprimé

    Posté par  . Évalué à 1.

    Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: boulette

      Posté par  (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  . É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  . É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 !

  • # Usage?

    Posté par  . Évalué à 4.

    C'est censé servir à quoi?

    ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

    • [^] # Re: Usage?

      Posté par  (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  . Évalué à -4.

        Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: Usage?

      Posté par  . Évalué à 9.

      Viruses so far have been really disappointing on the 'disable the internet' front, and time is running out.  When Linux/Mac win in a decade or so the game will be over.

    • [^] # Re: Usage?

      Posté par  (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  (site web personnel) . Évalué à 3.

        reproduire un réseau pour vérifier qu'en modifiant les règles du pare-feu, les applications continuent à fonctionner...

        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) :

        • Tu n'as aucune idée des règles qui matchent. Si tu peux t'assurer que ça marche toujours, ça ne veut pas dire que la règle est adaptée (de même si tu veux bloquer un trafic).
        • Si tu as plusieurs routes vers une destination, il faut tester tous les chemins possibles. Mon appli diffuse les paquets sur toutes les routes quand y'en a plusieurs. Et là tu t'écartes sensiblement d'un réseau IP.
        • Reproduire tout l'environement applicatif est impossible chez nous au taf (beaucoup trop de choses).

        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  (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  . É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  (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.