Erreichbarmachen von virtuellen Maschinen in eingeschränktem Netzwerk

webtaz

Lt. Junior Grade
Registriert
März 2010
Beiträge
283
Hallo Zusammen,

ich habe gerade unter einem Windows Server 2016 zwei virtuelle Maschinen aufgesetzt (es könnten auch mehr werden) um meinem Team eine Grundlage für das Testen von CI Anwendungen mit Docker-Containern bzw. virtuellen Maschinen als Zwischenschritt.

Das Team ist normal im lokalen Netzwerk oder per VPN im Umfeld des Servers, die Vergabe von IP-Adressen im Uni-Netzwerk ist aber recht kompliziert geregelt.
Ich bin mir (vermutlich eingeschränkt) bewusst, wie ich die Konfiguration der Netzwerkadapter in Hyper-V läuft. Momentan läuft ein internes Netzwerk zw. Host und Clients (VMs), und der Host "teilt" seine Internetverbindung über analoges internes Netzwerk.

Ich möchte den anderen Mitarbeitern direkten Zugriff (per SSH, VNC, oder RDP z.B.) auf die virtuellen Maschinen geben.
Da ich keine externen IP-Adressen zuweisen kann (es läuft kein automatisches DHCP im Netzwerk, sondern die IPs sind wohl statisch vergeben) - testweises Zuordnen einer IP im Subnet des Hosts an eine VM brachte keinen Erfolg (kein Ping an die VM kam durch, könnte natürlich auch andere Ursachen haben).

Die einzige Möglichkeit die ich bisher entdeckt habe, wäre auf dem Host ein NAT mit aufzubauen, und für meine Mitarbeiter eine Liste zu führen, welche VM mit welchem Port wie erreichbar ist.
(Ich nehme an die Internetverbindungsfreigabe läuft entsprechend ab, aber wie kann ich diese Konfigurieren / Ports freigeben?)

Die Frage ist: geht das einfacher?


Ich kann mir vorstellen hier werden Hände über dem Kopf zusammen geschlagen: "der hat keine Ahnung und baut Sicherheitsrisikos auf" - der Host und die VMs werden keinerlei relevante Daten bekommen, die sind wirklich nur zum "rumtesten" da.
 
webtaz schrieb:
die Vergabe von IP-Adressen im Uni-Netzwerk ist aber recht kompliziert geregelt.
Muessen sie mit einem formular schriftlich beantragt werden? (nur halb ironisch)
webtaz schrieb:
Die einzige Möglichkeit die ich bisher entdeckt habe, wäre auf dem Host ein NAT mit aufzubauen, und für meine Mitarbeiter eine Liste zu führen, welche VM mit welchem Port wie erreichbar ist.
(Ich nehme an die Internetverbindungsfreigabe läuft entsprechend ab, aber wie kann ich diese Konfigurieren / Ports freigeben?)
Ja, den host als jumphost nutzen und den VMs wenigstens lokal einen namen geben :)
Anstatt der config laesst sich aber auch fuer jede VM ein eintrag in der ssh config erstellen


exemplarisch:
Code:
Host jumphost
    HostName jumphost.example.com
    Port 22
    User kaaaarl

Host vm-bbb-123
    HostName vm-bbb-123.yolonet.works
    Port 1234
    User kaaaarl
    ProxyJump jumphost


Alternativ kannst du auch noch eine netzwerkkarte kaufen und die ports direkt an die VMs durchreichen. Das ist vermutlich der faulste und einfachste ansatz.
Ergänzung ()

webtaz schrieb:
testweises Zuordnen einer IP im Subnet des Hosts an eine VM brachte keinen Erfolg (kein Ping an die VM kam durch, könnte natürlich auch andere Ursachen haben).
hast da mal auf routen geschaut? die Ip im netz war auch noch frei? :)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: abcddcba
madmax2010 schrieb:
Ja, den host als jumphost nutzen und den VMs wenigstens lokal einen namen geben :)
Anstatt der config laesst sich aber auch fuer jede VM ein eintrag in der ssh config erstellen

exemplarisch:
Code:
Host jumphost
    HostName jumphost.example.com
    Port 22
    User kaaaarl

Host rehab-devnull
    HostName backend-server123.example.com
    Port 1234
    User kaaaarl
    ProxyJump jumphost
Edit: Ich komme langsam dahinter.
Das wäre eine SSH-Config, die ich dann verteilen könnte. Also für Clients.
Aber inklusive NAT ? Ich komme da also nicht dran vorbei XD
madmax2010 schrieb:
Alternativ kannst du auch noch eine netzwerkkarte kaufen und die ports direkt an die VMs durchreichen. Das ist vermutlich der faulste und einfachste ansatz.
In den Adaptereinstellungen habe ich zwei weitere Adapter gesehen, einer angeblich "ohne Kabel".
1628525777976.png

FST-Ethernet ist der in Verwendung, V-External ist durch einen externen V-Switch dort draufgekommen.
"nat" und "v-network" (bessere Bezeichnungen sobald ich weiß, was ich eigentlich will und mache) sind die Internen V-Switches, über "nat" wird die Internetverbindung von "V-External" geteilt.

Ich hatte es leider nicht geschafft "Ethernet 3" eine IP zuzuweisen, die ich auch anpingen konnte - bin mir deshalb nicht sicher ob es ins selbe Netzwerk gekabelt ist? -> Wie teste ich das geschickt?

madmax2010 schrieb:
hast da mal auf routen geschaut? die Ip im netz war auch noch frei? :)

Doppelt nein - dazu muss ich mich auch noch anlesen denke ich. Bisher habe ich nur im überschaubaren heimischen LAN gearbeitet ^^
Ich konnte die IP vorher nicht anpingen, deshalb bin ich davon ausgegangen, dass ich sie mal kurz borgen konnte :D
 
Zuletzt bearbeitet:
OK. Ich bin soweit, dass ich selbst von außerhalb (also einem Computer, der nicht Teil der Domäne ist) per SSH auf den Host und von dort aus auf die Guests komme.

Linux Guests: pisseasy, Windows Guests: etwas doof, Windows Server Host: ~5h -.-
Per Passwort bin ich von außerhalb nicht rangekommen, und bis ich den ganzen Kack mit Berechtigungen auf den Keyfiles hatte, hatte ich die zweite Installation von OpenSSH drauf...

Das mit dem JumpHost versuche ich morgen. Sollte aber erstmal kein Problem sein, solange "vm-bbb-123.yolonet.works" nur vom JumpHost gesehen werden muss?
Allerdings ist das auch momentan nicht der Fall, das kann ich aber mit fixen IPs im internen Netz + Eintragungen in der Hostfile des (jump)Host erledigen ?

Wenn ich es aber jetzt ermöglichen wollte per RDP auf die VMs zu kommen?
Oder ist es möglich direkt auf das "Hyper-V-RDP" zu kommen? (Also wenn ich mich lokal mit einer VM verbinde) ?
(Edit: https://www.windowspro.de/wolfgang-sommergut/hyper-v-vms-verbinden-ueber-vmconnect-remotedesktop - lese ich mir auch morgen genauer durch)


Edit:
Habe Neuigkeiten von meinem Vorgesetzten, in unserem Adressbereich konnte er mir 5 IPs zuordnen, damit hat sich die NAT-Problematik (vorerst) erledigt.
Das zweite NIC konnte ich jetzt für das External vSwitch verwenden, somit habe ich die eine Karte für den Host, die zweite für die VMs (ausschließlich) und als Fallback das "irgendwie NAT" übers interne v-Switch.
 
Zuletzt bearbeitet:
Edit: irrelevant, Tippfehler + Blindheit
Ich bin mir nicht sicher, aber irgendwas geht schief.
Die Windows VM habe ich problemlos konfiguriert.
Jetzt beim alpine, bekomme ich das zweite (bzw zum testen auch dritte) Interface nicht gesetzt.
(hier waren 2 Screenshots, die gezeigt haben wie ich "address" mit einem "d" geschrieben habe -.-
Das, was ich manuell setze, wird nicht eingelesen? Hatte es auch mit /24 statt des netmask Eintrags probiert.

Kann es sein, das ich über den external v-Switch nur eine IP abgreifen kann?
 

Anhänge

  • 1628617332010.png
    1628617332010.png
    7 KB · Aufrufe: 296
  • 1628617394174.png
    1628617394174.png
    24,9 KB · Aufrufe: 303
Zuletzt bearbeitet:
Ok. Jetzt habe ich doch die einfache Variante (Ubuntu streikt mit den Netzwerkeinstellungen, alpine läuft wie ne 1) aber im prinzip passt das.

Damit könnte ich das Thema schließen, aber eine gemeinsame Freigabe wäre auch schon schön.
Da die Server jetzt aber im Netz erreichbar sind, will ich nicht einfach eine "allgemeine" Ordnerfreigabe machen - lieber etwas, worauf nur die VMs Zugriff haben, Freigaben nur an einen Netzweradapter gibt es ja (??) nicht.

  • Laufwerk in VMs einbinden: funktioniert nur mit physischen Laufwerken, Netzlaufwerke zählen leider nicht. Ich würde gerne vermeiden das eine Datenlaufwerk komplett einzubinden - zumal das vermutlich auch wieder nur auf einer VM geht ? Auch Neu Partitionieren möchte ich ungern.
  • VHDX/VHD als geteilte virtuelle Festplatte führt mich zu einem Fehler, dass mein Speicher das nicht unterstützt - etwas Google später habe ich erfahren, dass man diese wohl in einem separatem Speicherpool aus einem Failover Cluster erstellen muss - das würde wohl auch zuweit gehen... falls es mit der Hardware überhaupt möglich ist
  • Eine VHDX einfach so einbinden funktioniert immer nur mit einer aktiven VM pro Laufwerk

- Eine kleine Alpine VM mit einem Sambaserver - nur im v-internal Switch angebunden, bzw. habe ich gesehen funktioniert das unter Linux, dass der Samba-Server nur an einem Interface "lauscht"
Dass das ganze über das virtuelle Netzwerk muss, klingt wie ein Performance-Hindernis, wird aber für meine Anwendungszwecke nicht zu schlimm sein.

Gibt es da etwas Geschickteres?

---
Edit, Hauptanliegen ist geklärt, alles Weitere ist nur Monolog, deshalb schließe ich das hier ab.
 
Zuletzt bearbeitet:
Zurück
Oben