Am 11.04.2021 um 16:06 schrieb Andreas Fett:
Hallo Andreas
Wichtig ist, dass Du die vlans die durch sollen als "tagged" zu den Port hinzufügst. Die pvid sorgt dafür, dass ungetaggte Pakete die rein kommen vlan 1 als default bekommen. Die "untagged" Einträge strippen dann die angegeben vlan id wieder von den Paketen wenn sie den Port verlassen. Und genau das willst Du nicht. Also ja, Du musst die default Konfig für vlan 1 löschen... kannst dann aber vlan 1 wieder als "tagged" hinuzfügen.
Neuer Tag, neue Versuche, vermutlich weiterhin altes Gehirn, nicht ganz funktionsfähig...
Mir ist heute eingefallen, dass vermutlich die VLAN-Pakete direkt an die VLAN-Schnittstellen gehen. Deswegen habe ich ein VLAN auf meinem PC ausgeschaltet:
ifdown vlan666 # VLAN herunterfahren ifdown gst0 # Bridge zum VLAN 666 herunterfahren
Dann habe ich die VM gestartet und plötzlich konnte ich sie über VLAN 666 erreichen (natürlich von einem anderen Rechner im meinem Netz). Als Gegenprobe habe ich gst0 und vlan666 auf meinem PC wieder gestartet und plötzlich war die VM über VLAN 666 nicht mehr erreichbar, sondern nur weiterhin über VLAN 1.
Gut, dann habe ich das Erkenntnis, dass die Pakete von den VLAN-Schnittstellen "abgefangen" werden, und das Bridge auf eth0 (physische Schnittstelle) wird diese VLAN-Pakete gar nicht bekommen.
Ich habe dann probiert, die VLAN-Schnittstelle nicht mehr an eth0 zu koppeln, sondern an mgmt0 (das Bridge auf eth0, das standardmäßig VLAN 1 nutzt). Leider hat es nicht geklappt. ip link hat mir auch gezeigt, dass vlan666 weiterhin auf eth0 gekoppelt ist, vermutlich hat Linux intern gesehen, dass mgmt0 ein Bridge auf eth0 ist und hat diese Kopplung so gemacht. Also, auch dieser Weg führt nirgendwo hin...
Ich versuche deine Empfehlungen zu verstehen, aber irgendwie kriege ich das nicht hin... Du hast gesagt, ich soll ein Bridge br0 anlegen, dann ein veth (veth0) und die VLANs an veth0 zuweisen. Das habe ich gemacht. Kurioserweise wenn ich veth0 anlege, wird auch ein veth1 angelegt. Dann schreibst du ich soll veth1 (die irgendwie da ist, obwohl ich nicht ganz verstanden habe warum) an br0 zuweisen. Das habe ich auch gemacht.
Bisher habe ich also folgende Befehle ausgeführt:
ip link add name br0 type bridge ip link add type veth ip link add link veth0 name veth0.10 type vlan id 10 ip link add link veth0 name veth0.30 type vlan id 30 ip link add link veth0 name veth0.40 type vlan id 40 ip link add link veth0 name veth0.666 type vlan id 666 ip link set dev veth1 master br0
Und dann denke ich, dass ich nicht mehr lesen kann, denn du spricht plötzlich über eine tap0, die ich nicht habe...
Kannst du mir das noch erklären? Ich glaube, ich sehe etwas Licht am Ende des Tunnels, aber es kann auch ein entgegenkommenden Zug sein...
Danke Luca Bertoncello (lucabert@lucabert.de)