====== Aufgabe 3 - Aufbau einer Topolgie mit pfSense-Firewall und virtuellem Cisco-Switch ====== In Aufgabe 3 wird auf Basis der bereits realisierten GNS3-Umgebung die GNS3-VM installiert. Bei der GNS3-VM handelt es sich um eine Linux-VM mit integriertem GNS3 Server. Die GNS3-VM erlaubt es, die Einschränkungen (mangelnder Support für QEMU) von Windows zu umgehen und die Netzwerk-Simualtionen direkt auf einem Linux-Controller laufen zu lassen. Die GNS3-VM ist in verschiedenen Virtualisierungsumgebungen lauffähig. In dieser Aufgabe soll in der GNS3-VM eine komplexe Topologie mit einer pfSense-Firewall und einem virtuellen Cisco-Switch aufgesetzt werden. Die folgende Grafik veranschaulicht den SOLL-Zustand der vorliegenden Aufgabe: {{ausbildung:gns3_aufgabe02_topologie_soll.png|Topologie Aufgabe 3 Soll-Zustand}} Im Hauptbereich (Workspace) sieht man die Ziel-Topologie: Wie in Aufgabe 1 sollen zwei VPCS mit einem Switch verbunden werden. Bei Switch handelt es sich aber nicht um den built-in Switch von GNS3 sondern um einen virtuellen Cisco Switch mit der Internetwork Operating System Software (IOS) als Betriebssystem. Als Gateway für das Netzwerk dient eine pfSense-Firewall, die WAN-seitig über die Bridge virbr0 mit dem Host-Netz verbunden ist. Im Bereich “Servers Summary” lässt sich erkennen, dass neben dem lokalen GNS3-Server nun auch der GNS3-Server der GNS3-VM aktiv ist. Alle Nodes sind auf der GNS3-VM realisiert. Aufgabe 3 umfasst mehrere Teilaufgaben: 3.1 Erstellen der in GNS3 benötigten Komponenten [nur bei lokaler Installation notwendig]\\ 3.2 Erstellen der Ziel-Topologie\\ 3.3 Testing der Lösung\\ ===== 3.1 Erstellen der in GNS3 benötigten Komponenten [nur bei lokaler Installation notwendig] ===== In der Rafisa steht serverseitig eine GNS3-Umgebung zur Verfügung: http://gns3.rafisa.org Eine lokale Installation von GNS3 ist deshalb nicht erforderlich. Wenn Sie GNS3 trotzdem lokal installieren möchten, lesen Sie weiter. Ansonsten gehen Sie direkt zu [[de:ausbildung:gns3-02#erstellen_der_ziel-topologie | Aufgabe 2.2]]. === Download der GNS3-VM === Als erstes muss die GNS3-VM von gns3.org heruntergeladen werden. Im folgenden Video wird gezeigt, worauf man dabei achten muss: {{ausbildung:147_gns3-vm_download.mp4|Download der GNS3-VM}} === Installation einer Virtualisierungsumgebung und Import der GNS3-VM === Für das Hosting der GNS3-VM wird eine Virtualisierungsumgebung benötigt. Offiziell empfohlen wird nach wie vor VMware Workstation Pro((https://www.vmware.com/ch/products/workstation-pro.html)). Seit der Version 6.1 verfügt aber auch VirtualBox((https://www.virtualbox.org/)) über das Feature der nested virtualization für Intel-CPU's((https://www.youtube.com/watch?v=JMT2qimIL9Q&feature=youtu.be&ab_channel=DavidBombal)). Dieses Feature ermöglicht Virtualisierung innerhalb der Virtualisierung, also z.B. das Erstellen eines virtuellen Switches innerhalb der GNS3-VM. Im folgenden Video wird gezeigt, wie die GNS3-VM unter VMware installiert wird. Wir haben bei unserem Testing VirtualBox verwendet, dabei lief alles einwandfrei. Entscheiden Sie bitte selber, welche der beiden Lösungen Sie einsetzen wollen. Bei VMware Workstation Pro kann die 30-tägige Testversion verwendet werden. Das folgende Video zeigt, wie man die GNS3-VM unter VMware installiert. Die Schritte können praktisch 1:1 auf VirtualBox übertragen werden. {{ausbildung:005_gns3_install_vmware_workstation_pro.mp4}} === Wichtige Hinweise === ☛ Darauf achten, dass die Version der GNS-VM mit der installierten Version von GNS3 übereinstimmt ☛ Die GNS3-VM wird per API-Call durch GNS3 gestartet, Starten Sie sie nicht manuell aus dem GUI von VMware oder VirtualBox ☛ Auch die Zuteilung von Memory und virtuellen Prozessorkernen erfolgt über GNS3 und nicht direkt in der Virtualisierungsumgebung ☛ Die GNS3-VM immer booten lassen, bevor man mit der Arbeit beginnt ☛ Der GNS3-VM so viel Memory zuteilen, wie vom Host-System her möglich ist. Die defaultmässig zugewiesenen 2048MB sind sehr knapp, v.a. wenn eine pfSense Firewall installiert werden soll ☛ Alle Templates und deren Instanzen werden in dieser Aufgabe in der GNS3-VM installiert === Erstellen des Cisco-L2-Templates mit Hilfe eines Cisco-VIRL-Images === Ein grosses Plus von GNS3 ist, dass auf dem Marketplace((https://www.gns3.com/marketplace)) Templates für Geräte von namhaften Herstellern von Netzwerkgeräten angeboten werden. So können z.B. sogenannte Cisco-VIRL-Images - diese sind für die Cisco eigene Virtualisierungsplattform Virtual Internet Routing Lab (VIRL)((https://learningnetwork.cisco.com/s/article/what-is-virl-virtual-internet-routing-lab-x)) entwickelt worden - innerhalb von GNS3 eingesetzt werden. Im folgenden Video wird erklärt, wie man ein VIRL-Image in der GNS3-VM einbindet und damit ein Template für einen full-managed Cisco Switch mit dem Cisco Operating System (IOS) erstellt: {{ausbildung:006_download_cisco_ios_images_and_use_in_gns3.mp4}} Anbei der Link zum lizenzierten VIRL-Image: [[de:https://rafisa-my.sharepoint.com/:f:/g/personal/e_rueefli_rafisa_ch/EsEyflPOT6dDo7YSnIfkWF4B9OF5x45jVwznWUCbxrU1TQ?e=p3J1Rc|CiscoIOSvL2]] Nach dem erfolgreichen Import des VIRL-Images findet sich links im Template-Bereich ein neues Template für den CiscoIOSvL2-Switch. Das Template kann nun in den Workspace der GNS3-VM gezogen werden, um mit dem Aufbau der Topologie zu beginnen. === Erstellen des pfSense-Templates === Nun muss noch ein pfSense-Template erstellt werden. Dazu wird in der "All Devices"-Ansicht zunächst ein neues Template erstellt: {{ausbildung:gns3_aufgabe02_pfsense00.png|Eröffnen eines neuen Templates}} Wählen Sie im Klappmenu Firewalls die pfSense aus: {{ausbildung:gns3_aufgabe02_pfsense03.png|Firewall Template}} Wählen Sie danach die GNS3-VM als Installationsort aus. In der folgenden Maske sehen Sie, welche Versionen von pfSense((https://pfsense.org)) von GNS3 unterstützt werden. Die Files sind noch alle auf missing gesetzt. Sobald die fehlenden Files in den Ordner Downloads (Default) heruntergeladen worden sind drücken Sie auf ''Refresh''. Die Files werden dann automatisch eingelesen. Sollte das nicht klappen, versuchen Sie es über den Import-Knopf. {{ausbildung:gns3_aufgabe02_pfsense04.png|pfSense Versionen}} pfSense kann unter folgender URL bezogen werden: https://docs-v1.gns3.com/appliances/pfsense.html. Achten Sie darauf, das AMD64-ISO version 2.4.5p1 zu wählen: {{ausbildung:gns3_aufgabe02_pfsense05.png|pfSense Versionen}} Beachten Sie auch, dass das heruntergeladene Image zunächst entzippt werden muss. Nach dem erfolgreichen Abschluss der Installation, sehen Sie in der Device-Liste nun das Icon für die pfSense. Dieses Icon können Sie in den Arbeitsbereich ziehen, um Ihre Topologie zu ergänzen. === Wichtige Hinweise === ☛ Stellen Sie sicher, dass Sie über eine von GNS3 unterstützte Version von pfSense verfügen ☛ Wählen Sie das AMD64-ISO der pfSense zum Download ☛ Das ISO kommt gezippt, entpacken Sie es, sonst wird es von GNS3 nicht erkannt ===== 3.2 Erstellen der Ziel-Topologie ===== === Vorgaben für die zu erstellende Topologie === Alle Templates, die für den Bau der Topologie benötigt werden, sollten nun vorhanden sein. Folgendes Netzwerk soll erstellt werden: {{ausbildung:gns3_aufgabe02_topologie_soll.png|Topologie Aufgabe 3 Soll-Zustand}} * CiscoIOSvL2 (Managed Cisco Switch aus Template); Hostname: Switch 1; Default Anzahl Interfaces; IP-Adresse: 192.168.1.2/24; Gateway: 192.168.1.1 * PC1 (built-in VPCS; Hostname: PC1; IP-Adresse: DHCP; DHCP-Server: 192.168.1.1 * PC2 (built-in VPCS; Hostname: PC2; IP-Adresse: DHCP; DHCP-Server: 192.168.1.1 * pfSense (pfSense-FW aus Template): Hostname: FW1; 2 Interfaces: LAN + WAN; LAN-IP (em1): 192.168.1.1/24; WAN-IP (em0): DHCP * Cloud1 (Anschluss an Host-Netzwerk): Hostname: Cloud1; Bridge === Wichtige Hinweise === ☛ Wenn sie eine konfiguration auf dem Cisco Switch ändern, **//SPEICHERN SIE IMMER! Ansonsten sind alle einstellungen die sie gemacht haben futsch!//** Speichern sie indem sie im Priviligierten EXEC modus "copy running-config startup-config" eingeben. Damit Speichern sie die konfiguration. ☛ Die Anzahl Interfaces für Switches und Firewalls wird im Menu ''Configure'' (rechte Maustaste auf das Gerät klicken) festgelegt (auf pfSense von 6 auf 2 reduzieren) ☛ Kurzreferenzen zur Konfiguration des Switches finden sich hier:\\ [[https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3560/software/release/12-2_46_se/command/reference/cr1/intro.pdf|Using the Command-Line Interface]]((https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3560/software/release/12-2_46_se/command/reference/cr1/intro.pdf)): In der Tabelle 1-1 finden sich die Befehle, mit denen man in die entsprechenden Config-Modes des Switches kommt [[https://study-ccna.com/configure-an-ip-address-on-a-switch/|Configure an IP address on a Cisco IOS switch]]((https://study-ccna.com/configure-an-ip-address-on-a-switch/)): Hier finden Sie die Befehle, um die IP-Adresse des Switches festzulegen. ☛ pfSense kann nach dem Start über die Konsole erreicht werden (rechte Maustaste auf Device klicken, ''Console'' wählen). Für die Basiskonfiguration über die Konsole kann man folgendes Tutorial verwenden: https://docs.netgate.com/pfsense/en/latest/install/install-walkthrough.html ☛ Nach der Basisinstallation läasst sich pfSense über das Web-Interface konfigurieren. Fügen Sie dazu zusätzlich ein Minilinux mit Firefox aus den Templates hinzu: {{ausbildung:pasted:20221114-141856.png}} Das Webinterface der pfSense ist über die IP-Adresse 192.168.1.1 erreichbar (User: admin, PW: pfsense). Auf der pfSense ist ein DHCP-Server aktiv, man muss also nur das Minilinux mit Firefox mit dem Switch verbinden, danach sollte man automatisch eine passende IP zugewiesen erhalten. ☛ Für die Anbindung an das Host-Netzwerk und letztlich ans Internet stehen zwei Devices zur Verfügung, die Cloud und das NAT-Device. Bei den beiden handelt es sich um die von anderen Virtualisierungslösungen bekannte Bridge (Cloud) und die Verbindung über einen virtuellen NAT-Router. Beim Bridging wird das Netz direkt an ein Netzwerkinterface gekoppelt. In der Soll-Topologie wird das Cloud-Device verwendet. ===== 3.3 Testing der Lösung ===== === Download des Test-Protokolls === Verwenden Sie für das Testing der Lösung bitte folgendes Formular: [[de:konzepte:test-konzept|Test-Protokoll]], welches Sie als ODT-Vorlage (Libre-Office) herunterladen: {{ausbildung:export_test-protokoll-01.png|ODT-Export Test-Protokoll}} Ersetzen Sie die kursiv geschriebenen Hinweise durch Ihren Inhalt. Was Sie wie testen möchten und wie viele Testfälle Sie dazu benötigen bleibt Ihnen überlassen. Das Testing muss **die für einen vorgestellten Experten wichtigsten Aspekte** Ihrer Lösung abdecken. Laden Sie als **Abschluss der Aufgabe** das Test-Protokoll in Ihren **Wekan-Auftrag** hoch. === Wichtige Hinweise === ☛ Anregungen für das Testing: Ping-Tests für alle Hosts und Internet; Screenshot der Topologie; Screenshots der Geräteinfos (Tooltips)