Warum kann ich keine Xen DomU mit Bridge-Modus-Verbindung anpingen?

7

Ich bin auf einem Debian, der von 7.11 auf 8.5 aktualisiert wurde, also wird das Xen-Paket von 4.1 auf 4.4 aktualisiert.

Ich weiß nicht viel über Netzwerke, aber wenn ich ein solches Diagramm sehe (entnommen aus der Xen Networking- Wiki-Seite), erwarte ich, dass ich 198.51.100.27 mit ping -I xenbr0 198.51.100.27der virtuellen Maschine anpingen kann und umgekehrt ping 198.51.100.1.

Dies ist jedoch nicht der Fall. Ich habe ein sauberes xenbr0mit eingerichtet

# brctl addbr xenbr0
# ifconfig xenbr0 192.168.12.1 netmask 255.255.255.0 up

und in der HVM-Konfigurationsdatei

vif=["mac=11:22:33:44:55:66, ip='192.168.12.2', bridge=xenbr0"]

Nachdem ich die VM mit gestartet habe xl create, ist dies die Ausgabe von brctl show:

bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.feffffffffff       no              vif3.0
                                                        vif3.0-emu

Ich verbinde mich mit SPICE mit der VM und konfiguriere sie wie folgt:

Geben Sie hier die Bildbeschreibung ein

Und da ich nur versuche, das Standard-Gateway zu pingen, gehe ich davon aus, dass keine Namensauflösung stattfinden wird.

Mit diesem Setup ping 192.168.12.2 -I xenbr0ergibt sich auf dem dom0

PING 192.168.12.2 (192.168.12.2) from 192.168.12.1 xenbr0: 56(84) bytes of data.
From 192.168.12.1 icmp_seq=1 Destination Host Unreachable

und von der Windows-VM hat ping 192.168.12.1von cmddie Ausgabe

Pinging 192.168.12.1 with 32 bytes of data:
Reply from 192.168.12.2: Destination host unreachable.

was darauf hindeutet, dass die Maschinen keine Ahnung haben, wie sie sich erreichen sollen. Sollen sie nicht miteinander verbunden sein xl create? Warum passiert das?

sikerbela
quelle
1
Ich stimme Ihrer Erwartung zu. Sie haben die Möglichkeit, einen tcpdumpListener auf der Schnittstelle auszuführen, auf die der Ping abzielt. Dies zeigt an, ob die Schnittstelle den ARP-Test empfängt, mit dem der Ping-Host nach der Ziel-IP-Adresse sucht. Und ob es eine ARP-Antwort sendet. (Sie können sehen, wie eine Anfrage aussieht, wenn Sie tcpdump auf dem Ping'ing-Host ausführen.) Beispielsweise erfasst tcpdump Pakete, bevor Firewall-Regeln angewendet werden. Es ist gut, es in beide Richtungen zu versuchen, wie Sie es mit einem einfachen Ping-Test getan haben ... obwohl es möglicherweise am einfachsten ist, eine solche Paketerfassung auf Linux-Seite zu erhalten.
Sourcejedi
Wie ich sehe, können beide Seiten ARP-Tests senden, die Windows-VM fragt, wer 192.168.2.1 hat, und der Debian Dom0 fragt, wer 192.168.2.2 hat, aber keiner erhält eine Antwort. Ich weiß nicht, wie ARP-Antworten aussehen, aber ich habe sicher nichts gesehen, das so aussah wie "Ja, diese MAC-Adresse hat die IP, nach der Sie gefragt haben"
sikerbela
Sie haben gerade "die Windows-VM" erwähnt. Ich würde vorschlagen, diese Informationen im Titel sowie mindestens einmal in der Frage hinzuzufügen. Stellen Sie sicher, dass Sie angeben, welche Windows-Version und welche Shell Sie in Windows verwenden!
vergessenstackxpassword
Entschuldigung für die Komplexität - und ich habe auch keine Ideen -, aber der interessantere Teil IMO war, ob die ARP-Sonde am Ziel empfangen wird. Das heißt, wenn sie an beiden Enden empfangen werden können, zeigt dies, dass die Brücke tatsächlich einige Pakete weiterleitet. ARP-Sonden sind zwar insofern etwas Besonderes, als sie an die Broadcast-Adresse anstatt an eine bestimmte Ethernet-Adresse gesendet werden.
Sourcejedi
Ich habe gerade entdeckt die ARP - Sonden tun erreichen die vif und die vif tut reagieren mit „192.168.2.2 ist um 11:22: ...“ , wenn sie von der Dom0 Pingen aber pingimmer noch sagt Destination Host Unreachable. Protokolle auf dem Weg.
Sikerbela

Antworten:

1

Wenn alles richtig eingerichtet ist, sollten Sie problemlos pingen können.

Probieren Sie zunächst die empfohlenen Konfigurationen aus:

Wenn Sie nur untersuchen möchten, wie die Routen funktionieren, können Sie anstelle von HVM, wie Sie bereits erwähnt haben , ein paravirtualisiertes Setup (PV) vornehmen . Wenn Sie sich jedoch an HVM halten, stellen Sie sicher, dass die Treiber für Windows installiert sind. Dies alles wird ganz oben im Xen-Handbuch beschrieben . Außerdem wird erläutert, wie eine MAC-Adresse zugewiesen wird. Die MAC-Adresse in der Veröffentlichung zum Zeitpunkt des Schreibens ist ungültig. Dies ist manchmal für virtuelle Situationen in Ordnung, jedoch nicht für jede Konfiguration.

Wenn Sie Ihr xenbr0 auf dem Host einrichten , ersetzt die Bridge im Wesentlichen die eth0-Schnittstelle auf Debian-basierten Systemen. Es ist wahr, dass ( aus dem Xen-Handbuch ) eth0 optional ist. "Durch Weglassen des physischen Ethernet-Geräts kann ein isoliertes Netzwerk erstellt werden, das nur Gastdomänen enthält." Die Beispiele im Handbuch sowie Ihr Beitrag hier sind jedoch nicht so formuliert Weg. Auch für zukünftige Leser in einem virtuellen Client der Fedora-Familie sowie unter Windows finden Sie in der gesamten Dokumentation leicht abweichende Konfigurationsanforderungen. Dies klingt speziell nach Ihrem Problem, es sei denn, Sie werden durch eine Firewall, TCP-Wrapper oder etwas anderes blockiert, das im ursprünglichen Beitrag nicht erwähnt wurde.

Bestätigung

In Windows können Sie beispielsweise die Netzwerkeinrichtung überprüfen mit ipconfig /all.

In den Xen-Beispielkonfigurationen von derselben Website, auf die wir beide bereits verwiesen haben, werden im Folgenden sowie andere Konfigurationen für den Host vorgeschlagen. Geben Sie beispielsweise alle folgenden Zeichen ein, ohne den ersten Teil zu überspringen.

Beispiel 2: Ein einzelnes Bridged-Netzwerk mit eth0, das mit einer statischen lokalen IP-Adresse konfiguriert ist

iface eth0 inet Handbuch

iface xenbr0 inet statisch

    bridge_ports eth0
    address 192.168.1.2
    broadcast 192.168.1.255
    netmask 255.255.255.0
    gateway 192.168.1.1

Sie können dies mit ifconfigund routeauf Ihrem dom0 und dom1 oder ähnlichen Tools auf dem Host bestätigen , wie im obigen Link erläutert, und sicherstellen, dass alles korrekt konfiguriert ist.

Grundlegende Optimierungen

Wenn Sie sicherstellen möchten, dass weder das Internet (noch andere Teile eines Netzwerks im Allgemeinen) erreicht werden, als das physische Kabel natürlich vom Stromnetz getrennt zu halten, können Sie das Standard-Gateway auf 0.0.0.0 ändern und dann eine "Route" hinzufügen "(eine Box sollte in den meisten Network ManagerGUIs im unteren Stil direkt darunter sein ), mit derselben Client-IP-Adresse und Subnetzmaske, aber dann mit der Adresse des Hosts als Gateway. In einigen GUIs gibt es sogar eine Box mit der Aufschrift "Diese Verbindungsroute nur für das lokale Netzwerk zulassen".

Das Hinzufügen einer "Route" in Ihrem Windows-Client kann auch als Problemumgehung dienen, um Ihr ursprüngliches Problem zu lösen.

vergaßstackxpassword
quelle
Warum sollte auf eth0sein? Sollte ich nicht erwarten, dass die Maschine mit den inneren virtuellen Maschinen verbunden ist, auch wenn sie keine externe Konnektivität oder gar keine physische Verbindung hat?
Sikerbela
In Xen liegt die Bridge über einem vorhandenen physischen Gerät, sodass die virtuellen Geräte in das Netzwerk gelangen können. Ich verstehe, worauf Sie theoretisch hinaus wollen, aber wenn alles richtig eingerichtet ist und nichts es blockiert, sollte es funktionieren. Ich habe den Satz früher in meiner Antwort zu eth0 "up" aktualisiert. Ich bezog mich auf "... entferne die IP-Einstellungen von eth0 und verschiebe sie auf die Bridge-Schnittstelle. .... eth0 fungiert lediglich als physischer Uplink von der Brücke, so dass es keine IP (L3) -Einstellungen darauf haben kann ... "aus der Anleitung.
vergessenstackxpassword
Ich denke, es ist klar in der Frage - es gibt keine eth0in meinem Setup. Es ist nur xenbr0über vifX.0Schnittstellen. Allerdings erwarte ich noch in der Lage zu Ping sein vifX.0und so die xenbr0über sie von den virtuellen ethund umgekehrt, und da es offensichtlich nicht funktioniert, würde ich wissen , warum mag.
Sikerbela
Ja cool, danke für die Klarstellung. Das einzig Wichtige, aber Entscheidende, was ich vorgeschlagen habe, war, dass Sie gemäß der Standard-Xen-Dokumentation eth0 benötigen , zumindest in dem Sinne, dass dies Ihre Schnittstelle ist, die dann in br0 umgewandelt wird. Sie haben immer noch Recht, theoretisch die Frage zu stellen: "Ist es möglich, nur das br0 zu haben?", Kann sich jeder noch damit befassen.
vergessenstackxpassword
Wenn Sie weitere Informationen hinzufügen, hilft dies auch anderen oder mir, diese Antwort zu klären, z. B. wenn Sie Windows verwenden.
vergessenstackxpassword
1

(Kann nicht kommentieren, da dies 50 Wiederholungen erfordert)

Da die Pakete auf dem vif- und dem vif-Teil der Bridge ankommen, besteht der nächste Schritt darin, ebtables und iptables (iptables -L) zu überprüfen, insbesondere wenn / proc / sys / net / bridge / bridge-nf-call-iptables ist 1 und netfilter inspiziert daher Pakete auf der Brücke.

maxf
quelle
Sieht so aus, als könnten Sie es jetzt als Kommentar posten und die Punkte sammeln! Ich glaube , du hast Recht , hier war ich nur sagen , dort oben icmp Block in einer Firewall sein müssen usw.
forgotstackxpassword