diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | README.md | 7 | ||||
-rwxr-xr-x | all-in-one/run-vm.sh | 24 | ||||
-rw-r--r-- | doc/.gitignore | 3 | ||||
-rw-r--r-- | doc/Makefile | 12 | ||||
-rw-r--r-- | doc/main.tex | 230 | ||||
-rw-r--r-- | istruzioni | 133 | ||||
-rw-r--r-- | multi-node/architettura.svg | 917 | ||||
-rw-r--r-- | multi-node/reti.svg | 298 | ||||
-rwxr-xr-x | multi-node/run-vm-0.sh | 44 | ||||
-rw-r--r-- | tabella-dei-nodi.png | bin | 0 -> 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 Binary files differnew file mode 100644 index 0000000..2935d8e --- /dev/null +++ b/tabella-dei-nodi.png |