Hallo Luca... On Sun, Apr 11, 2021 at 02:46:19PM +0200, Luca Bertoncello wrote: > Ich will eigentlich *alle* VLANs an die VM weiterleiten, obwohl es > eventuell auch interessant wäre, nur *bestimmte* VLANs weiterzuleiten. > > Mein erstes Versuch war ohne den "bridge-vlan-aware yes" und hat auch > nicht funktioniert. > > Hättest du vielleicht ein konkretes Beispiel, wie ich die > Schnittstelle konfigurieren soll?
Bei der Konfiguration über /etc/network/interfaces kann ich Dir leider
nicht wirklich weiter helfen... Ich habe mal manuell folgendes gemacht:
(ich hab die ip link dev foo up Dinger und die ganze IP Adress Konfig mal weg
gelassen)
Normale Bridge nicht vlan aware:
(host) # ip link add name br0 type bridge
Fake Port veth1 auf dem tagged Pakete rein kommen (entspricht Deinem eth0)
(host) # ip link add type veth
(host) # ip link add link veth0 name veth0.100 type vlan id 100
(host) # ip link add link veth0 name veth0.101 type vlan id 101
(host) # ip link add link veth0 name veth0.102 type vlan id 102
Fake Port in die Bridge:
(host) # ip l set dev veth1 master br0
Virtuelle Maschine
# qemu-system-x86_64 -enable-kvm -machine q35 -m 2G -smp cpus=2 -display
gtk -cdrom ~af/Downloads/alpine-virt-3.13.4-x86_64.iso -netdev
tap,id=nd0,ifname=tap0 -device e1000,netdev=nd0
# ip l set dev tap0 master br0
Mit dem Setup kann ich im Gast der virtuellen Maschine ganz normal vlan
Interfaces aufsetzen eg.
(gast) # ip link add link eth0 name eth0.100 type vlan id 100
(gast) # ip link add link eth0 name eth0.101 type vlan id 101
(gast) # ip link add link eth0 name eth0.102 type vlan id 102
Nach up setzen und konfigurieren von IPs kann ich da vom Gast in den
Host pingen und anders herum.
Die Bridge sieht so aus:
# bridge vlan show
port vlan ids
br0 1 PVID Egress Untagged
veth1 1 PVID Egress Untagged
tap0 1 PVID Egress Untagged
Erst wenn ich vlan filtering auf der Bridge aktiviere:
(host) # ip link set dev br0 type bridge vlan_filtering 1
dann geht nicht's mehr durch.
Man kann dann aber die beiden Ports (tap0 und veth1) als Trunk Ports
konfigurieren. Dafür muss man das default vlan der Bridge entfernen und
die beiden Ports für die erlaubten vlans konfigureren:
(host) # bridge vlan del vid 1 dev veth1
(host) # bridge vlan del vid 1 dev tap0
(host) # bridge vlan del dev br0 vid 1 self
Default vlan ist weg:
(host) # bridge vlan show
port vlan ids
br0 None
veth1 None
tap0 None
Jetzt die vlans als tagged zu den Ports hinzufügen:
(host) # bridge vlan add vid 100 tagged dev veth1
(host) # bridge vlan add vid 100 tagged dev tap0
(host) # bridge vlan add vid 102 tagged dev veth1
(host) # bridge vlan add vid 102 tagged dev tap0
(host) # bridge vlan show
port vlan ids
br0 None
veth1 100
102
tap0 100
102
Damit gehen dann im Gast auch wieder eth0.100 und eth0.102. VLan 101 ist
weiterhin dicht.
Du findest hier:
https://linux-blog.anracom.com/2017/10/30/fun-with-veth-devices-in-unnamed-linux-network-namespaces-i/
Ne sehr gute Erklärung wie das ganze funktioniert. Insbesondere in den
Teilen:
(Grundlagen)
https://linux-blog.anracom.com/2017/11/20/fun-with-veth-devices-linux-bridges-and-vlans-in-unnamed-linux-network-namespaces-iv/
und (Befehle)
https://linux-blog.anracom.com/2017/11/28/fun-with-veth-devices-linux-bridges-and-vlans-in-unnamed-linux-network-namespaces-vi/
Grüsse
Andreas
--
The three chief virtues of a programmer are:
Laziness, Impatience and Hubris. -- Larry Wall
signature.asc
Description: PGP signature
