Kein Carrier-Fehler beim Erstellen der Tap-Schnittstelle für die KVM-Brücke

Kein Carrier-Fehler beim Erstellen der Tap-Schnittstelle für die KVM-Brücke

Schnittstellen

Ich habe versucht, eine Tap-Schnittstelle zu erstellen (tap210i0) manuell für kvm. Aber jedes Mal, wenn das Tun-Gerät zeigtKEIN TRÄGER.

Ich habe Schnittstelleneno1,eno2,vmbr0Undtap210i0. eno1 und eno2 sindSklavenfürvmbr0.

Hier ist eine Reihe von Befehlen, die ich ausprobiert habe.

ip tuntap add tap210i0 mode tap

ip link set dev tap210i0 up

ip link set tap210i0 master vmbr0

Wenn ich tippe"brctl-Show"es zeigt"tap210i0"als eine der Schnittstellen zusammen mit eno1. Ich habe gegoogelt, aber keine direkte Antwort auf mein Problem gefunden.

Ich glaube, bei mir funktionieren auch Tap-Module.

lsmod | egrep -si tap

Ausgabe :

Tippen Sie auf 24576 1 vhost_net

Beachten Sie, dass alle Arten von Firewalls deaktiviert sind. (einschließlich iptables)

Kann mir jemand einen funktionierenden Vorschlag machen? Bitte schlagen Sie mir nicht vor, das Netzwerk neu zu starten, da ich nur remote auf diesen Server zugreifen kann. Ich konnte nicht auf den physischen Server zugreifen, um das Problem zu beheben.

Antwort1

AKLOPFENDie Schnittstelle stellt eine virtuelle Verbindung mit zwei Seiten bereit:

  • DieSchnittstelleSeite, die von der Netzwerkschicht auf dem Host gesehen wird, die sich im Anwendungsfall des OP häufig im Tap-Modus (Layer 2 Ethernet) befindet und als Bridge-Port eingestellt ist.
  • einunsichtbarSeite AVerfahrennachdem ein Dateideskriptor für ein spezielles Gerät ( /dev/net/tun) geöffnet wurde, das diesem Prozess das Lesen und Schreiben von IP-Paketen (Tun-Modus) oder Ethernet-Frames (Tap-Modus) ermöglicht. Diese Pakete kommen entweder von der Schnittstellenseite des Hosts oder gehen dorthin.

Das Erstellen der Schnittstelle ist nicht der wichtigste Teil. Der wichtigste Teil ist, dass an der unsichtbaren Seite dieser Schnittstelle ein Prozess zum Lesen und Schreiben von Paketen angeschlossen ist. Solange es keinen solchen Prozess gibt, findet keine Kommunikation über diese Verbindung statt. Dies wird natürlich als „NO-CARRIER“ übersetzt, weil es Sinn ergibt. Dies ist ein normales und erwartetes Verhalten.

Drei Beispiele für solche Prozesse, die mir einfallen, sind QEMU (das die Geräteemulation für KVM bereitstellt, einschließlich Netzwerkschnittstellen), OpenVPN und die Tunneloption von OpenSSH.

Normalerweise würde manqemuoder ein Helfer fürqemu, oderlibvirtdErstellen Sie selbst die Schnittstelle (und währenddessen befestigen Sie sie an der Brücke) und Handqemuwas erforderlich ist, um den entsprechenden Dateideskriptor zu verwenden. Die Schnittstelle hätte dann diese unsichtbare andere Seite, die es korrekt handhabt:qemuund es würde melden, dass ein Träger erkannt wurde. Es könnte möglich sein, die manuell erstellte Schnittstelle anqemu(oderlibvirtdusw.) selbst durchführen, aber da es nicht die übliche Methode ist, entsteht zusätzlicher Arbeitsaufwand.

verwandte Informationen