<sub class="descriptionSection">09-10-2024 04:44:pm // #Basics // [[Hardwarekomponenten]]</sub> ____ ## Was ist ein Netzwerk? Wenn wir in der IT über ein Netzwerk sprechen, dann reden wir meistens von mehreren vernetzten Computern. Das kann sich dann ausdehnen auf mehrere Netze, die widerrum verbunden sind miteinander, usw bis das Internet entsteht. ## Internet Protocol und das Internet Meistens, wenn über das Internet gesprochen wird, sprechen wir über eine unglaublich große anzahl an Netzen die miteinander verbunden sind. Dies passiert über Router. Um Geräte zu identifizieren, haben wir zwei verschiedene IP protokolle: IPv4 und IPv6. ### IPv4 IPv4 ist der de-facto standard für Internet Addressen. Sie besteht aus einer 32 Bit Addresse, die die folgende Form annimmt: ``` XXX.XXX.XXX.XXX ``` Dadurch das es allerdings maximal $2^{32}$ IP addressen geben kann, gehen uns mitlerweile allerdings die IP addressen aus. Dagegen wurden zwei Dinge erfunden: IPv6 ([rfc2460](https://www.rfc-editor.org/rfc/rfc2460)) und NAT(Network address translation, [erstmals in RFC 1631 proposed](https://www.rfc-editor.org/rfc/rfc1631])) ### NAT NAT oder Network Address Translation ist neben CIDR ([https://www.rfc-editor.org/rfc/rfc1517]) eine der Short-Term Solutions gewesen gegen die "IPv4 Address Depletion". Es nutzt reservierte IP bereiche um nicht jedem Gerät eine eigene IP zuzuweisen. NAT fähige Router, nutzen eine externe "Public IP" um vielen "Private IPs" den Zugriff auf das Internet zu ermöglichen. Dies wird meistens über Source NAT (SNAT) erreicht. Für Source NAT schickt ein Gerät mit einer Private IP ein Paket zu einem SNAT Router, dieser merkt sich dann den Source Port des Packets + die IP des Clients und weißt dann diesem Paket einen anderen Source Port an seinem Public Interface zu. Diese Informationen werden in einer Tabelle gespeichert. Jedes Paket das dann an diesem Source Port am Router ankommt kann weitergeleitet werden zum Source Port des Clients. ## Commands für die Netzwerkkonfig Um die Netzwerkkonfig anzuzeigen in Linux: ```shell ip add ifconfig ``` und Windows: ``` ipconfig /all ipconfig -all ``` ## Netzwerktypen in Virtualbox (und anderen Hypervisorn) ### Komplett isoliertes Netzwerk In diesem Beispiel sind die VMs einfach nicht angeschlossen. Für die VM betriebssysteme sieht es so aus als ob die Physische Verbindung getrennt wurde. Es ist kein Traffic whatsoever möglich. ![[Pasted image 20241009170323.png]] ### Internes Netzwerk (intnet) In diesem Fall sind die VMs an einen internen "Switch" angeschlossen. Die VMs können unter sich kommunizieren (solange valide IPs vergeben wurden). Eine Kommunikation zwischen Host und VMs ist **nicht möglich** ![[Pasted image 20241009170414.png]] ### Netzwerk nur über Host erreichbar (ohne NAT) Host-only adapter ermöglichen (im gegensatz zu intnet) eine Kommunikation zwischen Host und VMs. Allerdings können die VMs nicht ins Internet. ![[Pasted image 20241009170550.png]] ### NAT+Portforwarding In dieser Config können die VMs über einen NAT Router (in diesem Fall der Host) mit dem Internet / Lokalen Netz kommunitieren. Die VMs benötigen eine Private IP aus einem Bereich der sich nicht mit dem externen Netzwerk am Host überschneidet. Dies wird oft für Prototyping genutzt, allerdings ist es meistens nicht möglich dieses Setup für Produktiv Systeme einzusetzen. Eine erweiterung des NATs ist das Portforwarding, was es ermöglicht einen externen Port "durchzuschleifen" an einen internen Host.![[Pasted image 20241009170907.png]] ### Verbindung mit physischem Netzwerk (bridged) In diesem Beispiel hat der Host garkeinen Zugriff auf die Netzwerk verbindung der VMs. Die VMs haben eine eigene Externe Addresse und kommunizieren auch so ![[Pasted image 20241009171007.png]]