aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Iezzi <aiezzi@alessandroiezzi.it>2025-07-14 21:36:01 +0200
committerAlessandro Iezzi <aiezzi@alessandroiezzi.it>2025-07-14 21:43:05 +0200
commita35f4020a250534e8ed2cd95596aee3eb2094111 (patch)
tree2a15c54c7c7248c9cf2a6a4d8b835c7ca5b6d21d
downloadopenstack-master.tar.gz
openstack-master.zip
Commit inizialeHEADmaster
-rw-r--r--.gitignore3
-rw-r--r--README.md7
-rwxr-xr-xall-in-one/run-vm.sh24
-rw-r--r--doc/.gitignore3
-rw-r--r--doc/Makefile12
-rw-r--r--doc/main.tex230
-rw-r--r--istruzioni133
-rw-r--r--multi-node/architettura.svg917
-rw-r--r--multi-node/reti.svg298
-rwxr-xr-xmulti-node/run-vm-0.sh44
-rw-r--r--tabella-dei-nodi.pngbin0 -> 50419 bytes
11 files changed, 1671 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..34a61c4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.qcow2
+*.qcow2*
+*.iso
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..1fa3609
--- /dev/null
+++ b/README.md
@@ -0,0 +1,7 @@
+# Riferimenti
+
+## All-in-one
+https://superuser.openinfra.org/articles/how-to-implement-an-openstack-based-private-cloud-with-kolla-ansible-part-1/
+
+## Multi-node
+https://superuser.openinfra.org/articles/how-to-implement-an-openstack-based-private-cloud-with-kolla-ansible-part-2/
diff --git a/all-in-one/run-vm.sh b/all-in-one/run-vm.sh
new file mode 100755
index 0000000..4f4f658
--- /dev/null
+++ b/all-in-one/run-vm.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+# sudo ip tuntap add dev tap0 mode tap
+# sudo ip link set tap0 up
+# sudo ip addr add 192.168.100.1/24 dev tap0
+
+
+# -drive file=disk0.qcow2,format=qcow2,if=virtio \
+# -boot c
+
+
+# NAT
+# -netdev user,id=net0 -device virtio-net-pci,netdev=net0 \
+
+qemu-system-x86_64 \
+ -enable-kvm \
+ -m 8192 \
+ -smp 4 \
+ -netdev user,id=net0,hostfwd=tcp::8080-:80,hostfwd=tcp::8443-:443 -device virtio-net-pci,netdev=net0 \
+ -netdev tap,id=net1,ifname=tap0,script=no,downscript=no -device virtio-net-pci,netdev=net1 \
+ -netdev tap,id=net2,ifname=tap1,script=no,downscript=no -device virtio-net-pci,netdev=net2 \
+ -drive file=disk0.qcow2,format=qcow2,if=virtio \
+ -drive file=ubuntu-24.04.2-live-server-amd64.iso,media=cdrom,readonly=on \
+ -boot c
diff --git a/doc/.gitignore b/doc/.gitignore
new file mode 100644
index 0000000..19ef4e0
--- /dev/null
+++ b/doc/.gitignore
@@ -0,0 +1,3 @@
+*.aux
+*.log
+*.pdf \ No newline at end of file
diff --git a/doc/Makefile b/doc/Makefile
new file mode 100644
index 0000000..4d7c6f7
--- /dev/null
+++ b/doc/Makefile
@@ -0,0 +1,12 @@
+LATEX = pdflatex
+MAIN_SRC = main.tex
+SRC != find * -name *.tex
+MAIN_PDF = ${MAIN_SRC:.tex=.pdf}
+
+osmnode.pdf: ${SRC}
+ ${LATEX} ${MAIN_SRC}
+ ${LATEX} ${MAIN_SRC}
+ mv ${MAIN_PDF} $@
+
+clean:
+ @rm *.aux *.log *.pdf
diff --git a/doc/main.tex b/doc/main.tex
new file mode 100644
index 0000000..0654a06
--- /dev/null
+++ b/doc/main.tex
@@ -0,0 +1,230 @@
+\documentclass{article}
+
+\usepackage[a4paper, margin=2cm]{geometry}
+\usepackage[italian]{babel}
+
+\title{Installazione di OpenStack Kolla-Ansible su multi-nodo}
+\author{Alessandro Iezzi}
+\date{Luglio 2025}
+
+
+\begin{document}
+
+\maketitle
+
+\begin{abstract}
+L'Installazione di OpenStack Kolla-Ansible su multi-nodo ci si riferisce al
+processo di installazione dei servizi OpenStack su nodi multipli fisici o
+virtuali usando Kolla-Ansible.
+
+Questo approccio permette la distribuzione di vari componenti OpenStack (come
+\emph{Compute}, \emph{Networking} e \emph{Storage}) su differenti nodi,
+migliorando la scalabilità, ridondanza e le performance. Quindi è indicato per
+quegli ambienti di produzione dove tali caratteristiche sono prioritarie.
+\end{abstract}
+
+\section{Architettura all-in-one con Kolla-Ansible}
+In questa sezione si illustra il processo di installazione di OpenStack
+Kolla-Ansible su singolo nodo. Tale procedura è da usare solo per test e
+sviluppo, non è assolutamente consigliato in ambiente di produzione, anche se
+molti dei passaggi qui descritti verranno utilizzati anche per l'installazione
+su multi-nodo.
+
+\subsection{Introduzione}
+Per procedere all'installazione è necessaria una macchina fisica o virtuale
+con:
+\begin{itemize}
+ \item 4 CPU/Core
+ \item 8 GB di RAM
+ \item 60 GB di HDD
+ \item 2 interfacce di rete
+\end{itemize}
+Una delle due interfacce dovrà essere connessa a internet e serve per eseguire
+correttamente l'installazione del sistema operativo e i software necessari.
+
+Se si vuole lavorare su ambiente virtualizzato, si consiglia un'interfaccia di
+rete "bridged" e una "host".
+
+\emph{Si consiglia di lavorare su un'installazione pulita di Ubuntu Server 24.04
+LTS}.
+
+\subsection{Installazione dei pacchetti necessari}
+\paragraph{Preparazione del sistema operativo} Vengono installati i software
+necessari per ospitare Kolla-Ansible.
+\begin{verbatim}
+$ sudo apt-get update
+$ sudo apt-get install git \
+ python3-dev \
+ libffi-dev \
+ gcc \
+ libssl-dev \
+ python3-venv \
+ bridge-utils
+\end{verbatim}
+
+\paragraph{Preparazione della rete} Questa configurazione è solo un punto di
+partenza. Bisogna adattarlo alle proprie esigenze e ai nomi che il sistema
+operativo ha dato ad ogni interfaccia. L'esempio che segue, mostra una
+configurazione con tre interfacce, la prima è una NAT, e le altre due sono
+reti host.
+
+\begin{verbatim}
+network:
+ version: 2
+ renderer: networkd
+ ethernets:
+ ens3:
+ dhcp4: no
+ ens4:
+ dhcp4: no
+ ens5:
+ dhcp4: no
+ addresses: [192.168.200.10/24]
+ routes:
+ - to: 192.168.200.0/24
+ via: 192.168.200.1
+ metric: 100
+
+ bridges:
+ br-nat:
+ interfaces: [ens3]
+ dhcp4: true
+ dhcp4-overrides:
+ route-metric: 50
+ nameservers:
+ addresses: [8.8.8.8, 1.1.1.1]
+ routes:
+ - to: default
+ via: 10.0.2.2
+
+ br-host:
+ interfaces: [ens4]
+ addresses: [192.168.100.10/24]
+ nameservers:
+ addresses: [8.8.8.8]
+ routes:
+ - to: 192.168.100.0/24
+ via: 192.168.100.1
+ metric: 100
+\end{verbatim}
+Per applicare la configurazione di rete:
+\begin{verbatim}
+sudo netplan generate
+sudo netplan apply
+\end{verbatim}
+
+Se l'ambiente prevede più schede di rete, delle quali una sola esce su
+internet, bisonga fare in modo che il sistema esca sempre con quella. Quindi,
+bisognerebbe togliere il default, ad esempio, alla scheda solo host:
+\begin{verbatim}
+sudo ip route del default via 192.168.100.1
+\end{verbatim}
+O impostare una metrica più alta:
+\begin{verbatim}
+sudo ip route del default via 192.168.100.1
+sudo ip route replace default via 192.168.100.1 dev ens4 metric 150
+\end{verbatim}
+
+\paragraph{Preparazione dell'ambiente Python} Il software Ansible e
+Kolla-Ansible sono scritti in Python, quindi, è necessario creare un ambiente
+nel quale verranno installati.
+\begin{verbatim}
+$ python3 -m venv $HOME/python-env
+$ source $HOME/python-env/bin/activate
+$ pip install -U pip
+\end{verbatim}
+
+\paragraph{Installazione di Ansible}
+\begin{verbatim}
+(python-env)$ pip install ansible-core >=2.15
+\end{verbatim}
+\paragraph{Installazione di Kolla-Ansible} Ora si può procedere
+all'installazione di \emph{Kolla-Ansible}. Per farlo, è necessario installarlo
+dai sorgenti da \emph{opendev.org}.
+
+Segue il comando per installare la versione più aggiornata:
+\begin{verbatim}
+(python-env)$ pip install git+https://opendev.org/openstack/kolla-ansible@master
+\end{verbatim}
+
+Segue il comando per installare la versione stabile:
+\begin{verbatim}
+(python-env)$ pip install git+https://opendev.org/openstack/kolla-ansible@stable/2025.1
+\end{verbatim}
+
+\subsection{Preparazione di Kolla-Ansible}
+\begin{verbatim}
+(python-env)$ sudo mkdir -p /etc/kolla
+(python-env)$ sudo chown $USER:$USER /etc/kolla
+
+(python-env)$ cp -r $HOME/python-env/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
+
+(python-env)$ kolla-ansible install-deps
+(python-env)$ kolla-genpwd
+\end{verbatim}
+
+\subsection{Configurazione di Kolla}
+\begin{verbatim}
+$ nano /etc/kolla/globals.yml
+\end{verbatim}
+In questo file, si vano a cambiare alcune configurazioni:
+\begin{verbatim}
+kolla_base_distro: "ubuntu"
+network_interface: "br-nat" # la rete NAT
+neutron_external_interface: "br-host" # la rete host (non deve avere una rotta che la farebbe uscire su internet, io ho rimosso il default)
+kolla_internal_vip_address: "10.0.2.100"
+\end{verbatim}
+Poi, creare il file \verb|~/.ansible.cfg|:
+\begin{verbatim}
+$ touch ~/.ansible.cfg
+\end{verbatim}
+Ed inserire le seguenti configurazioni che serviranno a far chiedere la
+password quando Ansible cercherà di fare \verb|sudo|:
+\begin{verbatim}
+[privilege_escalation]
+become = True
+become_method = sudo
+become_ask_pass = True
+\end{verbatim}
+A questo punto è consigliabile eseguire uno snapshot.
+
+\subsection{Deploy all-in-one}
+Eseguire i seguenti comandi per installare docker:
+\begin{verbatim}
+(python-env)$ pip install docker
+(python-env)$ sudo apt-get install libdbus-1-dev libdbus-glib-1-dev pkg-config
+(python-env)$ pip install dbus-python
+\end{verbatim}
+Successivamente, eseguire i seguenti comandi per completare l'installazione:
+\begin{verbatim}
+(python-env)$ kolla-ansible bootstrap-servers \
+ -i $HOME/python-env/share/kolla-ansible/ansible/inventory/all-in-one
+
+(python-env)$ kolla-ansible prechecks \
+ -i $HOME/python-env/share/kolla-ansible/ansible/inventory/all-in-one
+
+(python-env)$ kolla-ansible deploy \
+ -i $HOME/python-env/share/kolla-ansible/ansible/inventory/all-in-one
+\end{verbatim}
+Eseguire un ulteriore snapshot.
+
+\subsection{Installazione di OpenStack CLI}
+\begin{verbatim}
+(python-env)$ pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/master
+\end{verbatim}
+
+\subsection{Accesso all'interfaccia Horizon}
+Nel caso in cui si utilizza un NAT, per accedere all'interfaccia horizon è
+necessario fare port forwarding su qemu.
+
+\begin{verbatim}
+URL: http://localhost
+username: admin
+pasword: vedere /etc/kolla/passwords.yml
+
+$ grep 'keystone_admin_password' /etc/kolla/passwords.yml
+\end{verbatim}
+
+\section{Architettura multi-nodo con Kolla-Ansible}
+
+\end{document}
diff --git a/istruzioni b/istruzioni
new file mode 100644
index 0000000..6263f77
--- /dev/null
+++ b/istruzioni
@@ -0,0 +1,133 @@
+# Prima di applicare questo, installare bridge-utils.
+# Poi eseguire:
+# netplan generate
+# netplan apply
+network:
+ version: 2
+ renderer: networkd
+ ethernets:
+ ens3:
+ dhcp4: no
+ ens4:
+ dhcp4: no
+ ens5:
+ dhcp4: no
+ addresses: [192.168.200.10/24]
+ routes:
+ - to: 192.168.200.0/24
+ via: 192.168.200.1
+ metric: 100
+
+ bridges:
+ br-nat:
+ interfaces: [ens3]
+ dhcp4: true
+ dhcp4-overrides:
+ route-metric: 50
+ nameservers:
+ addresses: [8.8.8.8, 1.1.1.1]
+ routes:
+ - to: default
+ via: 10.0.2.2
+
+ br-host:
+ interfaces: [ens4]
+ addresses: [192.168.100.10/24]
+ nameservers:
+ addresses: [8.8.8.8]
+ routes:
+ - to: 192.168.100.0/24
+ via: 192.168.100.1
+ metric: 100
+
+
+
+Se l'ambiente prevede più schede di rete, delle quali una sola esce su internet, bisonga fare in
+modo che il sistema esca sempre con quella. Quindi, bisognerebbe togliere il default, ad esempio,
+alla scheda solo host (nel mio caso):
+ # ip route del default via 192.168.100.1
+O impostare una metrica più alta:
+ # ip route del default via 192.168.100.1
+ # ip route replace default via 192.168.100.1 dev ens4 metric 150
+
+INSTALLAZIONE ALL-IN-ONE OPENSTACK KOLLA-ANSIBLE
+------------------------------------------------
+
+
+ # apt-get update
+ # apt-get install git python3-dev libffi-dev gcc libssl-dev python3-venv bridge-utils
+
+ $ python3 -m venv $HOME/python-env
+ $ source $HOME/python-env/bin/activate
+ $ pip install -U pip
+ $ pip install ansible-core >=2.15
+
+# Provare l'installazione con stable/2025.1 anziché master
+ $ pip install git+https://opendev.org/openstack/kolla-ansible@master
+
+ # mkdir -p /etc/kolla
+ $ sudo chown $USER:$USER /etc/kolla
+
+ $ cp -r $HOME/python-env/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
+
+ $ kolla-ansible install-deps
+ $ kolla-genpwd
+
+
+
+
+
+
+# Scelta della distribuzione per kolla
+ $ nano /etc/kolla/globals.yml
+# Cambiare:
+ kolla_base_distro: "ubuntu"
+ network_interface: "br-nat" # la rete NAT
+ neutron_external_interface: "br-host" # la rete host (non deve avere una rotta che la farebbe uscire su internet, io ho rimosso il default)
+ kolla_internal_vip_address: "10.0.2.100"
+
+
+# Prima di procedere, creare il file ~/.ansible.cfg (serve per far chiedere la password quando cerca di fare sudo):
+ [privilege_escalation]
+ become = True
+ become_method = sudo
+ become_ask_pass = True
+
+
+#########################
+# Creato disk0.qcow2.v1 #
+#########################
+
+
+ $ kolla-ansible bootstrap-servers -i $HOME/python-env/share/kolla-ansible/ansible/inventory/all-in-one
+
+# Cose da installare...
+ $ pip install docker
+ $ sudo apt-get install libdbus-1-dev libdbus-glib-1-dev pkg-config
+ $ pip install dbus-python
+
+
+ $ kolla-ansible prechecks -i $HOME/python-env/share/kolla-ansible/ansible/inventory/all-in-one
+
+ $ kolla-ansible deploy -i $HOME/python-env/share/kolla-ansible/ansible/inventory/all-in-one
+
+
+#########################
+# Creato disk0.qcow2.v2 #
+#########################
+
+
+INSTALLAZIONE OPENSTACK CLI
+---------------------------
+
+ $ pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/master
+
+
+# Per accedere all'interfaccia horizon, è necessario fare port forwarding su qemu, altrimenti tramite NAT non si riesce ad accedere.
+
+ username: admin
+ pasword: vedere /etc/kolla/passwords.yml
+
+ $ grep 'keystone_admin_password' /etc/kolla/passwords.yml
+
+
diff --git a/multi-node/architettura.svg b/multi-node/architettura.svg
new file mode 100644
index 0000000..7e0e37b
--- /dev/null
+++ b/multi-node/architettura.svg
@@ -0,0 +1,917 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="297mm"
+ height="210mm"
+ viewBox="0 0 297 210"
+ version="1.1"
+ id="svg1"
+ inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
+ sodipodi:docname="architettura.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview1"
+ pagecolor="#ffffff"
+ bordercolor="#000000"
+ borderopacity="0.25"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ inkscape:document-units="mm"
+ inkscape:zoom="2.07853"
+ inkscape:cx="776.02921"
+ inkscape:cy="373.58133"
+ inkscape:window-width="1920"
+ inkscape:window-height="1008"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer1"
+ showguides="true">
+ <sodipodi:guide
+ position="103.85095,134.02566"
+ orientation="0,-1"
+ id="guide30"
+ inkscape:locked="false" />
+ <sodipodi:guide
+ position="124.8106,103.5953"
+ orientation="0,-1"
+ id="guide31"
+ inkscape:locked="false" />
+ </sodipodi:namedview>
+ <defs
+ id="defs1">
+ <marker
+ style="overflow:visible"
+ id="RoundedArrow"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Rounded arrow"
+ markerWidth="1"
+ markerHeight="1"
+ viewBox="0 0 1 1"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="m -0.21114562,-4.1055728 6.42229122,3.21114561 a 1,1 90 0 1 0,1.78885438 L -0.21114562,4.1055728 A 1.236068,1.236068 31.717474 0 1 -2,3 v -6 a 1.236068,1.236068 148.28253 0 1 1.78885438,-1.1055728 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="path8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="RoundedArrow-5"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Rounded arrow"
+ markerWidth="1"
+ markerHeight="1"
+ viewBox="0 0 1 1"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="m -0.21114562,-4.1055728 6.42229122,3.21114561 a 1,1 90 0 1 0,1.78885438 L -0.21114562,4.1055728 A 1.236068,1.236068 31.717474 0 1 -2,3 v -6 a 1.236068,1.236068 148.28253 0 1 1.78885438,-1.1055728 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="path8-9" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="RoundedArrow-1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Rounded arrow"
+ markerWidth="1"
+ markerHeight="1"
+ viewBox="0 0 1 1"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="m -0.21114562,-4.1055728 6.42229122,3.21114561 a 1,1 90 0 1 0,1.78885438 L -0.21114562,4.1055728 A 1.236068,1.236068 31.717474 0 1 -2,3 v -6 a 1.236068,1.236068 148.28253 0 1 1.78885438,-1.1055728 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="path8-99" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="RoundedArrow-1-2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Rounded arrow"
+ markerWidth="1"
+ markerHeight="1"
+ viewBox="0 0 1 1"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="m -0.21114562,-4.1055728 6.42229122,3.21114561 a 1,1 90 0 1 0,1.78885438 L -0.21114562,4.1055728 A 1.236068,1.236068 31.717474 0 1 -2,3 v -6 a 1.236068,1.236068 148.28253 0 1 1.78885438,-1.1055728 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="path8-99-0" />
+ </marker>
+ </defs>
+ <g
+ inkscape:label="Livello 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.499221;stroke-dasharray:none;stroke-opacity:1"
+ id="rect1"
+ width="81.521614"
+ height="56.873119"
+ x="17.447527"
+ y="13.478778" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="97.726494"
+ y="17.229664"
+ id="text1"><tspan
+ sodipodi:role="line"
+ id="tspan1"
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="97.726494"
+ y="17.229664">Network Node</tspan></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-dasharray:none;stroke-opacity:1"
+ id="rect1-36"
+ width="81.777222"
+ height="56.872341"
+ x="123.87242"
+ y="112.17194" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="204.40741"
+ y="167.67506"
+ id="text1-2"><tspan
+ sodipodi:role="line"
+ id="tspan1-3"
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="204.40741"
+ y="167.67506">Basstion Node</tspan></text>
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-6-1-9"
+ width="23.541"
+ height="12.957284"
+ x="22.739197"
+ y="20.357944"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="34.49382"
+ y="25.62056"
+ id="text1-1-2-3-5-7"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-9-98-5"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="34.49382"
+ y="25.62056">DHCP</tspan><tspan
+ sodipodi:role="line"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="34.49382"
+ y="29.58931"
+ id="tspan14">Namespace</tspan></text>
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-6-1-9-1"
+ width="23.541"
+ height="12.957284"
+ x="70.136467"
+ y="20.357944"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="81.89109"
+ y="25.620558"
+ id="text1-1-2-3-5-7-8"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-9-98-5-9"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="81.89109"
+ y="25.620558">Router</tspan><tspan
+ sodipodi:role="line"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="81.89109"
+ y="29.589308"
+ id="tspan14-6">Namespace</tspan></text>
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.298066;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-6-1-9-1-8"
+ width="23.514933"
+ height="15.576934"
+ x="46.450878"
+ y="40.46534"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="58.192459"
+ y="45.714912"
+ id="text1-1-2-3-5-7-8-6"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-9-98-5-9-0"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="58.192459"
+ y="45.714912">Integration</tspan><tspan
+ sodipodi:role="line"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="58.192459"
+ y="49.683662"
+ id="tspan14-6-4">Bridge</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:2.82222px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="58.208347"
+ y="54.454773"
+ id="text1-1-2-3-5-7-8-6-7"><tspan
+ sodipodi:role="line"
+ style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222px;font-family:Monospace;-inkscape-font-specification:'Monospace Italic';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="58.208347"
+ y="54.454773"
+ id="tspan14-6-4-6">br-int</tspan></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-dasharray:none;stroke-opacity:1"
+ id="rect1-3"
+ width="81.777222"
+ height="56.872341"
+ x="123.91746"
+ y="13.478778" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="204.45245"
+ y="17.229273"
+ id="text1-1"><tspan
+ sodipodi:role="line"
+ id="tspan1-8"
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="204.45245"
+ y="17.229273">Controller Node</tspan></text>
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.268994;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 52.650405,40.466843 -1.3e-5,-13.615884 -6.370195,-0.01437"
+ id="path16"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.268994;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 63.500015,40.465341 -1.1e-5,-13.61288 6.636464,-0.01587"
+ id="path16-4"
+ sodipodi:nodetypes="ccc" />
+ <g
+ id="g28">
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:2.82222px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="29.544878"
+ y="49.312138"
+ id="text1-1-2-3-5-7-8-6-7-0"><tspan
+ sodipodi:role="line"
+ style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222px;font-family:Monospace;-inkscape-font-specification:'Monospace Italic';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="29.544878"
+ y="49.312138"
+ id="tspan14-6-4-6-4">br-tun</tspan></text>
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ id="rect16"
+ width="11.95873"
+ height="3.7461081"
+ x="23.718019"
+ y="46.380753" />
+ </g>
+ <g
+ id="g29">
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:2.82222px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="87.086662"
+ y="49.312138"
+ id="text1-1-2-3-5-7-8-6-7-0-5"><tspan
+ sodipodi:role="line"
+ style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222px;font-family:Monospace;-inkscape-font-specification:'Monospace Italic';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="87.086662"
+ y="49.312138"
+ id="tspan14-6-4-6-4-2">br-ext</tspan></text>
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ id="rect16-9"
+ width="11.95873"
+ height="3.7461081"
+ x="81.283195"
+ y="46.380753" />
+ </g>
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="M 35.676749,48.253808 H 46.450878"
+ id="path17"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 29.697385,50.126862 1e-6,10.897461"
+ id="path17-0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="M 81.283194,48.253808 H 69.965813"
+ id="path18"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 87.262562,50.126862 -3e-6,10.797462"
+ id="path19"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-dasharray:none;stroke-opacity:1"
+ id="rect1-1"
+ width="81.777222"
+ height="56.872341"
+ x="17.236963"
+ y="112.17194" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="97.771927"
+ y="166.94481"
+ id="text1-28"><tspan
+ sodipodi:role="line"
+ id="tspan1-9"
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="97.771927"
+ y="166.94481">Compute Node</tspan></text>
+ <g
+ id="g19-5"
+ transform="translate(-0.08277035,76.706266)">
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.298066;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-6-1-9-1-8-1"
+ width="23.514933"
+ height="15.576934"
+ x="46.450878"
+ y="44.16951"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="58.192459"
+ y="49.419083"
+ id="text1-1-2-3-5-7-8-6-74"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-9-98-5-9-0-3"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="58.192459"
+ y="49.419083">Integration</tspan><tspan
+ sodipodi:role="line"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="58.192459"
+ y="53.387833"
+ id="tspan14-6-4-1">Bridge</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:2.82222px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="58.208347"
+ y="58.158943"
+ id="text1-1-2-3-5-7-8-6-7-4"><tspan
+ sodipodi:role="line"
+ style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222px;font-family:Monospace;-inkscape-font-specification:'Monospace Italic';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="58.208347"
+ y="58.158943"
+ id="tspan14-6-4-6-6">br-int</tspan></text>
+ </g>
+ <g
+ id="g17-6"
+ transform="translate(-1.418563,76.706266)">
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:2.82222px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="30.729492"
+ y="53.016308"
+ id="text1-1-2-3-5-7-8-6-7-0-4"><tspan
+ sodipodi:role="line"
+ style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222px;font-family:Monospace;-inkscape-font-specification:'Monospace Italic';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="30.729492"
+ y="53.016308"
+ id="tspan14-6-4-6-4-1">br-tun</tspan></text>
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ id="rect16-2"
+ width="11.95873"
+ height="3.7461081"
+ x="24.926025"
+ y="50.084923" />
+ </g>
+ <g
+ id="g16-3"
+ transform="translate(-9.7896175,113.35907)">
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-6-1-9-1-3"
+ width="23.541"
+ height="12.957284"
+ x="56.144691"
+ y="28.568361"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="67.899315"
+ y="33.830975"
+ id="text1-1-2-3-5-7-8-8"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-9-98-5-9-04"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="67.899315"
+ y="33.830975">Linux</tspan><tspan
+ sodipodi:role="line"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="67.899315"
+ y="37.799725"
+ id="tspan14-6-7">Bridge</tspan></text>
+ </g>
+ <g
+ id="g22"
+ transform="translate(-1.6251088,2.6458868)">
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.171979;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-6-1-9-1-3-8"
+ width="15.703021"
+ height="7.7655206"
+ x="23.260426"
+ y="141.87743"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="31.191309"
+ y="146.87779"
+ id="text1-1-2-3-5-7-8-8-7"><tspan
+ sodipodi:role="line"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="31.191309"
+ y="146.87779"
+ id="tspan14-6-7-0">Instance</tspan></text>
+ </g>
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 29.486826,121.49952 v 5.29167"
+ id="path21" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="M 35.46619,128.66424 H 46.368108"
+ id="path22" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 37.338339,148.40607 h 9.016733"
+ id="path23" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.272;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 58.125575,136.45271 -3e-6,5.47472"
+ id="path24" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#0d62ff;stroke-width:0.772;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 58.208332,68.764398 -1.2e-5,7.209942 55.15855,0"
+ id="path29"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#0d62ff;stroke-width:0.772;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 86.764327,117.62948 v -11.19379 l 26.988543,-0.031"
+ id="path29-4"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#0d62ff;stroke-width:0.772;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 136.12226,117.62948 2e-5,-11.26396 -6.35173,0.0392"
+ id="path29-7"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#0d62ff;stroke-width:0.772;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 136.16731,68.763618 -10e-6,7.210722 -5.84847,-10e-7"
+ id="path29-47"
+ sodipodi:nodetypes="ccc" />
+ <g
+ id="g12-1-5"
+ transform="translate(-106.21928,-24.115653)">
+ <rect
+ style="fill:#c7ecff;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-6-1-2"
+ width="21.324705"
+ height="7.740078"
+ x="153.76526"
+ y="85.139977"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="173.45731"
+ y="89.843452"
+ id="text1-1-2-3-5-6"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-9-98-58"
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="173.45731"
+ y="89.843452">Interfaccia 1</tspan></text>
+ </g>
+ <path
+ style="fill:none;fill-opacity:1;stroke:#0d62ff;stroke-width:0.772001;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="M 113.36687,75.974339 123.9266,90.468174"
+ id="path30" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#fcc200;stroke-width:0.772001;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="M 29.830728,64.894361 29.486825,117.62948"
+ id="path30-8"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#008c00;stroke-width:0.772001;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 86.719283,64.894361 0.04504,26.367563"
+ id="path30-8-8"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#008c00;stroke-width:0.772001;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 86.764323,91.261924 26.602547,35.695136 22.75541,0"
+ id="path30-8-8-9"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#a70000;stroke-width:0.772001;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 159.4081,64.893582 10.63377,26.367951 18.91749,0.07303"
+ id="path30-8-8-9-9"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#0d62ff;stroke-width:0.772001;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="M 130.31883,75.974339 123.9266,90.468174"
+ id="path31" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#0d62ff;stroke-width:0.772001;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="M 113.75287,106.40469 123.9266,90.468174"
+ id="path32" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#0d62ff;stroke-width:0.772001;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="M 129.77055,106.40472 123.9266,90.468174"
+ id="path33" />
+ <g
+ id="g6"
+ transform="translate(9.1861698,-0.40755148)">
+ <path
+ sodipodi:type="star"
+ style="fill:#fff6c7;fill-opacity:1;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ id="path5"
+ inkscape:flatsided="true"
+ sodipodi:sides="8"
+ sodipodi:cx="29.98254"
+ sodipodi:cy="83.846581"
+ sodipodi:r1="21.153419"
+ sodipodi:r2="19.543211"
+ sodipodi:arg1="1.5707963"
+ sodipodi:arg2="1.9634954"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="M 29.982541,105 15.024814,98.804307 8.8291206,83.846581 15.024813,68.888855 29.98254,62.693161 44.940266,68.888854 51.13596,83.84658 44.940267,98.804306 Z"
+ transform="matrix(0.55186631,0,0,0.55186631,4.0982046,44.989623)" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="20.533434"
+ y="90.467979"
+ id="text1-7"><tspan
+ sodipodi:role="line"
+ id="tspan1-2"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="20.533434"
+ y="90.467979">Tunnel</tspan><tspan
+ sodipodi:role="line"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="20.533434"
+ y="94.436729"
+ id="tspan5">Network</tspan></text>
+ </g>
+ <g
+ id="g7"
+ transform="translate(143.08091,-1.9312988e-4)">
+ <path
+ sodipodi:type="star"
+ style="fill:#ffc7c7;fill-opacity:1;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ id="path5-5"
+ inkscape:flatsided="true"
+ sodipodi:sides="8"
+ sodipodi:cx="29.98254"
+ sodipodi:cy="83.846581"
+ sodipodi:r1="21.153419"
+ sodipodi:r2="19.543211"
+ sodipodi:arg1="1.5707963"
+ sodipodi:arg2="1.9634954"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="M 29.982541,105 15.024814,98.804307 8.8291206,83.846581 15.024813,68.888855 29.98254,62.693161 44.940266,68.888854 51.13596,83.84658 44.940267,98.804306 Z"
+ transform="matrix(0.55186631,0,0,0.55186631,29.332092,44.989623)" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="45.767323"
+ y="90.467979"
+ id="text1-7-0"><tspan
+ sodipodi:role="line"
+ id="tspan1-2-6"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="45.767323"
+ y="90.467979">API-ext</tspan><tspan
+ sodipodi:role="line"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="45.767323"
+ y="94.436729"
+ id="tspan5-1">Network</tspan></text>
+ </g>
+ <g
+ id="g8"
+ transform="translate(52.925392,1.9493934e-4)">
+ <path
+ sodipodi:type="star"
+ style="fill:#c7ecff;fill-opacity:1;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ id="path5-1"
+ inkscape:flatsided="true"
+ sodipodi:sides="8"
+ sodipodi:cx="29.98254"
+ sodipodi:cy="83.846581"
+ sodipodi:r1="21.153419"
+ sodipodi:r2="19.543211"
+ sodipodi:arg1="1.5707963"
+ sodipodi:arg2="1.9634954"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="M 29.982541,105 15.024814,98.804307 8.8291206,83.846581 15.024813,68.888855 29.98254,62.693161 44.940266,68.888854 51.13596,83.84658 44.940267,98.804306 Z"
+ transform="matrix(0.55186631,0,0,0.55186631,54.565979,44.989623)" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="71.001205"
+ y="90.467979"
+ id="text1-7-1"><tspan
+ sodipodi:role="line"
+ id="tspan1-2-7"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="71.001205"
+ y="90.467979">Management</tspan><tspan
+ sodipodi:role="line"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="71.001205"
+ y="94.436729"
+ id="tspan5-7">Network</tspan></text>
+ </g>
+ <g
+ id="g9"
+ transform="translate(-9.5818914,1.9493934e-4)">
+ <path
+ sodipodi:type="star"
+ style="fill:#c7ffd6;fill-opacity:1;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ id="path5-5-7"
+ inkscape:flatsided="true"
+ sodipodi:sides="8"
+ sodipodi:cx="29.98254"
+ sodipodi:cy="83.846581"
+ sodipodi:r1="21.153419"
+ sodipodi:r2="19.543211"
+ sodipodi:arg1="1.5707963"
+ sodipodi:arg2="1.9634954"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="M 29.982541,105 15.024814,98.804307 8.8291206,83.846581 15.024813,68.888855 29.98254,62.693161 44.940266,68.888854 51.13596,83.84658 44.940267,98.804306 Z"
+ transform="matrix(0.55186631,0,0,0.55186631,79.799865,44.989623)" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="96.235092"
+ y="90.467979"
+ id="text1-7-0-5"><tspan
+ sodipodi:role="line"
+ id="tspan1-2-6-9"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="96.235092"
+ y="90.467979">External</tspan><tspan
+ sodipodi:role="line"
+ style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="96.235092"
+ y="94.436729"
+ id="tspan5-1-7">Network</tspan></text>
+ </g>
+ <g
+ id="g12-2"
+ transform="translate(-28.305336,28.619468)">
+ <rect
+ style="fill:#c7ecff;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-6-17"
+ width="21.324705"
+ height="7.740078"
+ x="153.76526"
+ y="85.139977"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="173.45731"
+ y="89.843452"
+ id="text1-1-2-3-8"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-9-5"
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="173.45731"
+ y="89.843452">Interfaccia 1</tspan></text>
+ </g>
+ <g
+ id="g12-1"
+ transform="translate(-28.2603,-24.116433)">
+ <rect
+ style="fill:#c7ecff;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-6-1"
+ width="21.324705"
+ height="7.740078"
+ x="153.76526"
+ y="85.139977"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="173.45731"
+ y="89.843452"
+ id="text1-1-2-3-5"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-9-98"
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="173.45731"
+ y="89.843452">Interfaccia 1</tspan></text>
+ </g>
+ <g
+ id="g12"
+ transform="translate(-77.663284,28.619468)">
+ <rect
+ style="fill:#c7ecff;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-6"
+ width="21.324705"
+ height="7.740078"
+ x="153.76526"
+ y="85.139977"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="173.45731"
+ y="89.843452"
+ id="text1-1-2-3"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-9"
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="173.45731"
+ y="89.843452">Interfaccia 1</tspan></text>
+ </g>
+ <g
+ id="g33">
+ <rect
+ style="fill:#fff6c7;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-6-9-0-4"
+ width="21.324705"
+ height="7.740078"
+ x="19.035032"
+ y="61.024323"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="38.727081"
+ y="65.727798"
+ id="text1-1-2-3-3-9-0"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-9-9-6-9"
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="38.727081"
+ y="65.727798">Interfaccia 2</tspan></text>
+ </g>
+ <g
+ id="g13-0-8"
+ transform="translate(-160.30361,22.097877)">
+ <rect
+ style="fill:#fff6c7;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-6-9-0-4-8"
+ width="21.324705"
+ height="7.740078"
+ x="179.12808"
+ y="91.661568"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="198.82013"
+ y="96.365044"
+ id="text1-1-2-3-3-9-0-8"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-9-9-6-9-6"
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="198.82013"
+ y="96.365044">Interfaccia 2</tspan></text>
+ </g>
+ <g
+ id="g34">
+ <rect
+ style="fill:#c7ffd6;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-4"
+ width="21.324705"
+ height="7.740078"
+ x="76.056931"
+ y="61.024323"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="95.748978"
+ y="65.727798"
+ id="text1-1-2-4"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-99"
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="95.748978"
+ y="65.727798">Interfaccia 4</tspan></text>
+ </g>
+ <g
+ id="g11-1"
+ transform="translate(-0.29503632,61.417105)">
+ <rect
+ style="fill:#c7ffd6;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-7"
+ width="21.324705"
+ height="7.740078"
+ x="125.75496"
+ y="61.669914"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="145.44701"
+ y="66.37339"
+ id="text1-1-2-5"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-96"
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="145.44701"
+ y="66.37339">Interfaccia 4</tspan></text>
+ </g>
+ <g
+ id="g14-3"
+ transform="translate(22.862206,-34.608064)">
+ <rect
+ style="fill:#ffc7c7;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2-6-9-04"
+ width="21.324705"
+ height="7.740078"
+ x="125.75496"
+ y="95.631607"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:italic;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:none;stroke:#000000;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1"
+ x="145.44701"
+ y="100.33508"
+ id="text1-1-2-3-3-4"><tspan
+ sodipodi:role="line"
+ id="tspan1-8-9-9-9-4"
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="145.44701"
+ y="100.33508">Interfaccia 3</tspan></text>
+ </g>
+ <circle
+ style="fill:#007d7d;fill-opacity:0.3556776;stroke:#000000;stroke-width:0.772001;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ id="path34"
+ cx="249.65085"
+ cy="91.720566"
+ r="13.452155" />
+ <path
+ style="fill:#007d7d;fill-opacity:0.355678;stroke:#000000;stroke-width:0.629187;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#RoundedArrow)"
+ d="m 253.6308,95.70052 3.28184,3.281837 1.85356,1.853563"
+ id="path35"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:#007d7d;fill-opacity:0.355678;stroke:#000000;stroke-width:0.629187;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#RoundedArrow-5)"
+ d="m 245.67089,87.740614 -3.28184,-3.281837 -1.85356,-1.85356"
+ id="path35-7"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:#007d7d;fill-opacity:0.355678;stroke:#000000;stroke-width:0.772;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#RoundedArrow-1)"
+ d="m 250.03685,91.334566 4.02675,-4.026749 2.27428,-2.274281"
+ id="path35-7-4"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:#007d7d;fill-opacity:0.355678;stroke:#000000;stroke-width:0.772;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#RoundedArrow-1-2)"
+ d="m 249.26485,92.106566 -4.02675,4.026746 -2.27428,2.274281"
+ id="path35-7-4-6"
+ sodipodi:nodetypes="ccc" />
+ </g>
+</svg>
diff --git a/multi-node/reti.svg b/multi-node/reti.svg
new file mode 100644
index 0000000..fcc8124
--- /dev/null
+++ b/multi-node/reti.svg
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="80.131767mm"
+ height="52.099998mm"
+ viewBox="0 0 80.131767 52.099998"
+ version="1.1"
+ id="svg1"
+ inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
+ sodipodi:docname="reti.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview1"
+ pagecolor="#ffffff"
+ bordercolor="#000000"
+ borderopacity="0.25"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ inkscape:document-units="mm"
+ showguides="true"
+ showgrid="false"
+ inkscape:zoom="1.8759"
+ inkscape:cx="143.1313"
+ inkscape:cy="121.27512"
+ inkscape:window-width="1920"
+ inkscape:window-height="1008"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer1">
+ <inkscape:grid
+ id="grid2"
+ units="mm"
+ originx="-0.99999997"
+ originy="-1"
+ spacingx="0.99999998"
+ spacingy="1"
+ empcolor="#0099e5"
+ empopacity="0.30196078"
+ color="#0099e5"
+ opacity="0.14901961"
+ empspacing="5"
+ enabled="true"
+ visible="false" />
+ </sodipodi:namedview>
+ <defs
+ id="defs1" />
+ <g
+ inkscape:label="Livello 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-1,-1)">
+ <g
+ id="g4"
+ transform="translate(-3.999996,-0.09999989)">
+ <g
+ id="g3"
+ transform="translate(-10)">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.184574;stroke-dasharray:none;stroke-opacity:1"
+ id="rect1"
+ width="29.815426"
+ height="13.015426"
+ x="40.092285"
+ y="2.0922868" />
+ <g
+ id="g2"
+ transform="translate(1)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.410997;stroke-dasharray:none;stroke-opacity:1"
+ d="M 14,5.2499995 H 39"
+ id="path1"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:3.175px;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ x="14.817429"
+ y="3.40187"
+ id="text1"><tspan
+ sodipodi:role="line"
+ id="tspan1"
+ style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';fill:#d45500;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-dasharray:none"
+ x="14.817429"
+ y="3.40187">10.0.0.1</tspan></text>
+ </g>
+ <g
+ id="g1"
+ transform="translate(1)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.410997;stroke-dasharray:none;stroke-opacity:1"
+ d="M 14,12.25 H 39"
+ id="path1-5"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:3.175px;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ x="14.817429"
+ y="10.40187"
+ id="text1-6"><tspan
+ sodipodi:role="line"
+ id="tspan1-2"
+ style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';fill:#d45500;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-dasharray:none"
+ x="14.817429"
+ y="10.40187">10.0.0.1</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:3.175px;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ x="55.209549"
+ y="9.7906246"
+ id="text2"><tspan
+ sodipodi:role="line"
+ id="tspan2"
+ style="text-align:center;text-anchor:middle;stroke-width:0.2"
+ x="55.209549"
+ y="9.7906246">bond 1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.410997;stroke-dasharray:none;stroke-opacity:1"
+ d="M 70,8.3945011 H 95"
+ id="path1-9"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:3.175px;text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:#008080;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ x="95.169868"
+ y="7.5574956"
+ id="text1-3"><tspan
+ sodipodi:role="line"
+ id="tspan1-6"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:end;text-anchor:end;fill:#008080;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-dasharray:none"
+ x="95.169868"
+ y="7.5574956">Front-End</tspan></text>
+ </g>
+ <g
+ id="g3-1"
+ transform="translate(-10.000002,19)">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.184574;stroke-dasharray:none;stroke-opacity:1"
+ id="rect1-8"
+ width="29.815426"
+ height="13.015426"
+ x="40.092285"
+ y="2.0922868" />
+ <g
+ id="g2-7"
+ transform="translate(1)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.410997;stroke-dasharray:none;stroke-opacity:1"
+ d="M 14,5.2499995 H 39"
+ id="path1-92"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:3.175px;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ x="14.817429"
+ y="3.40187"
+ id="text1-0"><tspan
+ sodipodi:role="line"
+ id="tspan1-23"
+ style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';fill:#d45500;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-dasharray:none"
+ x="14.817429"
+ y="3.40187">10.0.0.1</tspan></text>
+ </g>
+ <g
+ id="g1-7"
+ transform="translate(1)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.410997;stroke-dasharray:none;stroke-opacity:1"
+ d="M 14,12.25 H 39"
+ id="path1-5-5"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:3.175px;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ x="14.817429"
+ y="10.40187"
+ id="text1-6-9"><tspan
+ sodipodi:role="line"
+ id="tspan1-2-2"
+ style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';fill:#d45500;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-dasharray:none"
+ x="14.817429"
+ y="10.40187">10.0.0.1</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:3.175px;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ x="55.209549"
+ y="9.7906246"
+ id="text2-2"><tspan
+ sodipodi:role="line"
+ id="tspan2-8"
+ style="text-align:center;text-anchor:middle;stroke-width:0.2"
+ x="55.209549"
+ y="9.7906246">bond 2</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.410997;stroke-dasharray:none;stroke-opacity:1"
+ d="M 70,8.3945011 H 95"
+ id="path1-9-9"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:3.175px;text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:#008080;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ x="95.169868"
+ y="7.5574956"
+ id="text1-3-7"><tspan
+ sodipodi:role="line"
+ id="tspan1-6-3"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:end;text-anchor:end;fill:#008080;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-dasharray:none"
+ x="95.169868"
+ y="7.5574956">Management</tspan></text>
+ </g>
+ <g
+ id="g3-1-0"
+ transform="translate(-10.000004,38)">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.184574;stroke-dasharray:none;stroke-opacity:1"
+ id="rect1-8-6"
+ width="29.815426"
+ height="13.015426"
+ x="40.092285"
+ y="2.0922868" />
+ <g
+ id="g2-7-1"
+ transform="translate(1)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.410997;stroke-dasharray:none;stroke-opacity:1"
+ d="M 14,5.2499995 H 39"
+ id="path1-92-5"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:3.175px;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ x="14.817429"
+ y="3.40187"
+ id="text1-0-5"><tspan
+ sodipodi:role="line"
+ id="tspan1-23-4"
+ style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';fill:#d45500;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-dasharray:none"
+ x="14.817429"
+ y="3.40187">10.0.0.1</tspan></text>
+ </g>
+ <g
+ id="g1-7-7"
+ transform="translate(1)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.410997;stroke-dasharray:none;stroke-opacity:1"
+ d="M 14,12.25 H 39"
+ id="path1-5-5-6"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:3.175px;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ x="14.817429"
+ y="10.40187"
+ id="text1-6-9-5"><tspan
+ sodipodi:role="line"
+ id="tspan1-2-2-6"
+ style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';fill:#d45500;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-dasharray:none"
+ x="14.817429"
+ y="10.40187">10.0.0.1</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:3.175px;text-align:center;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ x="55.209549"
+ y="9.7906246"
+ id="text2-2-9"><tspan
+ sodipodi:role="line"
+ id="tspan2-8-3"
+ style="text-align:center;text-anchor:middle;stroke-width:0.2"
+ x="55.209549"
+ y="9.7906246">bond 3</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.410997;stroke-dasharray:none;stroke-opacity:1"
+ d="M 70,8.3945011 H 95"
+ id="path1-9-9-7"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:3.175px;text-align:end;writing-mode:lr-tb;direction:ltr;text-anchor:end;fill:#008080;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1"
+ x="95.169868"
+ y="7.5574956"
+ id="text1-3-7-4"><tspan
+ sodipodi:role="line"
+ id="tspan1-6-3-5"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:end;text-anchor:end;fill:#008080;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-dasharray:none"
+ x="95.169868"
+ y="7.5574956">Ceph/Cinder</tspan></text>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/multi-node/run-vm-0.sh b/multi-node/run-vm-0.sh
new file mode 100755
index 0000000..f83258f
--- /dev/null
+++ b/multi-node/run-vm-0.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+## BASTION NODE ##
+
+controllo_rete()
+{
+ ip address show br0
+}
+
+controllo_rete
+
+exit
+
+
+# sudo ip tuntap add dev tap0 mode tap
+# sudo ip link set tap0 up
+# sudo ip addr add 192.168.100.1/24 dev tap0
+
+
+# -drive file=disk0.qcow2,format=qcow2,if=virtio \
+# -boot c
+
+
+# NAT
+# -netdev user,id=net0 -device virtio-net-pci,netdev=net0 \
+
+qemu-system-x86_64 \
+ -enable-kvm \
+ -m 8192 \
+ -smp 4 \
+ -netdev user,id=net0,hostfwd=tcp::8080-:80,hostfwd=tcp::8443-:443 -device virtio-net-pci,netdev=net0 \
+ -netdev tap,id=net1,ifname=tap0,script=no,downscript=no -device virtio-net-pci,netdev=net1 \
+ -netdev tap,id=net2,ifname=tap1,script=no,downscript=no -device virtio-net-pci,netdev=net2 \
+ -drive file=disk0.qcow2,format=qcow2,if=virtio \
+ -drive file=ubuntu-24.04.2-live-server-amd64.iso,media=cdrom,readonly=on \
+ -boot c
+
+qemu-system-x86_64 \
+ -enable-kvm \
+ -m 8192 \
+ -drive file=disk0.qcow2,format=qcow2,if=virtio \
+ -display none \
+ -vnc :0 \
+ -daemonize
diff --git a/tabella-dei-nodi.png b/tabella-dei-nodi.png
new file mode 100644
index 0000000..2935d8e
--- /dev/null
+++ b/tabella-dei-nodi.png
Binary files differ