Wie verwandle ich einen Hyper-V-Host in ein Uplink-Gateway für alle seine Gäste?

3

Derzeit habe ich aber die Grundkonfiguration, bei der ich einen einzelnen virtuellen externen Hyper-V-Switch auf meinem Wi-Fi-Adapter erstellt habe, mit dem mein bisher einziger Linux-Gast mit seiner virtuellen Netzwerkkarte verbunden ist.

Dies ist ein Laptop, den ich routinemäßig auf meinen Campus mitnehmen würde, damit die Schüler drahtlos auf das Internet und die Campusnetzwerke zugreifen können, wobei Wi-Fi mit WPA2 + RADIUS-Authentifizierung verwendet wird. Der Schüler wird mit seinem Benutzernamen und seinem Passwort authentifiziert.

Mein unmittelbares Problem auf dem Campus ist, dass, wenn ich den Gast boote und er versucht, seine virtuelle Netzwerkkarte mit DHCP für dasselbe Gateway zu konfigurieren, mit dem der Host verbunden ist, diese die gesamte Uplink-Konnektivität verliert, bis ich Windows neu starte. Ich vermute, dass dies mit der Tatsache zusammenhängt, dass das RADIUS-Authentifizierungssystem auf dem Campus nicht gerne zwei unterschiedliche IP-Endpunkte an meinem Ende hat, die mit einem 802.11-Authentifizierungstoken oder etwas anderem verknüpft sind. Es kann sogar so konfiguriert sein, dass es dies explizit erkennt und verhindert, ich weiß es nicht.

Ein weiteres Problem ist, dass das Gateway, selbst wenn es in der Lage ist, die oben genannten Einstellungen vorzunehmen, normalerweise beide Adressen über DHCP übergibt. Ich habe beobachtet, dass der Gast seine IP-Adresse allzu häufig ändert msgstr "" "wenn vom Host aus eine Verbindung hergestellt werden muss (zum Beispiel über SSH).

In Anbetracht dessen habe ich beschlossen, dass meine Internet-Konnektivität nicht von der Konfiguration eines Uplink-Gateways abhängig sein sollte, und NAT ist meines Wissens die perfekte Lösung dafür. Ein virtuelles NAT-System direkt auf dem Host sollte dies tun, oder?

Wie auch immer, was ich brauche, ist:

  1. Lassen Sie meinen Gast und meinen Host im selben Layer-2- oder LAN-Netzwerk sein. Der Gast ist ein Linux, das ich über SSH erreichen muss, und ich plane auch, einen Hostordner auf dem Gast über SMB bereitzustellen.
  2. Ich möchte, dass sowohl der Gast als auch der Gastgeber dauerhafte Adressen im oben genannten Netzwerk haben, damit ich immer weiß, wo ich von einem zum anderen gelangen kann. Kein DHCP.
  3. Irgendwie muss ich sowohl vom Host als auch vom Gast einen Uplink haben. Ich denke, dass diese Anforderung, zusammen mit den anderen beiden, nachdrücklich ein NAT nahe legen würde, bei dem die Gäste entweder ein Layer-2-Netzwerk oder ein LAN mit dem Host bilden oder bei dem der Host als Router / Gateway für die Gäste fungiert.

Ich habe einen Ethernet- und einen Wi-Fi-Adapter auf dem Host, und obwohl ich häufig Wi-Fi verwende, möchte ich, dass das Uplinken über Ethernet ebenfalls funktioniert.

Ich habe über WinNAT gelesen und bin überzeugt, dass es das ist, wonach ich gesucht habe. Wenn ich jedoch die folgenden Befehle in meiner administrativen PowerShell-Konsole auf dem Host ausführe, bin ich mir nicht sicher, wo ich stehe:

New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex 24
New-NetNat -Name HelloNAT -InternalIPInterfaceAddressPrefix 192.168.0.0/24

Der interne virtuelle Switch ist von früher eingerichtet, Get-NetAdaptersagt mir, der Schnittstellenindex des Switch ist 24, was oben verwendet wurde. Die Debian Linux-VM ist wie folgt eingerichtet /etc/network/interfaces:

iface eth0 inet static
    address 192.168.0.3
    netmask 255.255.255.0
    gateway 192.168.0.1

Ich kann nicht einmal die Gateway-Adresse von der VM aus anpingen oder verfolgen, ganz zu schweigen von WAN-Adressen wie 8.8.8.8(Einer der öffentlichen DNS-Server von Googles).

amn
quelle
Gibt es einen Grund, warum native NAT nicht funktioniert? Als mögliche Alternative vielleicht WinGate , obwohl ich das noch nie in einem Hyper-V-Kontext verwendet habe.
Bob
Ich weiß nicht, warum es anscheinend nicht funktioniert, aber ich hatte es versucht, bevor ich die Frage formulierte. Ich habe jetzt auch dokumentiert, wie ich versucht habe, es einzurichten, ohne Erfolg. WinGate und andere Lösungen von Drittanbietern kommen für mich nicht in Frage.
amn
Im Allgemeinen haben weder 802.11 noch 802.1X (und sein gleichwertiges WPA-Enterprise) etwas mit L3-Protokollen zu tun - es ist lediglich das L2-Gerät, das authentifiziert wird (und es gibt kein "Authentifizierungstoken" als solches). Das jeweilige Netzwerk kann so konfiguriert sein, dass es aktiv verhindert, dass mehrere Hosts eine Verbindung auf andere Weise (z. B. am Gateway) gemeinsam nutzen. Dies ist jedoch keine integrierte Funktion.
Grawity
Während ich noch überlege, wie dies in Hyper-V geschehen soll - damit NAT ordnungsgemäß funktioniert, muss der Host als Router und nicht als Bridge fungieren -, dh die Wi-Fi-Uplink-Verbindung darf nicht Teil der VM sein "switch", und auf dem Host muss die IP-Weiterleitung aktiviert sein.
Grawity
Ich bin nicht mit Hyper-V vertraut, aber wenn Sie VMware Workstation verwenden, können Sie ein virtuelles Host-Netzwerk erstellen, das wiederum einen Netzwerkadapter auf dem Host-Betriebssystem erstellt, und dann in Windows die gemeinsame Nutzung der Internetverbindung verwenden NAT zwischen Ihrer WLAN-Schnittstelle und der VMware-Schnittstelle durchführen. Um über die WLAN-Schnittstelle auf SSH auf der Linux-VM zuzugreifen, unterstützt ICS Portzuordnungen. Es sieht so aus, als hätte Hyper-V eine ähnliche Funktionalität wie VMware in Bezug auf die Erstellung von Netzwerkschnittstellen auf dem Host redmondmag.com/articles/2014/07/24/…
Muh Fugen,

Antworten:

0

Nach einer Pause stellte ich fest, dass mein NAT nicht richtig eingerichtet war, da es eine völlig falsche IP-Adresse zuzuweisen schien, an die ich mich nicht erinnern kann, sie eingestellt oder erfunden zu haben. Der Wert war einfach zu zufällig und ich entschied, dass es sich um eine Art Streuwert handelte. Ich erinnere mich, dass ich alles so eingerichtet habe, wie es Microsoft mir ermöglicht hat. Ich hatte nur noch die Wahl, es noch einmal zu wiederholen.

Ich entfernte das NAT-Netzwerk mit Get-NetNat | Remove-NetNatund entfernte auch die IP-Adressdatensätze vom virtuellen Switch mit Remove-NetIPAddress -InterfaceIndex, sodass ich schließlich nur den nackten Switch und keine damit verbundenen Adressen hatte.

Dann folgte ich der Anleitung erneut und überarbeitete die Angaben. Diesmal stellte ich sicher, dass die von mir zugewiesene Adresse "192.168.0.1/24" dabei blieb. Und das tat es auch.

Alles funktioniert soweit wie erwartet. Dies ist für die Nachwelt gedacht - befolgen Sie den Artikel bei Microsoft und Sie sollten ein funktionierendes NAT haben, wie in der Frage beschrieben. Kein DNS, aber nicht ohne zusätzliche Schritte.

amn
quelle