Netzwerk zwischen Host und VM einrichten

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
debianx
Beiträge: 77
Registriert: 18.01.2017 17:04:10

Netzwerk zwischen Host und VM einrichten

Beitrag von debianx » 27.11.2017 16:43:20

Hallo,

ich möchte das ein abgeschottetes Programm auf einer VM, mit einem Programm auf dem Host kommunizieren kann. Ich vermute man muss dafür sowas wie eine virtuelle Netzwerkverbindung erstellen.
Da ich mich insbesondere in die Netzwerkdinge erst einarbeite würde ich gerne fragen wie das beste Vorgehen dafür ist.

Auf dem Host unter Netzwerkverbindungen gibt es diverse Möglichkeiten, ich vermute man erstellt eine neue Ethernetverbindung. Die Frage hier welchen Verbindungstyp. VLAN oder Brücke?

Die VM würde ich bevorzugt per qemu laufen lassen (weil Quelloffen) und habe aqemu geladen zur Erstellung der VM.
Die erste Netzwerkkarte der VM steht standardmäßig auf "use the usermode network stack". Damit wird vermutlich die normale Verbindung zum Internet ermöglicht.
Ich habe dann eine weitere Netzwerkkarte an der VM erstellt, die Frage wäre jetzt hier welche Einstellung bei "Connection Mode" zu empfehlen wäre?

Grüße

BenutzerGa4gooPh

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von BenutzerGa4gooPh » 27.11.2017 16:51:48

debianx hat geschrieben: ↑ zum Beitrag ↑
27.11.2017 16:43:20
Die VM würde ich bevorzugt per qemu laufen lassen (weil Quelloffen) und habe aqemu geladen zur Erstellung der VM.
Ich kenne nur VBox, wird aehnlich sein: https://www.thomas-krenn.com/de/wiki/Ne ... VirtualBox
Ansonsten kann man auch mal die Doku einer Anwendung vor deren Verwendung lesen. Wenigstens den fraglichen Netzwerkteil. :wink:

VLANs benoetigt man eigentlich nur bei Verwendung von (virtuellen) Switches.

Eine "gebridgte" VM sieht netzwerktechnisch genau so aus wie ein beliebiger Host im LAN. IP-Adresse, Default-GW und DNS entweder statisch/manuell konfigurieren oder per DHCP-Client (Debian-Standard-Installation) vom (Router-) DHCP-Server beziehen.

Fuer die Erreichbarkeit der VM aus dem LAN mit DHCP-Nutzung ist zweckmaessig, in den Netzwerkeinstellungen der VM eine leicht merkbare MAC-Adresse zu konfigurieren (z. B. alles 1en) und im DHCP-Server des Routers eine entsprechende IP-MAC-Reservation vorzunehmen, damit die IP-Adr. konstant/bekannt bleibt. Eine Reservation (IP-Adresse) liegt ausserhalb des DHCP-Pools.

debianx
Beiträge: 77
Registriert: 18.01.2017 17:04:10

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von debianx » 27.11.2017 17:38:03

Ja stimmt das was ich vor hab entspricht bei VBox dem sogenannten "Host-only networking".
Dort ist auch von DHCP-Server die Rede und IP manuell angeben. Verbindungstyp Brücke werde ich mal versuchen... Muss mich auch weiter einlesen, einige Netzwerkvokabeln verstehe noch gar nicht :)

Benutzeravatar
jph
Beiträge: 1049
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von jph » 27.11.2017 18:04:54

Wenn der Gast nur mit dem Host reden können soll, dann nimm ein Host-Only-Network. Das hat aber den Nachteil, dass der Gast nicht nach draußen kann, was lästig beim Download sein kann. Man kann auch ein Host-Only-Network so aufziehen, dass die dort angeschlossenen VMs miteinander und mit dem Host sprechen, nicht aber nach draußen können.

Ansonsten gibt es unter VirtualBox noch das
  • NAT/Masqueraded Network: der Host nattet für den Gast, d.h. dieser kann auf das Netz zugreifen, ist umgekehrt aber nicht von außen erreichbar. Sofern man auf dem Gast keine Server ausprobieren möchte, ist man damit gut unterwegs. Bei DHCP wird die IP vom Host vergeben.
  • Bridged Network: der Gast hängt per Brücke unmittelbar im Netz und ist aus diesem erreichbar. Das wählt man, wenn man Serverdienste des Gastes erreichen möchte. Bei DHCP wird die IP vom „normalen“, im Netz vorhandenen DHCP-Server vergeben. Das ist häufig der Router.
Mit QEMU/KVM kenne ich mich nicht aus, aber da dürfte es ähnlich sein. Ich persönlich finde VirtualBox etwas „zugänglicher“, gerade für Einsteiger. Die bieten ein Debian-Repository an.

BenutzerGa4gooPh

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von BenutzerGa4gooPh » 27.11.2017 18:07:37

debianx hat geschrieben: ↑ zum Beitrag ↑
27.11.2017 16:43:20
ich möchte das ein abgeschottetes Programm auf einer VM, mit einem Programm auf dem Host kommunizieren kann.
debianx hat geschrieben: ↑ zum Beitrag ↑
27.11.2017 17:38:03
Ja stimmt das was ich vor hab entspricht bei VBox dem sogenannten "Host-only networking".
Ueberlege genau, von wo nach wohin Verbindungen initiiert werden sollen. Mit Bridge sind alle Richtungen moeglich. :wink:

Upps, jph war zwischendurch ...

debianx
Beiträge: 77
Registriert: 18.01.2017 17:04:10

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von debianx » 27.11.2017 18:31:51

Also was die Programmkommunikation angeht fungiert das Programm auf dem Host als Client und das Programm auf der VM als Server (nur für den Host).
Die VM soll normal Internet haben und die Host-VM Sache soll davon getrennt ablaufen.
Ich bin noch fleißig am einlesen aber das Thema ist echt nicht leicht. Vielleicht muss ich beim Host auch einfach ein virtuelles Netzwerkinterface per IPROUTE2 erstellen, lese gerade hier http://baturin.org/docs/iproute2/ es gibt viele Arten Interfaces zu erstellen wie pseudo-ethernet, dummy, bridge usw Interfaces... :? Auf VBox würde ich eigentlich gerne verzichten wenn es geht, ich wills ja auch irgendwie lernen das Thema.
Gedankliche Basis ist jetzt bei mir das Host und VM jeweils eine virtuelle Netzwerkkarte brauchen, dann noch ein virtuelles Netzwerkkabel um beide zu verbinden.

TomL

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von TomL » 27.11.2017 18:42:56

Also ich glaube jetzt mal, dass Du nicht wirklich eine Kommunikation zwischen Host und VM umsetzten willst... und ich würde deshalb jetzt mal annehmen, dass Du eigentlich gar nix machen musst. Ich vermute mal, Du denkst, wenn Du eine VM einrichtest, kann die nix außer VM zu sein und wäre dann so eine isolierte Debian-Installation. Dem ist aber nicht so. Wenn Du z.B. mit Virtual Box eine VM einrichtest, hat die über den Host sofort vollständigen Internetzugang. Die VM bridge'd die NICs automatisch dergestalt, dass alle IP-Pakete automatisch auf der Netzwerkkarte des Host landen und von dort den Weg ins Internet finden. Und dennoch kann die VM nicht einfach so auf das lokale Netzwerk des Host oder auf Daten des Host zugreifen.

Darüber hinaus unterstützt das VM-Frontend auch einen Share-Speicherort auf der Platte einzurichten, mit dem man von beiden Seiten (Host und VM) auf gemeinsame Dateien zugreifen kann. Beschreib doch einfach mal genau, was Du willst, dann kann man nach Lösungen suchen. Ich würde einfach mal Virtual Box installieren und damit eine VM einrichten. Das ist nicht wirkich kompliziert. Allerdings wüsste ich jetzt nicht, welche Version gerade ok ist... irgendwie gabs da einige Probleme und ich weiss nicht, ob die behoben sind. Ich nutze zur Zeit noch die Version 5.1.22, die absolut stabil läuft.

BenutzerGa4gooPh

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von BenutzerGa4gooPh » 27.11.2017 19:09:24

debianx hat geschrieben: ↑ zum Beitrag ↑
27.11.2017 18:31:51
Also was die Programmkommunikation angeht fungiert das Programm auf dem Host als Client und das Programm auf der VM als Server (nur für den Host).
Die VM soll normal Internet haben und die Host-VM Sache soll davon getrennt ablaufen.
Kommunikation mit Server in VM und Internet fuer die VM kriegst du m. E. nur mit Bridge hin. Allerdings sind netzwerktechnisch Host, Gast (VM) und andere Rechner im LAN miteinander verbunden - und zwar so wie mittels eines Switches. Warum das ein Problem sein koennte, muesstest du schildern. Du wirst ja wohl keine Malware programmieren wollen oder Virentests machen.
Vielleicht muss ich beim Host auch einfach ein virtuelles Netzwerkinterface per IPROUTE2 erstellen ...
VBox wuerde das selber tun, in der VM wuerde nach der Installation des Gastes ein virtueller Netzwerkadapter erscheinen.

TomL

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von TomL » 27.11.2017 19:17:46

Jana66 hat geschrieben: ↑ zum Beitrag ↑
27.11.2017 19:09:24
Kommunikation mit Server in VM und Internet fuer die VM kriegst du m. E. nur mit Bridge hin.
Das ist als Grundfunktionalität beim Erstellen der VM bereits eingerichtet.... er muss da nix hinkriegen. Meiner Meinung nach muss er nur aktiv werden, wenn er genau das verhindern will. Also ich kenne kein VM-Setup mit Virtual Box, in dem ich jemals eine Verbindung zum Internet bewusst einrichten musste... das war immer automatisch so eingerichtet. Btw, schau Dir mal die anderen Threads an... meiner Meinung nach sollten die Erklärungen auf einem wirklich einfachen Niveau bleiben. Mit Brigdges und Routing ist das zum jetzingen Zeitpunkt imho ein wenig zu anspruchsvoll...

j.m2.c.
Zuletzt geändert von TomL am 27.11.2017 19:19:03, insgesamt 1-mal geändert.

debianx
Beiträge: 77
Registriert: 18.01.2017 17:04:10

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von debianx » 27.11.2017 19:19:02

Der Sinn der Sache ist, dass auf der VM eine Windowssoftware läuft auf die ich angewiesen bin und über die ich Daten beziehe. Die Daten will ich in Echtzeit auf dem Host mit einem eigenen Programm weiterverarbeiten. Da die Win-Software nicht von mir geschrieben ist (Fremdquelle), soll sie in eine VM geperrt werden. Um die Daten von der VM auf den Host zu schicken will ich ein Netzwerk ausschließlich zwischen Host und VM. Dieses Netzwerk einzurichten ist jetzt gerade meine Herausvorderung (für alte Linuxhasen wahrscheinlich easy). Das die VM über den Host Internet hat, ist ja standardmäßig in den Virtualisierungsprogrammen aktivierbar aber hat eigentlich gar nichts mit der Host-VM-Kommunikation zu tun die ich vor habe.

Natürlich könnte man mit der Fremdquelle VirtualBox vom Softwaregigant Oracle Corporation die Sache leichter einrichten aber ich lege ja schon extra eine Fremdquelle in die VM, dann will ich irgendwie nicht das die VM selbst wieder eine Fremdquelle ist... Und außerdem will ich auch langfristig etwas lernen was dahinter passiert daher wäre mir der händische Weg oder zumindest über was kleines wie (a)qemu/kvm lieber auch wenn es nicht der Weg des geringsten Widerstandes ist :wink:

TomL

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von TomL » 27.11.2017 19:22:23

debianx hat geschrieben: ↑ zum Beitrag ↑
27.11.2017 19:19:02
Da die Win-Software nicht von mir geschrieben ist (Fremdquelle), soll sie in eine VM geperrt werden. Um die Daten von der VM auf den Host zu schicken will ich ein Netzwerk ausschließlich zwischen Host und VM. Dieses Netzwerk einzurichten ist jetzt gerade meine Herausvorderung (für alte Linuxhasen wahrscheinlich easy).
Wenn es nur um Dateien geht, geht das über die Option "Gemeinsame Ordner". Wenn es einen Datenaustausch via TCP/IP geben soll, muss also auch auf der Linux-Seite in Programm laufen, was auf einem bestimmten Port genau auf diese IP-Pakete wartet. Aber ich glaube immer noch nicht, dass es das ist, was Du wirklich benötigst.

Um welche Programme geht es dabei? Vielleicht gibt es auch eine Alternative, die direkt unter Linux läuft und kein Windows erfordert. Aber wie gesagt, wenn das Windowsprogramm nur Dateien erzeugt, kann es die einfach auch in dem gemeinsamen Ordner auf dem Host speichern, und damit kann man Linux-Seitig direkt darauf zugreifen.
Zuletzt geändert von TomL am 27.11.2017 19:24:38, insgesamt 1-mal geändert.

Benutzeravatar
jph
Beiträge: 1049
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von jph » 27.11.2017 19:23:17

TomL hat geschrieben: ↑ zum Beitrag ↑
27.11.2017 18:42:56
Wenn Du z.B. mit Virtual Box eine VM einrichtest, hat die über den Host sofort vollständigen Internetzugang. Die VM bridge'd die NICs automatisch dergestalt, dass alle IP-Pakete automatisch auf der Netzwerkkarte des Host landen und von dort den Weg ins Internet finden. Und dennoch kann die VM nicht einfach so auf das lokale Netzwerk des Host oder auf Daten des Host zugreifen.
Da der OP nach eigener Aussage ein Neuling ist, muss ich Korinthen k…cken: VirtualBox errichtet als Standard ein NAT; die Bridge muss man explizit auswählen und an ein Device des Hosts binden.

Vielleicht sollte sich der OP mit dem OSI-Modell beschäftigen, bevor wir ihn noch weiter verwirren: :D https://de.wikipedia.org/wiki/OSI-Modell

BenutzerGa4gooPh

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von BenutzerGa4gooPh » 27.11.2017 19:25:06

TomL hat geschrieben: ↑ zum Beitrag ↑
27.11.2017 19:17:46
Das ist als Grundfunktionalität beim Erstellen der VM bereits eingerichtet.... er muss da nix hinkriegen. Meiner Meinung nach muss er nur aktiv werden, wenn er genau das verhindern will. Also ich kenne kein VM-Setup mit Virtual Box, in dem ich jemals eine Verbindung zum Internet bewusst einrichten musste... das war immer automatisch so eingerichtet.
OotB/Default wirkt der Host als NAT-Router mit DHCP fuer den Gast. Also hat der Gast Internet. Bin gerade nicht am PC, probiere doch mal, ob du mit VBox-Defaults/NAT einen ping von Host auf einen entsprechenden Gast kriegst. Dann koennte der TO wirklich Defaults (NAT) nutzen.

Wieder jph schneller. :lol:
Zuletzt geändert von BenutzerGa4gooPh am 27.11.2017 19:31:00, insgesamt 1-mal geändert.

TomL

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von TomL » 27.11.2017 19:28:15

jph hat geschrieben: ↑ zum Beitrag ↑
27.11.2017 19:23:17
[VirtualBox errichtet als Standard ein NAT;
Ja, ich weiss... und ich wollte nicht noch mehr Begriffe einfügen, die einem Anfänger eh nix sagen, sondern nur verprellen. Ich halte schon bridge und iproute, nat-router und DHCP als Begriffe in diesem Fall für völlig daneben gegriffen. Glaubst Du wirklich, dass er mit NAT, von dem er nicht mal was wissen muss, nicht bestens klarkommt? Möglicherweise täusche ich mich ja auch... aber noch glaube ich das nicht.

@ Jana, boar... Du haus' hier Klamotten raus.... :mrgreen:

geier22

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von geier22 » 27.11.2017 19:46:13

Zu den "Fremdquellen" : Sowohl Virtualbox als auch QEMU sind GPL 2. Llediglich das Extension-Pack von Virtualbox
ist proprietär aber das liegt wohl daran, das darin eine ganze Menge proprietäre Treiber vorhanden sind, ohne die du deine proprietäre Hardware nicht vernünftig betreiben kannst.

Du kannst also ruhig Virtualbox benutzen.

Ich habe immer noch nicht so richtig verstanden, was du eigentlich willst.

Ein geheimes Windows Programm holt sich also Daten aus dem I-Net und du willst mit einem Linux Programm darauf in Echtzeit zugreifen.
Wenn das Programm die Daten irgendwo speichert, kannst du das über eine einfache Ordnerfreigabe lösen.
Dafür brauchst du kein Netzwerk.
Da vermutlich diese "Datenschaufel" :mrgreen: ja normaler Weise mit einem Windows- Programm
über irgendwelche API's kommuniziert, ist es dann nicht sichererer und einfacher, beide Programme in die VM zu stecken ?

debianx
Beiträge: 77
Registriert: 18.01.2017 17:04:10

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von debianx » 28.11.2017 03:05:45

Ok ich gebe auf, ich nehme erstmal VirtualBox, wusste gar nicht das es open-source ist. Allerdings ist bei Stretch mit den normalen Paketquellen keine Installation möglich. Geht wohl nur über non-free oder dritte Quelle https://wiki.debian.org/VirtualBox#Inst ... ee_edition
Ich hatte auch noch den virt-manager ausprobiert aber da muss man in der GUI das root Passwort eingeben, fand ich dann auch wieder blöd :lol:

Das Windowsprogramm ist nur ein ganz normales Programm für das spezielle Erweiterungen geschrieben werden können und ich bin an der Entwicklung für solche beteidigt.
Die Kommunikation (keine Dateien) soll über TCP/IP gehen denn sonst ist es viel zu langsam und auch nicht in Echtzeit. Da das Programm nicht open-source ist und gewisse Windows-typische Eigenschaften hat, sollen die Erweiterungen knallhart davon abgekoppelt werden. Vorher lief es auf Windows aber dieses OS ist inzwischen so offensichtlich ein derartiger krakenmäßiger supergau für devote Masochisten, sodass ich das VM-Konzept mal versuchen will solange noch die Abhängigkeit zu dem Programm besteht. Ok zugegeben ist die Frage wer ist masochistischer, der Win 10 User im Bezug auf seine Daten oder so einer wie ich der davon weg will und komplizierte Dinge tut die er noch nicht so gut kann :wink:

Kann jemand ein gutes Buch oder Internetquelle empfehlen wo Netzwerkkonfigurationen im Bezug auf Linux und VMs von 0 bis detailliert verständlich erklärt werden?
Ich hab zwar vieles gefunden und gelesen aber entweder war es extrem spezifisch oder zu allgemein.


BenutzerGa4gooPh

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von BenutzerGa4gooPh » 28.11.2017 08:56:50

Jana66 hat geschrieben: ↑ zum Beitrag ↑
27.11.2017 19:25:06
... ob du mit VBox-Defaults/NAT einen ping von Host auf einen entsprechenden Gast kriegst. Dann koennte der TO wirklich Defaults (NAT) nutzen.
Gerade mal einen ping von Host -> Gast mit Default-Netzwerkeinstellungen (NAT) von VBox probiert: erfolglos
ip neighbor auf Hostsystem (Inhalt ARP-Cache) zeigt nur den Default-Gateway des Hostsystems.
(Hätte u. U. funktionieren können, da Gastnetzwerk direct connected. Von einem physischen NAT-Router sind Hosts im LAN auch pingbar.)

ping von Gast->Host erwartungsgemäß erfolgreich.

Desgleichen mit geänderter VBox-Einstellung von "NAT" auf "NAT-Netzwerk".
debianx hat geschrieben: ↑ zum Beitrag ↑
28.11.2017 03:05:45
Die Kommunikation (keine Dateien) soll über TCP/IP gehen ...
Für eine IP-Kommunikation Gast->Internet UND Host->Gast bleibt dir nur Bridge. Jedenfalls in VBox.
Oder wie geier22 schon vorschlug: 2 VMs nutzen, VBox-Einstellung "NAT-Netzwerk", Zugriff Gast->Gast und Gast->Internet möglich. Daten von einer VM zum Host per shared Folder, gemeinsames Verzeichnis.

Die haben schon Recht: https://www.thomas-krenn.com/de/wiki/Ne ... VirtualBox :wink:
(Network Address Translation Service dürfte aktuell NAT-Netzwerk heißen.)

Du hast vielleicht zu viele Ängste: Viele betreiben im LAN Windows-Maschinen und Smartphones. Mit Bridge-Modus tust du nichts anderes.
Sehr "aluhütig" müsstest du dir eine vernünftige Router-FW-Kombination beschaffen und damit möglichen Traffic einschränken und deine "pöhse" Anwendung auf einem extra (physischen) Windows-PC betreiben. So eine Art DMZ bilden: https://de.wikipedia.org/wiki/Demilitarized_Zone

Langer Rede kurzer Sinn, 3 Möglichkeiten:
- Netzwerkvirtualisierung mit Bridge
- 2 VMs mit Netzwerkvirtualisierung "NAT-Netzwerk", 1 VM mit shared Folder für Datenweitergabe (per Datei) auf Host
- Pseudo-DMZ per Firewall und extra Windows-PC in DMZ, Zugriff DMZ->Internet und LAN->DMZ

Edit:
Wenn du DMZ willst, Netzwerk lernen möchtest - es macht "trocken-theoretisch" keinen Spaß. Beschaffe dir für etwa 55 Euro einen Mikrotik hex RB750Gr3, den du hinter deinem vorhandenen DSL-Router (Fritzbox?) anschließt. Gute Doku vom Hersteller gibt es dazu.
https://geizhals.de/mikrotik-routerboar ... 79274.html
(Kannste mit einer stromsparenden Linux-Büchse auch machen, ist aber teurer - Switch brauchst du wahrscheinlich extra noch - und dann suchste dir die Doku "tröpfchenweise" aus dem Netz. DDWRT/OpenWRT sind für Doku/Stabilität nicht berühmt und entsprechende Router kosten auch Geld. Allerdings haben die WLAN, mit RB750Gr3 wäre dafür ein WLAN-Acesspoint erforderlich.)

Benutzeravatar
jph
Beiträge: 1049
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: Netzwerk zwischen Host und VM einrichten

Beitrag von jph » 02.12.2017 15:57:12

debianx hat geschrieben: ↑ zum Beitrag ↑
28.11.2017 03:05:45
Ok ich gebe auf, ich nehme erstmal VirtualBox, wusste gar nicht das es open-source ist. Allerdings ist bei Stretch mit den normalen Paketquellen keine Installation möglich.
VirtualBox ist wie MySQL aus vielen Distributionen rausgeflogen. Hintergrund ist Oracles „Nondisclosure Policy“: Oracle weigert sich, die Commits mit Informationen zu behobenen Sicherheitsproblemen zu versehen. Eine Distribution wie Debian, die den Softwarestand stabil hält und in dem Zuge sicherheitsrelevante Patches zurückportiert, kann damit natürlich nicht arbeiten.

https://www.oracle.com/support/assuranc ... osure.html

Von VirtualBox gibt es nur noch eine Version, die frühere OSE, PHEL usw. gibt es nicht mehr. Das unfreie Extension Pack brauchst du nur, wenn du USB 2 an den Gast durchreichen willst. Ohne Extension Pack geht nur USB 1.1. Bitte beachten: Extension Pack != Guest Extensions.

Antworten