01 Einführung in Macvlan
Der vorherige Artikel behandelte mehrere Arten von Linux-virtuellen Netzwerkgeräten: Tap/Tun, Veth-Pair, Bridge. Sie sind im Wesentlichen Netzwerkvirtualisierungslösungen, die von Linux-Systemen bereitgestellt werden, und MacVLAN ist genauer gesagt eine Lösung zur Netzwerkkartenvirtualisierung. Weil MacVlan-Technologie es kann.Eine physische Netzwerkkarte wird virtuell in mehrere virtuelle Netzwerkkarten umgewandelt, was der physischen Netzwerkkarte entspricht, die die Technik mehrerer Schattenklone von einem bis zu vielen durchführt.
02 Wie MacVLAN funktioniert
macvlan ist eine neue Funktion, die vom Linux-Kernel unterstützt wird; unterstützte Versionen umfassen v3.9-3.19 und 4.0+, und 4.0+ wird für die stabilere Version empfohlen. Sie existiert im Allgemeinen in Form von Kernel-Modulen, und wir können beurteilen, ob das aktuelle System sie unterstützt, auf folgende Weise:
Wenn der erste Befehl einen Fehler gibt oder der zweite Befehl nicht zurückkehrt, bedeutet das, dass das aktuelle System MacVLAN nicht unterstützt und der Kernel aufgerüstet werden muss.
MacVlan-Technologie klingt ein wenig wie VLAN, aber ihr Implementierungsmechanismus ist völlig anders. Die macVLAN-Subschnittstelle ist völlig unabhängig von der ursprünglichen Hauptschnittstelle und kann separat mit MAC-Adresse und IP-Adresse konfiguriert werden, während die VLAN-Unterschnittstelle und die Hauptschnittstelle dieselbe MAC-Adresse teilen. VLANs werden verwendet, um Broadcast-Domänen zu trennen, während MacVLANS dieselbe Broadcast-Domain teilen.
Über verschiedene Unterschnittstellen kann MacVLAN auch Verkehrsisolation erreichen. MacVLAN bestimmt, an welche virtuelle Netzwerkkarte das Paket übergeben werden muss, basierend auf der MAC-Adresse des Ziels des Pakets, und dann übergibt die virtuelle Netzwerkkarte das Paket zur Verarbeitung an den oberen Protokollstapel.
03 Vier Modi
Je nach Kommunikationsmodus zwischen MacVLAN-Subschnittstellen gibt es vier Netzwerkmodi für MACVLAN:
- Privatmodus
- VEPA (Virtual Ethernet Port Aggregator) Modus
- Brückenmodus
- Passthru-Modus
Standardmäßig wird der VEPA-Modus verwendet.
3.1 Private
In diesem Modus sind die Unterschnittstellen unter derselben primären Schnittstelle voneinander isoliert und können nicht kommunizieren. Selbst wenn er von einem externen physischen Schalter umgeleitet wird, wird er gnadenlos verworfen.
3.2 Vepa
In diesem Modus muss der Datenverkehr zwischen Unterschnittstellen an einen externen Switch geleitet werden, der 802.1Qbg/VPEA (physisch oder virtuell) unterstützt, über den externen Switch weitergeleitet und dann zurück.
Hinweis: Die 802.1Qbg/VPEA-Funktion bedeutet einfach, dass der Schalter die Haarnadelfunktion unterstützen muss, das heißt, das Datenpaket kann von einer Schnittstelle empfangen und dann zurückgeworfen werden.
3.3 Brücke
In diesem Modus wird die Funktionalität der Linux-Bridge simuliert, aber das Gute an der Bridge ist, dass die MAC-Adresse jeder Schnittstelle bekannt ist und nicht gelernt werden muss. Daher können in diesem Modus die Unterschnittstellen direkt kommunizieren.
3.4 passthru
Dieser Modus erlaubt nur eine einzige Unterschnittstelle, sich mit der Hauptschnittstelle zu verbinden, und muss auf den promiskuitiven Modus gestellt werden, der üblicherweise zum Überbrücken von Unterschnittstellen und zur Erstellung von VLAN-Unterschnittstellen verwendet wird.
3.5 Mactap
Eine weitere ähnliche Technologie wie MacVLAN ist MacTap. Im Gegensatz zu macvlan empfängt mactap das Paket und übergibt es an den Protokollstack, jedoch an eine tapX-Datei, über die die direkte Kommunikation mit dem Benutzer abgeschlossen wird.
04 Praxis
Unter Linux lautet der Befehl zum Erstellen eines MacVLAN wie folgt:
Im Allgemeinen ist die Nutzung von macVLAN allein sinnlos, und es ist meist eine Kombination aus VMs und Containern, um ein Netzwerk aufzubauen. Lass uns den Namespace nutzen, um zu sehen, wie Linux Macvlan verwendet.
Die experimentelle Topologie ist wie folgt:
In meinem System habe ich, zum Beispiel mit der Schnittstelle ENP0s8, zwei Macvlan-Subinterfaces (im Bridge-Modus) erstellt, die IP konfiguriert und sie in zwei Namespaces aufgehängt, um die Verbindung zu testen.
Hinweis: Die IP-Adresse von enp0s8 ist 192.168.56.110/24, und die IP-Adresse der konfigurierten Unterschnittstelle muss ebenfalls aus demselben CIDR-Segment stammen.
Nach zwei Unterschnittstellen pingen Sie es:
Man sieht, dass es gepingt werden kann, aber wenn man den oben genannten Modus auf einen anderen Modus wechselt, funktioniert es nicht, also überlasse ich es allen zum Ausprobieren (standardmäßig ist der VEPA-Modus).
Außerdem ist MacVLAN in Docker ein wichtigeres Cross-Host-Netzwerkmodell, das im nächsten Artikel behandelt wird.
05 Zusammenfassung
MACVLAN ist eine Netzwerkkartenvirtualisierungstechnologie, die eine Netzwerkkarte auf mehrere Netzwerkkarten virtualisieren kann.
Die vier Kommunikationsmodi von MacVLAN, wobei der gebräuchlichste Modus Bridge ist.
Denk darüber nach:
Ähnlichkeiten und Unterschiede zwischen Macvlan Bridge und Bridge Es gibt eine ähnliche Technologie, bei der mehrere virtuelle Netzwerkkarten dieselbe MAC-Adresse teilen, aber unabhängige IP-Adressen besitzen.
Ursprüngliche Adresse:Der Hyperlink-Login ist sichtbar.
|