cloonix icon indicating copy to clipboard operation
cloonix copied to clipboard

Virtual network creation

============================================================================== NEW: Use of broadway to have a web gui, very fresh code, could be faulty:)

GENERAL:

Cloonix is an AGPLv3 software that constitute a tool to create networks of kvm virtual machines or crun containers.

The network connecting the virtual machines and containers is created through the use of the openvswitch software running inside a net namespace so that your host is not polluted with bridges. That way, "ip link" on your host shows clean results. Do "ip netns" to see cloonix namespaces. If you wish to see the cloonix bridges for nemo, do: "sudo ip netns exec <namespace_name> ip link".

The cloonix user interface to connect virtual machines and containers is a simplification of the openvswitch commands. It provides easy use of virtual lans to build a network.

Cloonix also provides root access ssh and scp equivalent for every virtual machines or containers without use of any ip interface inside the virtual machines or container.

Cloonix provides a graphical interactive canvas showing the topology for your network, it is some kind of hypervisor for virtualisation.

Building of the binaries is done on a debian bookworm and all the necessary files and libraries are collected and put into an autonomous bundle, this makes the bundle self-contained. No added files or packages are necessary.

See clownix.net for a documentation. http://clownix.net/doc_stored/build-36-02/html/index.html doc.

NOTE: qemu-guest-agent also called qemu-ga has to be installed inside the kvm guests virtual machines to have the pseudo-ssh and pseudo-scp.

============================================================================== DOWNLOADS:

http://clownix.net/downloads/cloonix-36


============================================================================== INSTALLATION:

wget http://clownix.net/downloads/cloonix-36/cloonix-bundle-36-02-amd64.tar.gz tar xvf cloonix-bundle-36-02-amd64.tar.gz cd cloonix-bundle-36-02-amd64 sudo ./install_cloonix

============================================================================== UNINSTALLATION:

rm -f /usr/bin/cloonix_* rm -rf /usr/libexec/cloonix rm -rf /var/lib/cloonix


============================================================================== LOADING A QCOW INTO BULK FOR KVM USE:

mkdir -p /var/lib/cloonix/bulk cd /var/lib/cloonix/bulk wget http://clownix.net/downloads/cloonix-36/bulk/bookworm.qcow2.gz gunzip bookworm.qcow2.gz


============================================================================== LOADING A ZIP INTO BULK FOR CRUN USE:

mkdir -p /var/lib/cloonix/bulk cd /var/lib/cloonix/bulk wget http://clownix.net/downloads/cloonix-36/bulk/busybox.zip


============================================================================== LAUNCH PING SCRIPT:

cd cloonix-bundle-36-02-amd64

./ping_demo.sh

On the gui, a double-click on the biggest blue machine gives a shell, a double-click on the green interface gives a wireshark spy, a right-click on the blue machine gives a spice desktop.

On the gui, a double-click on the smallest blue machine gives a shell, a double-click on the green interface gives a wireshark spy, a right-click on the container gives one remote console.

NOTE: No wireshark for the moment in the i386 version of cloonix bundle.

============================================================================== CLOONIX INSIDE PODMAN:

For the cloonix to be able to use /dev/kvm, /dev/vhost-net and /dev/net/tun, some commands must be done as root, here is the way to check that your user can read/write those devices and the way to authorise their use:

getfacl /dev/kvm getfacl /dev/vhost-net getfacl /dev/net/tun

sudo setfacl -R -m u:${USER}:rw /dev/kvm sudo setfacl -R -m u:${USER}:rw /dev/vhost-net sudo setfacl -R -m u:${USER}:rw /dev/net/tun

Then download and install podman:

wget http://clownix.net/downloads/cloonix-36/bulk/podman_cloonix.tar podman load --input podman_cloonix.tar

Then try the podman, note that the directory /var/lib/cloonix/bulk of your host is made visible inside the podman and must contain some qcow2 and zip file-systems:

ID_IMAGE=$(podman images |grep podman_cloonix | awk "{print $3}") podman run -it --privileged
-e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix
-v /var/lib/cloonix/bulk:/var/lib/cloonix/bulk
-v /lib/modules:/lib/modules $ID_IMAGE /bin/bash

Then try cloonix from within the podman:

cloonix_net nemo cloonix_gui nemo

============================================================================== FRR DEMO INSIDE CLOONIX INSIDE PODMAN:

Build the podman with the help of: cloonix-36-01/quickstart/cnt_create/custom/frr/doitall

Or download and install podman podman_frr_cloonix:

wget http://clownix.net/downloads/cloonix-36/bulk/podman_frr_cloonix.tar podman load --input podman_frr_cloonix.tar

ID_IMAGE=$(podman images |grep podman_frr_cloonix | awk "{print $3}") podman run -it --privileged
-e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix
-v /lib/modules:/lib/modules $ID_IMAGE /bin/bash

Then try the frr demo from within the podman:

cd /root ./spider_demo.sh

Then double-click on one of the peripheral sodxx and do: traceroute sodyy

FRR Ospf has played its routing role and the path is found.

============================================================================== BROADWAYD

This server is launched automaticaly on the port named broadway_port in the file "/usr/libexec/cloonix/common/etc/cloonix.cfg".

Command to get the broadway: "cloonix_cli nemo cnf web on" The server is not on if not requested.

Your browser can have access to the gui with "http://:<broadway_port>".