Pfsense IPv6 Subnetz Routingprobleme
Hi,
ich bin gerade dabei mein IPv6 Subnetz (/64) von Hetzner auf meine pfSense zu routen und dann entsprechend den VMs manuell zuzuweisen. Die Sense ist über v6 erreichbar.
Proxmox Host:
pfSense:
Proxmox:
VM Config:
Die VM bekommt den Fehler: Destination unreachable: Address unreachable
Aktueller Stand ist, dass das /64 Subnetz auf dem WAN der Sense anliegt.
Nur weiß ich nicht, was ich noch wie konfigurieren muss, damit ich bspw. die 2a01:xxxx:xxxx:xxxx::3 der Debian 12 VM "geben" kann und das Routing dann auch klappt. Das ist aktuell mein Problem wo ich nicht mehr weiterkomme 😔
Wäre cool wenn mir hierbei jemand helfen könnte der hier den Durchblick hat
ich bin gerade dabei mein IPv6 Subnetz (/64) von Hetzner auf meine pfSense zu routen und dann entsprechend den VMs manuell zuzuweisen. Die Sense ist über v6 erreichbar.
Proxmox Host:
2a01:xxxx:xxxx:xxxx::1
2a01:xxxx:xxxx:xxxx::2
Proxmox:
iface enp7s0 inet6 static
address 2a01:xxxx:xxxx:xxxx::1/128
gateway fe80::1
up sysctl -p
iface vmbr0 inet6 static
address 2a01:xxxx:xxxx:xxxx::1/64
up ip -6 route add 2a01:xxxx:xxxx:xxxx::/64 via dev 2a01:xxxx:xxxx:xxxx::2 vmbr0
VM Config:
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
allow-hotplug ens18
iface ens18 inet dhcp
iface ens18 inet6 static
address 2a01:xxxx:xxxx:xxxx::3
netmask 64
gateway 2a01:xxxx:xxxx:xxxx::2
Die VM bekommt den Fehler: Destination unreachable: Address unreachable
Aktueller Stand ist, dass das /64 Subnetz auf dem WAN der Sense anliegt.
Nur weiß ich nicht, was ich noch wie konfigurieren muss, damit ich bspw. die 2a01:xxxx:xxxx:xxxx::3 der Debian 12 VM "geben" kann und das Routing dann auch klappt. Das ist aktuell mein Problem wo ich nicht mehr weiterkomme 😔
Wäre cool wenn mir hierbei jemand helfen könnte der hier den Durchblick hat
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 62756076712
Url: https://administrator.de/contentid/62756076712
Ausgedruckt am: 21.11.2024 um 18:11 Uhr
24 Kommentare
Neuester Kommentar
Hi,
Das klappt so natürlich nicht. Wenn du ein einzelnes 64er Subnetz hast das zu dir geroutet wird und das du an mehrere Interfaces nutzen willst, dann musst du es in kleinere Subnetze aufteilen damit dieses korrekt geroutet werden kann.
Also bspw. das 64er dann in 72er Netze zerlegen:
Ist ja genauso wie bei IPv4. Da kannst du auch nicht ein großes Subnetz auf mehrere Interfaces gleichzeitig packen sondern musst dort ebenfalls in kleinere Einheiten subnetten damit das Routing wieder klappt.
So wird dann ein Schuh draus. 😁
Etwas Lektüre zum Thema IPv6 ist auch nie verkehrt: https://danrl.com/ipv6/
Gruß pp
Das klappt so natürlich nicht. Wenn du ein einzelnes 64er Subnetz hast das zu dir geroutet wird und das du an mehrere Interfaces nutzen willst, dann musst du es in kleinere Subnetze aufteilen damit dieses korrekt geroutet werden kann.
Also bspw. das 64er dann in 72er Netze zerlegen:
# Für den Proxmox an enp7s0v
2a01:xxxx:xxxx:xxxx::1/72
# Am Proxmox eine Route für das VM Subnetz welche auf die pfSense zeigt
ip -6 route add 2a01:xxxx:xxxx:xxxx:200::/72 via 2a01:xxxx:xxxx:xxxx:100::2 dev vmbr0
# Für den Proxmox an vmbr0
2a01:xxxx:xxxx:xxxx:100::1/72
# Für die pfSense am WAN
2a01:xxxx:xxxx:xxxx:100::2/72
mit GW
2a01:xxxx:xxxx:xxxx:100::1/72
# Für die pfSense am LAN zur VM
2a01:xxxx:xxxx:xxxx:200::1/72
# Für die VM die hinter der Sense am LAN hängt
2a01:xxxx:xxxx:xxxx:200::2/72
mit GW
2a01:xxxx:xxxx:xxxx:200::1/72
Ist ja genauso wie bei IPv4. Da kannst du auch nicht ein großes Subnetz auf mehrere Interfaces gleichzeitig packen sondern musst dort ebenfalls in kleinere Einheiten subnetten damit das Routing wieder klappt.
So wird dann ein Schuh draus. 😁
Etwas Lektüre zum Thema IPv6 ist auch nie verkehrt: https://danrl.com/ipv6/
Gruß pp
Die Sense ist über v6 erreichbar.
Wo denn an welchem Port?? Und WIE hast du das an den entsprechenden Ports (WAN und lokales LAN) eingerichtet. Dazu machst du leider keinerlei helfende Angaben. Normalerweise distribuieren die Hoster per Prefix Delegation und DHCPv6 einen Prefix >64 an deinen WAN Port der pfSense. Doe LAN Ports sind dann entsprechend in der v6 IP Adressierung auf "Tracking WAN" eingestellt und reichen den Prefix dann als /64er Subnetze an die lokalen LAN Ports weiter und damit dann auf deine VMs.
Das Gateway musst du dort an den VMs nicht eintragen, denn das lernen die automatisch per RAs.
Leider machst du zur v6 Adressierung wenig komkrete Angaben und zwingst zum Kristallkugeln. Deine netze stellst du immer nur rein als "2a01..." dar was keinerlei Aufschluss über die wirklich verwendeten IPv6 Netze zeigt. Hier wären ein paar mehr detailiertere Infos hilfreich um zielgerichtet helfen zu können.
Zum Rest hat Kollege @puderpader ja schon alles gesagt. Hier ist noch zu beachten das wenn du kleinere Masken nutzt als /64 einige Funktionen wie SLAAC usw. nicht mehr funktionieren.
S.o. da stehen deine Todos 😉
pfSense WANv6 Config:
WAN Interface hast du ja schon korrekt eingestellt. Allerdings fehlt das LAN?! 🤔Hier bekommst du ja bei einer statischen Adressierung ein freies /64 Netz von deinem Hoster oder Provider. Dieses musst du dann mit dem Typ Static ebenfalls am LAN Interface konfigurieren und fertig ist der Lack!
Die Firewall arbeitet ja als Router zwischen diesen beiden Interfaces, folglich benötigst du, wie auch analog bei IPv4, zwei unterschiedliche Netzwerke!
Das des LANs musst du also von deinem Hoster oder Provider bekommen bzw. anfragen sofern er dir keinen größeren Präfix per PD am WAN per DHCPv6 verteilt.
All diese Fragen zu der Provider/Hoster v6 Adressierung hast du bis dato noch NICHT beantwortet und zwingst hier dann zum Kristallkugeln!
Auch solltest du darauf achten IPv6 global in der pfSense unter System-Advanced-Networking zu aktivieren sonst geht eh nix in puncto v6!
Ich weiß leider nicht was du damit meinst.
Oha...IP Routing Grundschule erste Klasse.... 🙄Eine Firewall hat wie ein Router üblicherweise im Minimum 2 IP Netze. Einmal der WAN Port und einmal der LAN Port. An letztem befinden sich die VMs.
Folglich benötigst du 2 IPv6 Netze eins für WAN und eins für LAN.
Da IPv6 kein NAT (IP Adress Translation) kennt, müssen dies immer 2 öffentliche IPv6 Netze sein und keine Unique Local Adressses, ULA wie du sie unten verwendest!
Öffentliche IP Adressen sind registriert und bekommt man immer zugeteilt ergo darf man sie nicht selber "würfeln"!
Hoffe bis da kannst du noch folgen..?!
Da du immer nur vom v6 Netz am WAN Port redest aber nicht WELCHES v6 Netz du am LAN Port zu benutzen gedenkst fehlt dir ja eine offizielle IPv6 Netzadresse für LAN. Du hast am LAN Port ja auch noch gar kein IPv6 Netz konfiguriert.
Offizielle IPv6 Adressen kann man sich nicht einfach würfeln und bekommt diese vom Provider zugeteilt. Das ist auch logisch, denn der Provider muss ja auch wissen wie er dieses Netz zu dir routen muss. Wie gesagt...Routing Grundlagen..siehe oben!
Für diese v6 Adressierung an deinem LAN Port gibt es nun 2 Optionen und du musst deinen Provider oder Hoster fragen welche er verwendet. Dazu musst du mal den Telefonhörer in die Hand nehmen und dessen Hotline anrufen oder dein Email verwenden.
- Option 1.) Dein Provider oder Hoster teilt dir statisch ein IPv6 Netzwerk zu. Was du dann stinknormal über den Adresstyp "Static" in deiner pfSense konfigurierst. Fertisch. Ist analog wie bei IPv4.
- Option 2.) Dein Provider oder Hoster teilt dir über den WAN Port der pfSense per Prefix Delegation automatisch so ein Netzwerk zu. Dann musst du nichts statisch definieren sondern setzt den Adresstyp am LAN einfach auf "Tracking from WAN". Dann konfiguriert dir die pfSense das LAN Segment automatisch mit dem vom Provider oder Hoster via DHCPv6 Prefix Delegation zugeteiltem Netz.
Fazit:
Für dich geht es primär darum zuallererst von deinem Provider oder Hoster zu klären WIE er dir dies von dir benötigte IPv6 Netzwerk für den LAN Port zuteilt!! Da es kein NAT/Masquerading im IPv6 gibt sind ULAs also der falsche Weg.
Nebenbei ist fd25:bade:affe:cafe:: /64 eine deutlich schönere Adresse als deine da oben! 🤣
https://redmine.ungleich.ch/projects/ipv6/wiki/IPv6_words_-_name_your_ne ...
http://sophiedogg.com/funny-ipv6-words/
habe ich es jetzt so gelöst, dass ich es von dort aus weiter auf die link-local IP des WAN-Interfaces geroutet habe.
Eigentlich Unsinn, denn es würde implizieren das der Hypervisor zw. seinen NIC Segmenten selber routet was aber in der Regel nie der Fall ist. Zwischen der NIC und dem WAN Interface findet ja immer ein Bridging statt wenn man es richtig einrichtet. Folglich liegen dann NIC und WAN Port in der gleichen Layer 2 Broadcast Domain und damit im gleichen IP Netzwerk was ein Routing dann obsolet macht.Schon recht wirr was du da alles so veranstaltest...aber egal. Warum einfach machen wenn es wirr und umständlich auch geht.
Das Performance Problem kann daran liegen das du das Offloading der virtuellen WAN NIC an der Firewall eingeschaltet hast. Primär hängt die Verwendung dieser Features auch vom Typ der verwendeten virtuellen NIC im Hypervisor ab. (vmxnet3 etc.) Leider machst du da wenig hilfreiche Angaben, denn nur sehr wenig virtuelle Adapter supporten das. (Siehe dazu auch hier)
Die 3 relevanten Haken findest du im Advanced Menü
Hier musst du je nach verwendetem Hypervisor Typ mal checken was da die besten Settings für dich sind. Erstmal solltest du damit starten sie alle auszuschalten.
Alle anderen Hinweise zum Proxmox Setup einer Firewall VM findest du HIER.
Nebenbei: Mit externen Bilderlinks die Zwangswerbung, Schnüffelpixel usw. enthalten machst du dir hier im Forum keine Freunde!
deaktiviert
Hast du die auch mal aktiviert?Könnte das ggf. was mit der MTU (nur bei v6, weil v4 funktioniert ja tadellos) zu tun haben?
Ja, könnte. IPv6 Header Size ist ja mindestens 20 Byte größer. Wäre also einmal einen Test wert die MTU entsprechend anzupassen wenn die Firewall fragmentiert.https://en.wikipedia.org/wiki/IPv6_packet
Hier rennt das mit aktiviertem Offloading auf einem NUC mit Typ vmxnet3 und Intel NICs sowohl bei einer OPNsense als auch pfSense VM in Wirespeed.
Einfach mal mit Wireshark einen Mitschnitt machen dann sieht man ja direkt was Sache ist und ob das massenweise Retransmissions bzw. Fragmentierung auftritt und du musst nicht tagelang in der Gegend rum raten.
Jepp das sieht klar nach fehlerhafter MTU bzw. ICMPv6 Firewall Blocking aus. Also als aller erstes sicherstellen, das ICMPv6 durchgängig von Client bis Endgerät nicht in der Firewall blockiert wird, hier vor allem die ICMPv6 Typen 1,2,3 und 4. Auch die Sense selbst sollte diese akzeptieren, dito die VM. Denn für die Ermittlung der PMTU ist dies essentiell und wird zwingend benötigt, dann ist in der Regel auch keine Anpassung der MTU nötig wenn der Provider keine niedrigere als 1500 an deinem WAN vorschreibt (Konsultiere die DOCs des Hosters). Da IPv6 grundsätzlich auf ICMPv6 angewiesen ist, nicht wie bei IPv4 das noch nicht so viele Abhängigkeiten davon hatte, sollte man diesem immer eine Blick widmen.
Lesenswert wenn man mit IPv6 hantiert:
https://de.wikipedia.org/wiki/ICMPv6
https://danrl.com/ipv6/
Lesenswert wenn man mit IPv6 hantiert:
https://de.wikipedia.org/wiki/ICMPv6
https://danrl.com/ipv6/
das sieht klar nach fehlerhaftem ICMPv6 Firewall Blocking aus.
Vermutlich hat der TO, wie du schon richtig sagst, nicht beachtet das er einige zwingend benötigte ICMPv6 durch die Firewall passieren lassen muss!!https://www.net.in.tum.de/fileadmin/TUM/NET/NET-2016-09-1/NET-2016-09-1_ ... Tabelle 5, Seiten 5 u. 6
Siehe dazu auch HIER.
sowie WAN Interface die ganze Zeit aktiviert.
LAN ist es ja immer, da ja nur inbound. Wichtig ist das WAN!Hier stimmt doch dann generell was nicht
Dein Regelwerk am WAN Port unsinnig. Welchen Sinn macht es wenn du per Schrotschuss für IPv4 und IPv6 alles freigibst (any any) dadrunter dann aber überflüssigerweise nochmals UDP 51820 und RDP freigibst was die Regel dadrüber (First match wins!) eh alles schon inkludiert??Sowas ist dann sinnfrei und verwirrt nur als das es logisch ist und hilft.
Das gleiche Drama auch am LAN Port...