IPv6 Präfix spring über VLANs

Gamienator

Lieutenant
Registriert
Apr. 2011
Beiträge
523
Hey liebe Netzwerker,
ich hab hier ein Phänomen und verstehe nicht wie das passieren kann 😅 Und bevor jemand fragt warum ich das mache: Ich möchte mich weiterbilden und mache deshalb den ganzen Spaß 😅

Also daheim habe ich einen Proxmox Host mit 6 Interfaces (enp2s0 - enp7s0). Auf Proxmox habe ich einen ovs Switch erstellt (vmbr0) der VLAN Aware ist. An enp2s0 mein VDSL Modem angeschlossen das mich über VLAN Tag 7 ins Internet einwählen lässt.

Meine Firewall ist eine pfSense auf der ich bereits die Interfaces entsprechend angelegt habe (vtnet0.100, vtnet0.120 etc.) IPv6 beziehe ich auch, das kann man über Track Interface und dem Präfix einstellen. So hat jedes VLAN seinen eigenen IPv6 Präfix.

Ich habe daheim einige VLANs, VLAN 100, 120, 140, 200, 210. Sieht auch der pfSense entsprechen schön aus. Jetzt kommen wir zu dem Problem was ich habe:

An dem Host selbst habe ich nicht einen Switch angeschlossen, sondern meinen PC Client direkt an enp4s0. Sprich ich muss dann enp4s0 so einrichten, das untagged Traffic auf VLAN ID 100 läuft:

auto enp4s0
iface enp4s0 inet manual
ovs_type OVSPort
ovs_bridge vmbr0
ovs_options vlan_mode=native-untagged tag=100

Auf IPv4 Seite klappt das auch wunderbar! Ich bin in dem von mir definiertem Netz drinnen und kann so den Traffic verschicken wie ich will. Der Fuck up passiert aber in IPv6. Der Client bekommt nicht nur die IPv6 Adresse das in seinem VLAN ist, sondern er bekommt ALLE Präfixe von allen VLANs die pfSense kennt. Das ergibt für mich keinen Sinn. Ich dachte VLANs trennen auf Layer 2 Ebene bereits. Wie kommts dass mein Client dann die Präfixe aus den anderen VLANs bekommt. Eine andere VM die den VLAN Tag 120 erhält verhält sich richtig, sie bekommt nur das IPv6 Präfix aus dem VLAN das ihr zugeteilt ist. Hat ja jemand ne Idee, außer auf IPv6 zu verzichten 😅
 
Deine Beschreibung ist sehr unübersichtlich. Ist pfSense eine VM auf dem ProxMox? Wie sind die physikalischen Interfaces des Hosts in die VLANs eingebunden?

pfSense kennt alle VLANs und verteilt auch als einziger die RAs? Dann würde ich mal schauen, welche RAs der radvd auf welchen Interfaces verteilt, im Zweifel mit tcpdump. Der radvd scheint falsch konfiguriert zu sein und auf zumindest dem einen Interface zu viele RAs auszugeben.

Oder du bridged die VLANs irgendwo wieder zusammen, das kann natürlich auch sein. vmbr0 kann da ne Menge Ärger machen.
 
Sorry, jetzt wo du es sagst felt so einiges an Infos.
Ja, die pfSense ist VM ID101 und hat nur ein Netwerkinterface, vmbr0. Sollte ja auch eigentlich reichen, denn die pfSense sendet die Pakete doch als tagged heraus.

Die komplette Netzwerkconfig sieht so aus:

auto lo
iface lo inet loopback

auto enp3s0
iface enp3s0 inet manual

iface enp5s0 inet manual

iface enp6s0 inet manual

iface enp7s0 inet manual

auto enp4s0
iface enp4s0 inet manual
ovs_type OVSPort
ovs_bridge vmbr0
ovs_options vlan_mode=native-untagged tag=100

auto enp2s0
iface enp2s0 inet manual
ovs_type OVSPort
ovs_bridge vmbr0
ovs_options trunks=7,100,120

auto vlan100
iface vlan100 inet manual
ovs_type OVSIntPort
ovs_bridge vmbr0
ovs_options tag=100

ovs_mtu=1500
address 10.10.100.55
netmask 255.255.254.0

auto vlan120
iface vlan120 inet manual
address 10.10.120.2/23
gateway 10.10.120.1
ovs_type OVSIntPort
ovs_bridge vmbr0
ovs_mtu 1500
ovs_options tag=120

auto vmbr0
iface vmbr0 inet manual
ovs_type OVSBridge
ovs_ports enp4s0 enp7s0 vlan100 vlan120
ovs_mtu 1500

Die pfSense ist die einzige die RA verteilt
 
Es ist schwierig, sich in so eine komplexe Konfiguration reinzudenken und den Fehler zu finden. Zumal ich mich mit ovs auch nicht auskenne, das nutze ich nicht. Die VLANs werden schon an einigen Stellen zusammengebracht, die Frage ist halt, ob sie da immer sauber getagged durchgehen oder ob da mal durchgemischt wird. Zum Beispiel kommt mir die Frage, warum müssen VLAN 100 und 120 zum DSL Modem? Ich hätte gedacht, die pfSense routet ins Internet, wofür brauchen die VLANs direkten Zugriff? Da ist mir die zugrundeliegende Architektur nicht klar, um beurteilen zu können, ob da Sinn macht.
 
Ich weiß das es schwierig ist und meine Zeichnung war auch sehr schnell gemacht, weil ich die anderen Komponenten da nicht als wichtig ersah.

Der Grund warum sie Zugriff brauchen ist die räumliche Trennung vom Modem und dem Proxmox Host.
Der Host ist im Arbeitszimmer, das Modem ist im Wohnzimmer. Von dort läuft dann ein Cat6 Kabel in einen VLAN fähigen Switch. Im Wohnzimmer selbst hängen das Modem, der Switch und eine FritzBox die als meine DECT Station dient.

Der Switch ist so eingestellt das am Port 1 VLAN IDs 7, 100, 120 tagged verarbeitet werden. Port 2 ist tagged VLAN ID 7 alleine und geht in das Modem. Port 3 hat als native Port VLAN ID 100. Dieser ist mit der Fritz Box verbunden sodass sich die Fritz Box im VLAN 100 befindet und somit in meinem internen Netz ist.
 
Kann es sein, dass dein vlan nur IPv4 kann, respektive die Konfiguration nicht „dualstack „ gemacht wurde?
 
Soweit ich weiß schon. Da es ja keine feste IPv6 von der Telekom gibt für privatnutzer musst du ja in den jeweiligen Interfaces bei IPv6 "Track Interface" auswählen und den Präfix auswählen den du möchtest.
 
Den VLANs sollte IPv4/IPv6 eigentlich egal sein. Die arbeiten weiter unten im Protokollstapel.

Hast du mal gecheckt, wo die Router Advertisements so durch dein Netz wandern? Irgendwo müssen die Prefixes ja herkommen. Denn grundsätzlich stimme ich zu, die sollten nicht da sein. Irgendwo müssen die am VLAN vorbei vagabundieren.
 
Sobald ich zuhause bin werde ich das weiter prüfen.
Ich hab aber an der VM schonmal was geändert. Anstatt das sie nur ein Interface vmbr0 ohne Tag bekommt hat die pfsense nun für jedes VLAN ein eigenes Interface erhalten und der VLAN Tag setzt dann Proxmox. Wenn das nicht hilft zeichne ich mal den Traffic mit Wireshark auf
 
Ich habe die Lösung inzwischen gefunden. Habe dann nochmal alles umgebaut auf die Native Linux Bridge:

auto lo
iface lo inet loopback

auto enp3s0
iface enp3s0 inet manual

iface enp2s0 inet manual

iface enp5s0 inet manual

iface enp6s0 inet manual

iface enp7s0 inet manual

auto enp4s0
iface enp4s0 inet
bridge-pvid 100

auto vmbr0
iface vmbr0 inet static
address 10.0.6.4/21
bridge-ports enp2s0 enp3s0 enp4s0 enp5s0 enp6s0 enp7s0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094

auto vmbr0.5
iface vmbr0.5 inet manual
#TestVLAN

auto vmbr0.120
iface vmbr0.120 inet static
address 10.10.120.2/23
gateway 10.10.120.1


In einem anderen Discord Server, dem ich auch die Frage stellte meinte dann:

First hint inet is for IPv4 only, you need to use inet6 for IPv6 !

Also habe ich die Netzwerk Konfig um folgende Zeilen erweitert:

iface enp4s0 inet6
bridge-pvid 100

Und siehe an, mein Client bekommt nun nur noch den IPv6 Prefix den es erhalten soll.
Also merke, wenn man in Linux mit IPv6 arbeitet immer inet6 nutzen. An dem hab ich aber gar nicht gedacht, vorallem weil wie du schon gesagt hast @riversource, VLANs arbeiten viel tiefer in der Topologie.

Aber gut, wieder was gelernt, jetzt kann ich weiter machen. Danke an alle!
 
  • Gefällt mir
Reaktionen: riversource
Oh ich hab mich etwas zu früh gefreut. Die anderen IPv6 Präfixe kommen nicht mehr sofort. Aber nach zwei Minuten erhielt mein Client plötzlich ein Präfix aus VLAN Nr. 4🤨Da komm ich um einen TCPDump nicht herum

EDIT: Inzwischen hat sie wieder aus allen VLANs alle Präfixe bekommen. Da stimmt doch was vorne und hinten nicht 🤨
 
Zurück
Oben