mc-b / lerngns3

Digitaler Zwilling für viele Informatik Module in der Ausbildung zum Informatiker EFZ und HF Lehrgang Dipl. Informatiker "cloud-native"

Home Page:https://tbz.ch/weiterbildung-tbz/it-services-engineer-hf-2/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Lern GNS3


Graphical Network Simulator-3 ist ein Netzwerk-Software-Emulator, der erstmals 2008 veröffentlicht wurde. Er ermöglicht die Kombination von virtuellen und realen Geräten, die zur Simulation komplexer Netzwerke verwendet werden.

Das Projekt stellt die die Umgebungen von LernMAAS und weitere, als Templates und Projekte, in einer GNS3 Umgebung zur Verfügung.

Dieses Projekt basiert auf den Erfahrungen von LernKube, LernMAAS und LernCloud.

Quick Start

Erstellt eine VM mit mindestens 4 CPU Cores, 8 GB RAM, 64 GB HD mit dem Cloud-init Script cloud-init-gns3.yaml.

Die VM sollte ausserdem Nested Virtualization (VM in VM) unterstützen.

Dieses kann wie folgt überprüft werden:

sudo virt-host-validate qemu

Falls die VM keine Nested Virtualization (VM in VM) unterstützt ist, die Konfigurationsdatei /opt/gns3/.config/GNS3/2.2/gns3_server.conf um folgenden Eintrag ergänzen:

[Qemu]
enable_kvm = false

GNS3 Projekte

Es stehen einen Reihe von Projekten zur Verfügung. Dazu zuerst diese Repository, auf dem lokalen Notebook, clonen und dann via GNS3 Oberfläche eines der vorbereiteten Projekte importieren -> File -> Import portable project".

git clone https://github.com/mc-b/lerngns3

Die Projekte sind dann im Verzeichnis lerngns3/projects verfügbar.

Troubleshooting

Netzwerk

Es kann vorkommen, dass Cloud Umgebung es nicht erlauben das der OpenWrt Router eine IP-Adresse bezieht (Spoofing).

Das hat zur Folge, dass hinterliegenden VMs keine Verbindung zum Internet aufbauen können.

Abhilfe: NAT Gateway statt Cloud und OpenWrt Router verwenden.

Cloud-init

Wenn die VMs vor dem Router bereit sind, kann es vorkommen, dass das Cloud-init Script nicht sauber durchläuft. Dies weil die VMs keine Verbindung zum Internet aufbauen konnte.

Abhilfe: Cloud-init zurücksetzen und nochmals laufen lassen

sudo cloud-init clean
sudo shutdown -r now

Templates in TBZ GNS3 Umgebung integrieren

Ab Zeile 15 (Ubuntu Image hole) des Installationsscripts install.sh bis max. Zeile 52 (ohne Netzwerk) manuell ausführen.

Dafür ist vorher localhost durch 192.168.23.1 zu ersetzen:

for repo in lerngns3 lernmaas
do
    git clone https://github.com/mc-b/${repo}
    cd ${repo}/scripts
    for script in gns3*.sh
    do
        sed -i -e 's/localhost/192.168.23.1/g' ${script};
        bash -x ${script}
    done
    cd ../..
done   

OpenWrt Image holen und weitere Templates Ubuntu Server, webterm und chromium anlegen.

# OpenWrt Image holen und aufbereiten
sudo wget -O /opt/gns3/images/QEMU/openwrt-22.03.0-x86-64-generic-ext4-combined.img.gz https://downloads.openwrt.org/releases/22.03.0/targets/x86/64/openwrt-22.03.0-x86-64-generic-ext4-combined.img.gz
sudo gunzip /opt/gns3/images/QEMU/openwrt-22.03.0-x86-64-generic-ext4-combined.img.gz

# Standard Templates anlegen
curl -X POST "http://192.168.23.1:3080/v2/templates" -d '{"name": "Ubuntu-22", "compute_id": "local", "qemu_path": "/usr/bin/qemu-system-x86_64", "hda_disk_image": "jammy-server-cloudimg-amd64.img", "symbol": ":/symbols/affinity/circle/gray/vm.svg", "ram": 2048, "template_type": "qemu"}' 
curl -X POST "http://192.168.23.1:3080/v2/templates" -d '{ "category": "guest", "compute_id": "local", "console_type": "vnc", "image": "gns3/webterm", "name": "webterm", "symbol": ":/symbols/affinity/circle/gray/client.svg", "template_type": "docker" }'
curl -X POST "http://192.168.23.1:3080/v2/templates" -d '{ "category": "guest", "compute_id": "local", "console_type": "vnc", "image": "jess/chromium", "name": "chromium", "symbol": ":/symbols/affinity/circle/gray/client.svg", "template_type": "docker" }'

Die OpenVPN Verbindung, kann über WireGuard verwendet werden. Dazu zuerst Konfiguration von Host im Verzeichnis /opt/cloudinitinstall/<Hostname>.ovpn holen und <connection> anpassen

<connection>
remote <WireGuard IP-Adresse> 1194 tcp4
</connection>    

Weil das 192.168.23.1 keine Internet Verbindungen zulässt, in den Projekten Cloud durch NAT Device ersetzen.

Links

About

Digitaler Zwilling für viele Informatik Module in der Ausbildung zum Informatiker EFZ und HF Lehrgang Dipl. Informatiker "cloud-native"

https://tbz.ch/weiterbildung-tbz/it-services-engineer-hf-2/

License:Apache License 2.0


Languages

Language:Shell 91.5%Language:HCL 8.5%