Ich habe gerade viele verschiedene Wege gefunden, um KVM-Netzwerke aufzubauen. Aber ich stecke fest, was der richtige Weg ist, es zu tun. Ich entdeckte, dass openstack macvtap für die Vernetzung von Neutronen verwendet. Und es sieht gut aus.
Aber was ist der Unterschied und warum ist jeder Weg zu benutzen?
Weg 1 [ALT? TUN / TAP]
http://www.shakthimaan.com/installs/debian-tun-tap-setup.html
/--------\ /----\ /----\ /----\ /--------\
|Internet|---|eth0|---|br0 |---|tap0|---|Guest NIC
\--------/ \----/ \----/ \----/ \--------/
Veraltet, richtig?
Weg 2 [Bridge + Vnet] <- Das macht virt-manager
http://www.linux-kvm.com/content/using-bridged-networking-virt-manager
Grundsätzlich erstellen Sie eine Bridge-Schnittstelle mit Ihrer physischen Schnittstelle in und
auto br0
#iface br0 inet dhcp
iface br0 inet static
address 172.16.0.100
network 172.16.0.0
netmask 255.255.0.0
broadcast 172.16.255.255
gateway 172.16.0.1
bridge_ports eth2
bridge_stp off
bridge_fd 0
bridge_maxwait 0
Wenn Sie eine virtuelle Maschine über virt-manager starten, wird eine vnet-Schnittstelle erstellt und der Bridge hinzugefügt. Zumindest bis ich weiß. Es wird keine Tun / Tap-Schnittstelle benötigt.
Es hat lange Zeit ganz gut funktioniert, aber jetzt mit frech habe ich Probleme gefunden.
https://bugs.launchpad.net/ubuntu/+source/core-network/+bug/1255516
Warum können Sie der Bridge eine neue vnet-Schnittstelle ohne die TAP-Schnittstelle hinzufügen?
Weg 3 [MACVTAP]
Das letzte ist die macvtap-Schnittstelle.
http://virt.kernelnewbies.org/MacVTap
Es kopiert die TUN / TAP-Softwareschnittstelle, aber es funktioniert besser. Ich weiß nicht wie, aber es scheint besser zu sein.
Was ist der Vorteil von macvtap gegenüber dem zweiten Weg?
Was ist besser?
Irgendeine Hilfe dazu?
quelle
Ich würde sagen, es hängt von Ihrem Anwendungsfall ab.
Automatisches Hinzufügen / Löschen von virtuellen Hosts?
Probieren Sie macvtap aus. Sollte auch performanter sein als macvlan (was ungefähr dem Hinzufügen eines weiteren MAC zu einem physischen Gerät gleicht, da dort ankommende Informationen vom Netzwerk-Stack verarbeitet werden) oder eine zusätzliche Bridge, da macvtap den Netzwerk-Stack irgendwie umgeht und ein Tap-Character-Gerät direkt exportiert. Aber nagle mich nicht fest. Abgesehen davon, dass beide (macvlan / macvtap) dieselben verfügbaren Modi (VEPA / Haarnadel, Überbrückung, Privat) verwenden, funktioniert die Haarnadelung nur, wenn Ihr Switch den Modus für reflektierende Relais unterstützt. (Pakete, die am physischen Switch an Port x ankommen, müssen den Switch wieder an demselben Port x verlassen dürfen.)
Da der eth0 (oder der von Ihnen verwendete) bei Verwendung einer Bridge in den Promiscuous-Modus versetzt wird, wird von höheren Durchsätzen für die macvXXX-Modi gesprochen.
Die Modi definieren auch den Grad der Isolation (können sich die VHosts gegenseitig im Verkehr sehen? Wie steht es mit der HV?). Wie das unter der Haube funktioniert weiß ich noch nicht.
Veths (virtuelle Ethernet-Paare) ähneln sich in Bezug auf die Isolierung. Sie definieren zwei virtuelle Schnittstellen, eine wird an eine Bridge angeschlossen, die andere an Ihre VM. Dort erfolgt die Isolierung, indem das VM-Interface in einen eigenen Namespace gestellt wird, sodass die Geräte etwas isoliert sind. Der gesamte Verkehr läuft auf der Brücke zusammen, aber ein Host kann die vNICs eines anderen nicht sehen.
Wenn Sie mit einer Bridge arbeiten, müssen Sie zusätzliche Einstellungen vornehmen. Wenn die Bridge nicht funktioniert, müssen Sie auch alle Verbindungen aufbauen. Wenn Sie die Bridge wieder in Betrieb nehmen, müssen Sie möglicherweise alle virtuellen Schnittstellen erneut mit der Bridge verbinden (oder einfach die gesamte Festplatte neu starten ...).
Fazit: Wenn Sie Ihre Topologie nicht häufig ändern, gehen Sie einfach zu Bridging, da Sie die meisten Informationen online finden, was besser ist als das Lesen von Kernel-Code. Selbst dem iproute2-doc-Paket selbst fehlen die meisten Informationen, die iproute2 tatsächlich hat, selbst wenn Sie hochaktuelle Versionen ausführen.
man ip-tcp_metrics
Informieren Sie sich in den verfügbaren Hilfeseiten oder in ip-crefs.ps ...quelle