Erlauben Sie KVM-Gästen im virtuellen Virsh-Netzwerk den Zugriff auf das reale interne Netzwerk

Erlauben Sie KVM-Gästen im virtuellen Virsh-Netzwerk den Zugriff auf das reale interne Netzwerk

Ich habe ein Heimnetzwerk 192.168.1.0 hinter einem Router 192.168.1.1. Eine Reihe vorhandener Linux- und Windows-Hosts befinden sich in diesem Netzwerk, die meisten über kabelgebundene Ethernet-Verbindungen. Ich konfiguriere einen neuen Server, auf dem ein KVM-Hypervisor und 3 Debian-Gäste laufen. Der neue Server verwendet WLAN für die Netzwerkverbindung.

Auf dem Hypervisor habe ich virshein virtuelles Netzwerk wie folgt konfiguriert:

<network>
  <name>virtual</name>
  <forward mode='route'/>
  <ip address='192.168.2.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.2.2' end='192.168.2.255'/>
      <host mac='52:54:00:00:00:01' ip='192.168.2.2'/>
      <host mac='52:54:00:00:00:02' ip='192.168.2.3'/>
      <host mac='52:54:00:00:00:03' ip='192.168.2.4'/>
    </dhcp>
  </ip>
</network>

Dann habe ich in meinem Router eine statische Route von 192.168.2.0/24 zur IP-Adresse des Hypervisors, 192.168.1.41, erstellt.

Als ich die Debian-Gäste erstellt habe, habe ich den Namen des virtuellen Netzwerks und die MAC-Adressen des virshvirtuellen Netzwerks wie folgt angegeben:

--network network=virtual,mac=52:54:00:00:00:01

Das Ergebnis sieht /etc/network/interfacesfür jeden Gast folgendermaßen aus:

iface eth0 inet static
   address 192.168.2.2
   netmask 255.255.255.0
   network 192.168.2.0
   broadcast 192.168.2.255
   gateway 192.168.2.1

Mit dieser Konfiguration funktioniert es meistens. Ich kann:

  • Stellen Sie von Hosts auf 192.168.1.0 eine Verbindung zu beiden Hypervisor-IP-Adressen (.2.1 und .1.41) her.
  • Verbindung von Hosts auf 192.168.1.0 zu jedem Gast herstellen
  • Stellen Sie vom Hypervisor aus eine Verbindung zu jedem Gast her
  • Verbinden Sie sich von jedem Gast mit dem Hypervisor (.2.1) und mit jedem anderen Gast
  • Von jedem Gast aus eine Verbindung zum öffentlichen Internet herstellen
  • Externe (Internet-)Verbindungen vom Router an einzelne Gäste weiterleiten

Wie auch immer, ichkann nichtVerbindung von den Gästen zu jedem Host im Netzwerk 192.168.1.0 herstellen. Ich kann beispielsweise nicht per SSH von 192.168.2.2 auf 192.168.1.31 zugreifen.

A traceroutezeigt ungefähr Folgendes:

traceroute to 192.168.1.31 (192.168.1.31), 30 hops max, 60 byte packets
 1  sol (192.168.2.1)  0.295 ms  0.252 ms  0.243 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *

Ich bin nicht sicher, ob meine Konfiguration falsch ist oder ob möglicherweise ein Problem mit dem WLAN-Zugangspunkt vorliegt.

Ich habe versucht, ebtableseine Konfiguration hinzuzufügen (wie besprochenHier), um eine MAC-Übersetzung durchzuführen, aber das hat keinen Unterschied gemacht. Ich habe versucht, ein separates Bridge-Netzwerkgerät außerhalb von hinzuzufügen virsh, aber die vorhandenen virtuellen Geräte können nicht an andere Bridges angeschlossen werden. Ich habe andere Optionen wie einen Filter oder vielleicht einige iptables-Regeln in Betracht gezogen virsh, aber ich klammere mich an jeden Strohhalm.

Kann jemand einen richtigen Ansatz vorschlagen?

verwandte Informationen