IPv6 Multi-WAN Load Balancing ohne NAT?
Hallo zusammen :D
Ich bin mit dem Aufbau und der Funktion kleinerer einfacher IPv6-Netze und den IPv6-Grundlagen vertraut.
Was ich bisher allerdings noch nie versucht habe (bzw. konnte mangels zweiter WAN-Leitung) war die Realisierung eines Load Balancing über zwei WAN-Leitungen (sowohl IPv4 als auch IPv6). Ich gehöre jedoch seit letzten Monat zum kleinen glücklichen Teil der Bevölkerung, der einen FTTH-Anschluss hat und habe parallel bis April auch noch meine alte DSL-Leitung. Da kann ich mir die Chance nicht entgehen lassen, die beiden auch zu nutzen. Beide Leitungen verfügen über eine Dual-Stack Lite Anbindung und erhalten jeweils ein Global durchgeroutetes /56 IPv6-Präfix.
Alle folgenden Grafiken und Gedanken sind erstmal nur Theorie, ich muss mir erst noch einen Semi-Profi Router besorgen, mit den Fritzboxen werde ich wohl nicht weit kommen. Aber gedanklich und auf dem Papier möchte ich den Aufbau zumindest schon mal grob durchplanen, zumal ich für die IPv6-Lösung noch nicht so recht weiß, wie sich ein IPv6 Multi-WAN Load Balancing realisieren lassen könnte.
Mit IPv4 scheint ein Multi-WAN Load Balancing ja kein großes Problem zu sein mittels NAT und Equal-cost Multipath, das habe ich von der Theorie her verstanden und es gibt auch jede Menge Lehrbeispiele dazu.
Deswegen konzentriere ich mich an dieser Stelle also rein auf IPv6, da finde ich nicht so viel zu diesem Thema und stoße auch logisch nachgedacht auf ein Problem, wenn ich nun versuchen wollen würde ich ein Multi-WAN Load Balancing wie auf IPv4 Basis mit ECMP zu realisieren. Bei IPv6 ist der Einsatz von NAT ja grundsätzlich nicht mehr nötig, auch wenn ich aus eigener Erfahrung weiß, dass es beispielsweise mit ip6tables trotzdem geht. Jedenfalls möchte ich (natürlich nur soweit möglich), auf IPv6 NAT verzichten, denn es scheint keinen so wirklich anerkannten Standard für IPv6 NATs zu geben. Es muss also damit gerechnet werden, dass neuere Layer-7-Protokolle irgendwann in der Zukunft mit einem IPv6 NAT nicht zurechtkommen könnten, weil die Entwickler einfach damit nicht rechnen oder bewusst ignorieren.
Ich habe mal zur Veranschaulichung eine Skizze erstellt, wie ich mir ein IPv6-Netzwerk mit zwei WAN-Leitungen vorstelle:
Und die IPv6 Routing Tabelle des Heim-Router mit den beiden Default-Routen:
Vom grundsätzlichen Gedankengang her sollte doch ECMP auf dem Heimrouter für IPv6 genauso funktionieren, wie für IPv4. Das Problem sind jedoch die Global-Unicast Adressen des PCs. Er muss ja praktisch immer zwei Global-Unicast Adressen haben, einmal eine aus dem ISP1-Präfix und eine aus dem ISP2-Präfix. Er kann jedoch nicht vorhersehen, über welche der beiden WAN-Leitungen der Router seine IPv6-Pakete routen wird. Das müsste er aber wissen, damit er die korrekte Global-Unicast Adresse als Source einträgt. Die beiden ISP-Router werden ja wohl kaum IPv6-Pakete akzeptieren, die als Source-Adresse eine Adresse eines fremden Präfixes eingetragen haben...
Desto mehr ich darüber ich nachdenke, desto mehr befürchte ich, dass es ohne IPv6 NAT wohl doch nicht geht... Aber noch wehre ich mich gegen diese Vorstellung :D. Vielleicht hat ja jemand eine Idee wie es auch ohne NAT klappen könnte oder hat so etwas sogar schon einmal realisiert.
Ich bin mit dem Aufbau und der Funktion kleinerer einfacher IPv6-Netze und den IPv6-Grundlagen vertraut.
Was ich bisher allerdings noch nie versucht habe (bzw. konnte mangels zweiter WAN-Leitung) war die Realisierung eines Load Balancing über zwei WAN-Leitungen (sowohl IPv4 als auch IPv6). Ich gehöre jedoch seit letzten Monat zum kleinen glücklichen Teil der Bevölkerung, der einen FTTH-Anschluss hat und habe parallel bis April auch noch meine alte DSL-Leitung. Da kann ich mir die Chance nicht entgehen lassen, die beiden auch zu nutzen. Beide Leitungen verfügen über eine Dual-Stack Lite Anbindung und erhalten jeweils ein Global durchgeroutetes /56 IPv6-Präfix.
Alle folgenden Grafiken und Gedanken sind erstmal nur Theorie, ich muss mir erst noch einen Semi-Profi Router besorgen, mit den Fritzboxen werde ich wohl nicht weit kommen. Aber gedanklich und auf dem Papier möchte ich den Aufbau zumindest schon mal grob durchplanen, zumal ich für die IPv6-Lösung noch nicht so recht weiß, wie sich ein IPv6 Multi-WAN Load Balancing realisieren lassen könnte.
Mit IPv4 scheint ein Multi-WAN Load Balancing ja kein großes Problem zu sein mittels NAT und Equal-cost Multipath, das habe ich von der Theorie her verstanden und es gibt auch jede Menge Lehrbeispiele dazu.
Deswegen konzentriere ich mich an dieser Stelle also rein auf IPv6, da finde ich nicht so viel zu diesem Thema und stoße auch logisch nachgedacht auf ein Problem, wenn ich nun versuchen wollen würde ich ein Multi-WAN Load Balancing wie auf IPv4 Basis mit ECMP zu realisieren. Bei IPv6 ist der Einsatz von NAT ja grundsätzlich nicht mehr nötig, auch wenn ich aus eigener Erfahrung weiß, dass es beispielsweise mit ip6tables trotzdem geht. Jedenfalls möchte ich (natürlich nur soweit möglich), auf IPv6 NAT verzichten, denn es scheint keinen so wirklich anerkannten Standard für IPv6 NATs zu geben. Es muss also damit gerechnet werden, dass neuere Layer-7-Protokolle irgendwann in der Zukunft mit einem IPv6 NAT nicht zurechtkommen könnten, weil die Entwickler einfach damit nicht rechnen oder bewusst ignorieren.
Ich habe mal zur Veranschaulichung eine Skizze erstellt, wie ich mir ein IPv6-Netzwerk mit zwei WAN-Leitungen vorstelle:
Und die IPv6 Routing Tabelle des Heim-Router mit den beiden Default-Routen:
Vom grundsätzlichen Gedankengang her sollte doch ECMP auf dem Heimrouter für IPv6 genauso funktionieren, wie für IPv4. Das Problem sind jedoch die Global-Unicast Adressen des PCs. Er muss ja praktisch immer zwei Global-Unicast Adressen haben, einmal eine aus dem ISP1-Präfix und eine aus dem ISP2-Präfix. Er kann jedoch nicht vorhersehen, über welche der beiden WAN-Leitungen der Router seine IPv6-Pakete routen wird. Das müsste er aber wissen, damit er die korrekte Global-Unicast Adresse als Source einträgt. Die beiden ISP-Router werden ja wohl kaum IPv6-Pakete akzeptieren, die als Source-Adresse eine Adresse eines fremden Präfixes eingetragen haben...
Desto mehr ich darüber ich nachdenke, desto mehr befürchte ich, dass es ohne IPv6 NAT wohl doch nicht geht... Aber noch wehre ich mich gegen diese Vorstellung :D. Vielleicht hat ja jemand eine Idee wie es auch ohne NAT klappen könnte oder hat so etwas sogar schon einmal realisiert.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 505870
Url: https://administrator.de/contentid/505870
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
5 Kommentare
Neuester Kommentar
Hi
deine Fritzbox nicht, aber eine pfSense kann es, mit der kannst du auch das LB machen, siehe auch: https://docs.netgate.com/pfsense/en/latest/routing/multi-wan-for-ipv6.ht ... - ist kein Hexenwerk, das kannst auch mit 2 x RasPi machen und das dann im HA laufen lassen, dann hast dort sogar eine Absicherung und der Stromverbrauch ist auch gering.
Gruß
@clSchak
deine Fritzbox nicht, aber eine pfSense kann es, mit der kannst du auch das LB machen, siehe auch: https://docs.netgate.com/pfsense/en/latest/routing/multi-wan-for-ipv6.ht ... - ist kein Hexenwerk, das kannst auch mit 2 x RasPi machen und das dann im HA laufen lassen, dann hast dort sogar eine Absicherung und der Stromverbrauch ist auch gering.
Gruß
@clSchak
Hat das einen Grund warum der Thread wechselseitig großen und kleinen Font in einem wilden unverständlichen Mix hat ?!? Eine Freude das zu lesen ist das nicht gerade und der Übersichtlichkeit ist es eher abträglich, aber egal.
Komplette Balancing Systeme können dann zusätzlich mit entsprechenden Policies noch nach TCP/UDP Ports, Adress Ranges, Hosts usw. balancen. Das ist alles bei IPv6 genau so wie bei v4.
Du machst hier einen Denkfehler und gehst von einem Anschluss aus der mit Prefix Delegation arbeitet. Das ist dein Fehler. Prefix Delegation ist aber in der Tat in so einem Design ein Problem und sollte man deshalb nicht machen.
In so einem Setup sollte man sich immer einen eigenen festen Prefix bzw. v6 Subnetz zuteilen lassen als "sein" Netz und keine Prefix Delegation machen.
Denn im Delegation Fall (und nur dann) hast du Recht. Für dein internes LAN musst du dich entscheiden ob du dann die Delegation von ISP1 oder 2 nimmst. Hast du dann aber ein delegiertes Prefix von 1 kannst du das über 2 nicht routen und andersrum.
Die Delegation ist also dein Problem, keinesfalls aber die Unicast Adressen an sich.
Delegation gibt es aber nur bei den Standard Consumer Anschlüssen. Wenn du wirklich das v6 Netz produktiv mit Servern usw. über 2 Provider nutzt, dann lässt du dir logischerweise immer ein eigenes v6 Subnetz zuteilen !
Vom grundsätzlichen Gedankengang her sollte doch ECMP auf dem Heimrouter für IPv6 genauso funktionieren, wie für IPv4
Ja, dem ist auch so. Wenn du 2 statische Default Routen hast machen Standard Router mit mehreren Ports immer ein per Session Balancing über diese Default Gateways. Das sollte also jeder Router können der mehrere Interfaces hat wie Mikrotik, Cisco und Co.Komplette Balancing Systeme können dann zusätzlich mit entsprechenden Policies noch nach TCP/UDP Ports, Adress Ranges, Hosts usw. balancen. Das ist alles bei IPv6 genau so wie bei v4.
Das Problem sind jedoch die Global-Unicast Adressen des PCs.
Nöö, wieso ?Du machst hier einen Denkfehler und gehst von einem Anschluss aus der mit Prefix Delegation arbeitet. Das ist dein Fehler. Prefix Delegation ist aber in der Tat in so einem Design ein Problem und sollte man deshalb nicht machen.
In so einem Setup sollte man sich immer einen eigenen festen Prefix bzw. v6 Subnetz zuteilen lassen als "sein" Netz und keine Prefix Delegation machen.
Denn im Delegation Fall (und nur dann) hast du Recht. Für dein internes LAN musst du dich entscheiden ob du dann die Delegation von ISP1 oder 2 nimmst. Hast du dann aber ein delegiertes Prefix von 1 kannst du das über 2 nicht routen und andersrum.
Die Delegation ist also dein Problem, keinesfalls aber die Unicast Adressen an sich.
Delegation gibt es aber nur bei den Standard Consumer Anschlüssen. Wenn du wirklich das v6 Netz produktiv mit Servern usw. über 2 Provider nutzt, dann lässt du dir logischerweise immer ein eigenes v6 Subnetz zuteilen !
Ob der DHCPv6-Client auf dem Heimrouter die Adressen auf die Interfaces legt, oder ob ich das per Hand mache sollte doch eigentlich erstmal völlig egal sein?!
Da hast du natürlich recht aber du steckst ja in dem Dilemma das du dich, wenn es sauber sein soll, für die Delegation eines ISP entscheiden musst. Andernfalls fährst du 2 v6 Netze in einer L2 Collision Domain was nicht besonders sauber ist. Du steckst also im Delegation Dilemma.Solche Delegations sind ja in der Regel für die Masse der Consumer Kunden gedacht und nicht für Anwender die statische v6 Adressen nutzen.
Das gravierende Folgeproblem was du denn daraus hast ist die Tatsache das auch deine Server ewig wechselnde v6 IPs haben. Willst du z.B. einen solchen Server von außen erreichbar machen geht das nicht oder nur eine Zeitlang bist du einen anderen Prefix delegiert bekommst. Solche Installationen sind dann unbrauchbar und machen wenigs Sinn. Letztlich landest du dann wieder bei einem eigenen Subnetz.
Trotzdem bringt mich das bei dem Problem mit den Global-Unicast-Adressen nicht wirklich weiter,
Ist jetzt irgendwie unverständlich wenn du dich für einen Prefix entscheidest. Dann ist doch alles OK. Was genau bringt dich da denn nicht weiter ??Dein Router hat dann 2 statische Default Routen und macht dann Session basiertes Balancing. Dafür muss man sogar nichtmal einen speziellen Balancing Router haben. Simpler Standard...
wenn diese als Source-Adresse eine IPv6-Adresse von ISP1 haben.
Richtig, das wird niemals gehen. Deshalb ja auch der Rat ein eigenes Subnetz zu betreiben.Sowas muss man dann mit den ISPs besprechen und das Netz dort per OSPF oder BGP anliefern. Das ist aber auch bei v4 genau so wenn man ohne NAT arbeitet.