dkweb19
Goto Top

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:
ipv6_netzwerk


Und die IPv6 Routing Tabelle des Heim-Router mit den beiden Default-Routen:
routing_table

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
.

Content-ID: 505870

Url: https://administrator.de/contentid/505870

Ausgedruckt am: 22.11.2024 um 18:11 Uhr

clSchak
Lösung clSchak 18.10.2019 um 00:07:37 Uhr
Goto Top
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
aqui
aqui 18.10.2019 aktualisiert um 10:18:40 Uhr
Goto Top
Hat das einen Grund warum der Thread wechselseitig großen und kleinen Font in einem wilden unverständlichen Mix hat ?!? face-sad Eine Freude das zu lesen ist das nicht gerade und der Übersichtlichkeit ist es eher abträglich, aber egal.
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 !
dkweb19
dkweb19 18.10.2019 aktualisiert um 16:30:08 Uhr
Goto Top
@aqui
Zitat von @aqui:
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.

Das kann ich nicht so ganz nachvollziehen. 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?! Aber trotzdem danke für den Tipp, evtl. könnte ich das WAN-Interface zur FTTH-Leitung tatsächlich statisch konfigurieren, da erhalte ich nähmlich ein konstantes /56-Präfix. Am DSL-Anschluss wirds wohl eher nicht klappen, da wechselt es leider bei jeder Neuverbindung.

Trotzdem bringt mich das bei dem Problem mit den Global-Unicast-Adressen nicht wirklich weiter, selbst wenn ich beide WAN-Interfaces statisch ohne DHCPv6-PD und auch das LAN-Interfaces ohne SLAAC konfigurieren würde und dem PC die IPv6-Adresse statisch eintrage, denn...

Zitat von @aqui:
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.

...ich kann mir wahrlich nicht vorstellen, dass ich meine IPv6-Pakete über ISP2 routen lassen kann, wenn diese als Source-Adresse eine IPv6-Adresse von ISP1 haben. Umgekehrt natürlich auch. Aber nun gut, ich werde es testen :D .


@clSchak
Danke für den intressanten Link. Das bassiert allerdings wie befürchtet auf NAT bzw. NPTv6. Die technische Grundlage zu NPTv6 ist das RFC 6296.

Dieses wird jedoch zurzeit als experimental eingestuft. In meinem aktuellen Fall möchte ich ein IPv6-Multi WAN LB für mich privat für mein Heimnetz realisieren, da ist das zum Ausprobieren und Herumspielen in Ordnung^^. In einer Unternehmensumgebung würde ich experimentelle Standards aber nicht einsetzen. Doch gerade da wäre das Haupteinsatzgebiet von IPv6 Multi-WAN LB. Sollte es zur Zeit keine bessere Lösung geben, würde es mich kaum wundern, warum IPv6 nur sehr schleppend in den IT-Abteilungen der Unternehmen ankommt (...abgesehen vom fehlenden Wissen natürlich).
aqui
Lösung aqui 18.10.2019 um 16:57:43 Uhr
Goto Top
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.
dkweb19
dkweb19 18.10.2019 um 17:21:07 Uhr
Goto Top
Alles klar, dann erstmal vielen Dank für eure Mühen.
Dann halte ich fest: Will man als Privatperson oder kleineres Unternehmnen ohne Business-Verträge auskommen und trotzdem IPv6 WAN Loadbalancing realisieren, muss man wohl mit NPTv6 leben :/. Bleibt zu hoffen, dass NPTv6 irgendwann aus dem experimental herauskommt. Umzusetzen scheinen es ja immerhin einige Routerhersteller.