Tumbleweed mit virtuellem Win7 in KVM / qemu verbinden (Bridge? Samba?)

Hinweis: In dem Thema Tumbleweed mit virtuellem Win7 in KVM / qemu verbinden (Bridge? Samba?) gibt es 24 Antworten auf 3 Seiten. Der letzte Beitrag () befindet sich auf der letzten Seite.
  • Hallo,


    ich habe unter Tumbleweed ein Win7 in KVM/qemu laufen.
    Insgesamt sind 4 physikalische Rechner (MAC, Win7 PC, Leap 42.2, Tumbleweed) verbunden, auf den beiden Suse-Maschinen ist je ein virtuelles Win7.
    Alle IP-Addressen werden von der Fritz-Box (7490, Standardgateway nach draußen) statisch zugewiesen.


    Den Tumbleweed-Rechner baue ich gerade neu auf.
    Als ich KVM über Yast installiert (nicht die Installation der Software, sondern "Create virtual machines with KVM") habe kam bei der Autokonfiguration eine Fehlermeldung ('Detail: undefined local variable or method 'log' for # - Did you mean? load'). Ich habe es dann nochmal laufen lassen, mit der gleichen Fehlermeldung.
    Die vm funktioniert trotzdem gut und das W7 kann auch ins Internet und mit dem Leap-Rechner und dem Windows-PC kommunizieren.


    Aber intern funktioniert es nicht.
    SAMBA ist nicht perfekt aufgebaut, aber es funktioniert erst mal. Ich komme auf den Leap- und den Win7 - Rechner (und den HP-Drucker), auf den Rechnern je mit identischem Usernamen und Passwort.
    Zugriff aus allen Richtungen. Auch vom virtuellen Win7 aus.


    Soweit ich bisher analysieren kann stimmt etwas mit den bridges nicht. Ich habe jetzt drei davon, mindestens 2 vermutlich aus den KVM-Starts, virbr0 und virbr1, ohne MAC-Adresse und Zuordnung.
    Weiter komme ich aber mit meinen bescheidenen Kenntnissen nicht. Und ich scheue mich, frei zu probieren, weil ich zu erinnern glaube daß in der richtigen Konfiguration auch der Weg ins Internet dann über die bridge geht.
    Was hieße, wenn ich da einen Fehler mache schneide ich mich möglicherweise von eurer Hilfe ab und von Information überhaupt.


    Ich poste jetzt mal nur ein paar Basics, weiß nicht was an Info noch wichtig wäre und will nicht zu müllen, ist eh schon lang. ping

    Code
    7470tw:~ # # 192.168.178.22 ist IP von W7 virtuell
    7470tw:~ # ping 192.168.178.22
    PING 192.168.178.22 (192.168.178.22) 56(84) bytes of data.
    ^C
    --- 192.168.178.22 ping statistics ---
    1 packets transmitted, 0 received, 100% packet loss, time 0ms
    
    
    7470tw:~ #


    ping geht auch rückwärts nicht, also W7 -> tumbleweed.


    ifconfig


    macvtap ist ein Gerät, daß qemu benutzt, die HW-Addresse ist die gleiche.
    brctl show

    Code
    7470tw:~ # brctl show
    bridge name     bridge id               STP enabled     interfaces
    br0             8000.2e9c3673cb3c       yes
    virbr0          8000.5254004a2622       yes             virbr0-nic
    virbr1          8000.525400e60a62       yes             virbr1-nic
    7470tw:~ #

    brctl showmacs


    Code
    7470tw:~ # brctl showmacs virbr0
    port no mac addr                is local?       ageing timer
    7470tw:~ # brctl showmacs virbr1
    port no mac addr                is local?       ageing timer
    7470tw:~ # brctl showmacs br0
    port no mac addr                is local?       ageing timer
    7470tw:~ #

    arp

    Code
    7470tw:~ # arp
    Address                  HWtype  HWaddress           Flags Mask            Iface
    dellffin.fritz.box       ether   d0:67:e5:3a:c9:43   C                     enp0s31f6
    fritz.box                ether   08:96:d7:e7:c4:8b   C                     wlp1s0
    Mobidell.fritz.box               (incomplete)                              enp0s31f6
    fritz.box                ether   08:96:d7:e7:c4:8b   C                     enp0s31f6
    Galaxy-S9.fritz.box      ether   6c:c7:ec:c4:1c:57   C                     enp0s31f6
    7470tw:~ #

    Mobidell ist das virtuelle Win7.


    Ich komme da nicht weiter, bin für Hilfe dankbar.

    Dell Latitude 7470, 4 x i7 6600U, 32 GB, 1TB NVMe

    Tumbleweed, KDE Plasma

    Einmal editiert, zuletzt von baumkraxler ()

    Für den Inhalt des Beitrages 139038 haftet ausdrücklich der jeweilige Autor: baumkraxler

  • Ok, ich versuche es mal. Ich blicke noch nicht vollständig bei Dir durch, aber es gibt einen hervorragenden Artikel aus der ehemaligen Easylinux, wo kochrezeptartig KVM und das Aufsetzen der Bridge beschrieben wird.
    Leider ist der Artikel nicht in der Community-Edition nicht drin (d.h. zum freien Download). Er heisst "Virtuale Maschinen mit KVM und Xen" Seite 54. Das wäre für Dich die optimale Lektüre, um überhaupt mal Boden unter den Füssen zu kriegen.
    EasyLinux-CE-2018-01.pdf


    Ok, das hilft Dir jetzt nicht.


    Grundsätzlich ist es so, dass die Physikalischen Devices der Suse-Rechner ( eth0, eth1 ... ) auf die Bridge (br0) gemappt werden. D.h. die br0 hat eine IP (das ist bei Dir oben nicht so ) . In dem Virtuellen Client steht dann unter NIC in der Info: Netzwerkquelle: Bridge br0 : Hostgerät eth0 . Ich verstehe das so, dass die Devices der virtuellen Maschine ( eth0 ... ) auf die br0 gemappt werden und damit im Netzwerk befindlich sind, in der br0 residiert. Damit müssten sich dann Host und Virtuele Maschine gegenseitig pingen können. Die IP, die in der virtuellen Maschine (auf eth0 ) vergeben wird, muss zu dem Netzwerk auf br0 passen.


    Bei Dir hat enp0s31f6 eine IP, nicht die Bridge. Und enp0s31f6 korrespondiert mit wlp1s0 . Ich denke enp0s31f6 muss slave der Bridge werden.


    So weit erstmal.

  • Ok, das hilft Dir jetzt nicht. Stimmt, Seite 54 ist nicht drin.


    Mein "alter" Rechner hat das gleiche Setup, da ging die KVM-Kreation vor 2 Jahren flüssig durch und hier (Tumbleweed) läuft auch der identische W7-Klon (habe das Image kopiert).
    Dort, also auf Leap, sieht die ifconfig so aus:

    also kein br0, hier virbr0. Im Übrigen mit gleicher IP wie virbr1 auf dem neuen Tumbleweed.
    Vielleicht sollte ich virbr1 gleich mal löschen?


    Ansonsten: enp0s31f6, IP 192.168.178.20 ist LAN, wlpls0, IP 192.168.178.21 ist WLAN.
    Der W7 - KVM - Host hat IP 192.168.178.22/24.

    Dell Latitude 7470, 4 x i7 6600U, 32 GB, 1TB NVMe

    Tumbleweed, KDE Plasma

    Für den Inhalt des Beitrages 139072 haftet ausdrücklich der jeweilige Autor: baumkraxler

  • Update.
    Ich habe mich, nach einiger Lektüre im Netz, mal getraut etwas zu probieren. Habe ip link entdeckt.
    Habe versucht, dieser Anleitung Suse Anletung KVM zu folgen, S 107 ff.
    Mit sehr wechselhaften Ergebnissen, teils war der Host komplett abgetrennt, mal der Wirt (schwitz).
    Verschiedenes war mal der Master von Verschiedenem... ...immerhin habe ich jetzt etwas Vertrauen, meine Internetverbindung schon wieder hin zu kriegen, auch wenn dazu ein par mal reboot nötig war.


    Aber sinnvoll und zielführend (außer daß ich ein kleines bisschen übe) scheint mir das nicht zu sein.


    Die ifconfig von meinem alten Lappi ist ja schon oben, ich fand ip link show dann noch evtl. interessant:

    Da dort das System funktioniert könnte man es als Vorlage nehmen?


    Ansonsten habe ich leider etwas Chaos produziert mit meinen Versuchen.


    Der macvtap-Adapter ist in ifconfig nicht mehr vorhanden, der W7-Host benutzt ihn aber noch erfolgreich für die Kommunikation nach außen.
    virbr0 und virbr1 sind aktiv, Networkmanager zeigt sie als verbunden an (keine Ahnung, womit).
    br0 ist auch aktiver, Network-Manager sagt "Netzwerkadresse wird bezogen", aber dabei bleibt es.


    ifconfig neu:


    und ip link:

    Dell Latitude 7470, 4 x i7 6600U, 32 GB, 1TB NVMe

    Tumbleweed, KDE Plasma

    Für den Inhalt des Beitrages 139073 haftet ausdrücklich der jeweilige Autor: baumkraxler

  • Mein Verständnis von Bridging ( Trunking, Bonding mal ausgeschlossen ).


    Hier mal eine Gedankenskizze. Die Erklärung s.u.:


    ====================================
    br0 (IP1) --- eth0 (noIP) (1.Netdevice des Hosts)
    .............|
    .............--- vnet0 (IP12) (Netdevice 1.Virtueller Host)
    .............|
    .............--- vnet1 (IP13) (Netdevice 2.Virtueller Host)
    ...



    br1 (IP2) --- eth1 (noIP) (2.Netdevice des Hosts)


    ====================================


    noIP = ...
    IP1 = 170.XXX.XXX.001
    IP12 = 170.XXX.XXX.002
    IP13 = 170.XXX.XXX.003


    IP2 = 171.XXX.XXX.001


    br - Bridge-Device
    eth - Physikalische Devices
    vnet - Virtuelle Devices


    =====================================



    Also grundsätzlich verhält es sich wie oben skizziert.


    br0 ist die Bridge . eth0 wird als SlaveDevice mit der Bridge br0 verbunden.
    br0 hat die IP des Hosts und aus Sicht des Hostes hat eth0 keine IP mehr. Ich verstehe das so, dass br0 und eth0 hier parallel geschaltet sind und eth0 der erste "Kunde" auf der Bridge br0 ist.


    Bei Installation einer Virtuellen Maschine entsteht ein neuer Eintrag auf der Bridge mit Namen vnet0.
    Die IP von vnet0 setzt der erste Virtuelle Host selbst (statisch oder DHCP), dessen internes Netzdevice ebenfalls auf br0 geschaltet ist. vnet0 ist also der zweite "Kunde" auf der Bridge br0.


    Die IPs von br0 liegen alle auf demselben IP-Bereich, hier 170.XXX.XXX.00Y ( Y=1,2,3..)


    Ist im Host-Rechner eine weitere Schnittstelle eth1 vorhanden, lässt sich eine weitere Bridge installieren, br1. Usw.



    Command-> : brctl show


    bridge name bridge id STP enabled interfaces
    br0 8000.001999ff0bd7 no eth0
    .......................................vnet0
    br1 8000.001999ff0bd6 no eth1


    Das spiegelt sauber die oben beschriebene Konfiguration wieder.



    Was mir bei Deiner Konfiguration auffällt:
    =============================


    o) br0 hat keine IP, ich vermute, dass das der Name Deiner Bridge ist.


    o) enp0s31f6 hat eine IP (192.168.178.20), die IP müsste die Bridge haben und enp0s31f6 müsste ein SlaveDevice von br0 sein.
    (Die IP wird eigentlich von ifconfig auf dem Host enp0s31f6 nicht angezeigt)


    o) Das Ethernet-Device (enp0s31f6) und das WLAN-Device (wlp1s0) beherbergen dasselbe Subnetz.


    enp0s31f6 IP 192.168.178.20
    wlpls0 IP 192.168.178.21


    Der Sinn erschliesst sich mir nicht. Ich würde erwarten, dass das Ethernetdevice und das Wlan-Device unterschiedliche Subnetze sind, also müsste etwa wlpls0 IP 192.168.179.21 haben (statt X.X.178.X ).


    Wenn schnelle Datenübertragung gefragt ist, ist das Kupfernetz sicher schneller ( über enp0s31f6 , Routing über 192.168.178.0 ).
    Wenn Verbindung ins Internet gefragt ist, ist WLAN über den Internetrouter eine gute Wahl ( über wlpls0 ).
    Aber Vorbedingung ( oder zumindest ist es sauberer ) sollten enp0s31f6 ( eignetlich br0 ) und wlpls0 ( eignetlich br1 ) unterschiedliche Subnetze sein, damit das Routing sauber ist.


    Bei Deinen Devices virbr0 und virbr1 kann ich nur raten, dass das weitere Bridges sind. Wozu?
    Klar kann man weitere Bridges definieren, deren IPs nicht auf dem Netzwerk der Hauptbrigde (brX) liegt. Das macht aber nur Sinn, wenn die mit virbrX verbunden Virtuellen Hosts keine Verbindung nach aussen haben sollen, sondern nur untereinander kommunizieren sollen.


    Also entsprechend obiger Skizze müsste Deine Netzkonfiguration so aussehen:


    br0 () --- enp0s31f6 (noIP) (1.Netdevice des Hosts)
    .........|
    .........--- virbr0 (IP im SubNetz br0) (Netdevice 1.Virtueller Host br0)
    .........|
    ............



    br1 () --- wlpls0 (noIP) (2.Netdevice des Hosts)
    .........|
    .........--- virbr1 (IP von SubNetz br1) (Netdevice 1.Virtueller Host auf br1)
    ...


    Ich habe 4 physikalische Hosts mit ca. 20 Virtuellen Hosts laufen. Alles arbeitet korrekt ... ich hoffe, ich habe das einigermassen verständlich erklärt und Dein Problem korrekt verstanden.

  • Alles richtig.


    Und zumindest eine Vbridge wird gebraucht.
    Die wird intern verwendet, um z.B. mittels Spice- Protokoll die VNC Verbindung der VM zum Host zu beherbergen.


    So eine V-Bridge wird per Default angelegt.
    Kann man natürlich auch anders konfigurieren.
    Bei der Überfülle an V- Bridges kann man prima Unsinn treiben.
    Z.B. für jeweils ein Paar VMs ein eigenes, abgeschottetes Netzsegment zu haben, und die Kommunikation nach außen mittels Routingtables basteln.
    Wirklich brauchen tut man das eher nicht, weil es übermäßig und sinnlos den Netsetup verkompliziert.

  • ich hoffe, ich habe das einigermassen verständlich erklärt

    absolut, und sehr anschaulich, 1000 Dank!


    Das Ethernet-Device (enp0s31f6) und das WLAN-Device (wlp1s0) beherbergen dasselbe Subnetz.

    Das hätte mir, nachdem ich gerade erst ein Buch zu Grundlagen der Netzwerktechnik gelesen habe, auffallen können, daß das wohl keinen Sinn macht.
    Habe ich aber nicht dran gedacht. Ich habe mich an der FritzBox orientiert (nach Reset auf Werkseinstellungen), die automatisch alle LAN- und WLAN-Verbindungen dynamisch ins selbe Subnetz gestellt hat.
    Und habe dann ein schlichtes System gestrickt, unsere 4 Menschen mit jeweiligen Geräten statisch zuzuordnen.


    Diese Tabelle werde ich also zuerst ändern, dann mal versuchen das bridge - interface setup sinnvoll zu stricken und dann mal weiter sehen.
    Ich muss mich da noch schlauer machen, bisher würde ich das bei brctl und ip link tun, gibt es da noch andere | nötige | bessere Befehle und Einstiege für?


    Betreffs der IP-Ranges, gibt es da Unterschiede, welchen Bereich ich nutze (also 192.168.x.x oder 10.10.x.x oder ..?)
    Ich würde mir natürlich einen suchen, der als Standard für diesen Zweck vorgesehen ist, auch da schaue ich noch mal, aber soweit ich das verstehe sind es ansonsten letztlich nur Zahlen (das mit den getrennten Subnetzen ist mir, denke ich, klar).

    Bei Deinen Devices virbr0 und virbr1 kann ich nur raten, dass das weitere Bridges sind. Wozu?

    Ich vermute, die hat Yast angelegt als ich mit "Create Virtual Machines" das Qemu/KVM-Setup angestoßen habe.
    Da kam ja dann die eingangs erwähnte Fehlermeldung, deswegen meine -Vermutung- , die wurden zwar angelegt aber nicht mehr sauber konfiguriert/verbunden.


    Ich werde also mal aufräumen /sortieren und dann weiter sehen.
    Alles ist mir noch nicht klar, u.A. wie ich dem virt. Host die richtige IP mitgebe und ob und wie ich mich um

    Und zumindest eine Vbridge wird gebraucht.
    Die wird intern verwendet, um z.B. mittels Spice- Protokoll die VNC Verbindung der VM zum Host zu beherbergen.

    kümmern muss. Was ist eine VBridge (Netzsuche führt ganz woanders hin)? Nachdem mein Win7 ansonsten ja gut läuft müsste das ja installiert sein, sonst hätte ich doch kein GUI?
    Und schließlich, damit ich mich auf meinem Gerät auch auskenne, wie kann ich die erkennen und identifizieren?


    Ich hab jetzt leider erst mal Brot-Arbeit vor mir, melde mich aber, sowie ich weiter bin.
    Und nochmals Dank für die Unterstützung.

    Dell Latitude 7470, 4 x i7 6600U, 32 GB, 1TB NVMe

    Tumbleweed, KDE Plasma

    Für den Inhalt des Beitrages 139130 haftet ausdrücklich der jeweilige Autor: baumkraxler

  • Eine Vbridge ist schlicht eine Bridge, die halt einfach nur von den VMs verwendet wird.
    Nichts besonderes, und erst recht kein korrekter Term, der dezidiert irgendetwas bezeichnen/definieren würde.


    Und wie schon geschrieben: Selbst die VNC Verbindung mittels Spice zwischen VM und Host, um die Fenster darstellen zu können, ließe sich anders bewerkstelligen.
    openSUSE nennt halt die Bridge gerne vir-br*.
    That's all.

  • Update.
    a) Subnetze: Wenn ich LAN und WLAN in verschiedene Subnetze setze bedeutet das, daß ich z.B. nicht drucken kann wenn ich nicht am Kabel hänge (Drucker ist verkabelt) und daß ich von Rechner am WLAN zu Rechner am LAN keine Verbindung habe, so ich das nicht wieder separat irgendwo bridge / route / ?
    Ich neige dazu, das erst mal so zu lassen, weil ich außer teils unnötiger Aufmerksamkeit von devices keinen ernsthaften Nachteil sehe und o.A. features zunächst behalten mag. Kümmere mich gerne drum, etwas später das Netz richtig sauber zu machen. Ich bitte um Korrektur, wenn das irgendwie problematisch ist.


    b) Ich brauche konkrete Hilfe, weil ich mir unverständliche Ergebnisse habe. Nach Lektüre von manpages (und das ist für mich chinesisch mit bayrischem Akzent <den ich verstehe>) und Netzanleitungen begann ich erst mal aufzuräumen, d.h. die virbr0 und virbr1 zu entfernen und wollte "from the scratch" aufbauen.


    So sah es also vorher aus:

    Und dann habe ich das gemacht, samt Ergebnis:

    Ich würde nicht die ganzen Listen posten wenn ich nicht beweisen wollen würde, daß ich das soweit - irgendwie aber doch nicht richtig? - gemacht habe.
    Nach einem reboot war aber alles wieder im Vorher-Zustand. Schwöre!
    Auch die von mir mittels 7470tw:~ # ip link add name fbr0 type bridge angelegte bridge war wieder weg.
    Eine ominöse br0 taucht hier nicht auf, Network-Manager sucht aber beständig, sie zu verbinden.
    Der Versuch, enp0s31f6 in flan0 umzubenennen gelang mit ip link set enp0s31f6 name flan0 unter Abtrennung der Internetverbindung bis zum reboot, die Bearbeitung von /etc/udev/rules.d/70-persistent-ipoib.rules hat (trotz reboot) nicht geändert.



    Jetzt, so nach 6h, raucht mir der Kopf und ich glaub ich komme da allein nicht weiter. Muss ich das in eine Konfig-Datei / Startscript schreiben? Wo sind die Dinger gespeichert?

    Dell Latitude 7470, 4 x i7 6600U, 32 GB, 1TB NVMe

    Tumbleweed, KDE Plasma

    Für den Inhalt des Beitrages 139218 haftet ausdrücklich der jeweilige Autor: baumkraxler

  • sorry, das war vielleicht etwas viel heute früh, ich war ein wenig drüber...


    Ich wäre dennoch sehr dankbar, wenn ich vielleicht in kleineren Schritten angeleitet würde.


    Info ist ja schon etwas im obigen Post, bräuchte es noch etwas?

    Dell Latitude 7470, 4 x i7 6600U, 32 GB, 1TB NVMe

    Tumbleweed, KDE Plasma

    Für den Inhalt des Beitrages 139241 haftet ausdrücklich der jeweilige Autor: baumkraxler