waishon
Goto Top

Split-DNS und DoH

Hallo zusammen,

mich würde einmal eure Meinung zum sich immer weiter verbreitenden DoH bzw. DNS-over-TLS interessieren.

TL;DR:
Ein Netzwerk hat SplitDNS aktiviert und möchte intern die volle Bandbreite nutzen, um auf einen Server zuzugreifen. Allerdings löst DoH nur die externe IP auf, was dazu führt, das das eingesetzte NAT zum Bottleneck wird und somit die Bandbreite limitiert.

Lange Version:

Angenommen man hat einen normalen Internet-Anschluss, an dem der Provider nur eine IP bereitstellen kann (Wir gehen hier jetzt erstmal ausschließlich von IPv4 aus). Aus diesem Grund muss man natürlich NAT aktivieren, damit mehrere Geräte überhaupt ins Internet kommen.

An diesem Internet-Anschluss wird jetzt ein Fileserver betrieben auf dem des öfteren z.B. große Dateien über ein Webinterface hochgeladen werden, der sowohl von außen als auch von innen erreichbar sein soll. Bestes Beispiel: NextCloud/OwnCloud z.B.

Hinter diesem Anschluss befinden sich zudem noch weitere Endgeräte, die nicht zentral verwaltet werden können. User A,B,C stöpseln ihre Laptops an ein 1Gbit/s LAN Port und schieben ihre Dateien hoch. Der NextCloud Server ist mit 10Gbit/s Uplink angebunden und alle Nutzer können mir 1Gbit/s ihre Dateien hochladen.

Dies ist so aber nur möglich, wenn die User die interne IP des Servers nehmen. Allerdings möchte man, dass den Nutzern gar keine IPs mitteilen sondern nur eine Domain, mit der sie sich, egal wo sie sind verbinden können, nur mit dem Unterschied, dass es intern eben mit voller Bandbreite des Ports läuft und extern der Internetanschluss der limiterende Faktor ist.

Hierzu bietet sich die Nutzung von SplitDNS an. Sobald sich der Nutzer im internen Netz befindet, wird ihm per DHCP die IP des lokalen DNS mitgeteilt, der die Domain nextcloud.example.com auf die interne Nextcloud IP auflöst. Somit kommunizieren die Clients direkt und ohne Umwege mit dem entsprechenden Server -> Volle Bandbreite wird erreicht. Extern löst die gleiche IP eben auf die externe IP des Abschlusses auf. Mit entsprechend niedriger TTL funktioniert das in der Regel wunderbar. Und ich nehmen an, dass SplitDNS häufiger verwendet wird, auch wenn es natürlich ein wenig "Hacky" ist.

Jetzt nutzt man kein SplitDNS oder eben DoH. Der Browser löst dann die IP selber auf in dem er diese z.B. an Cloudflare sendet und Cloudflare gibt die externe IP des Anschlusses zurück. Das hat den Effekt, dass sämtlicher Traffic zum Gateway geroutet wird. Auf dem Gateway läuft jetzt eine Firewall, die NAT betreibt, welche die externe IP wieder direkt zur internen IP umschreibt, sodass man ein Hairpin NAT hat. Dies hat aber zur Folge, das sämtlicher Traffic, der intern kommuniziert wird immer erst zum Gateway muss, welches in diesem Beispielaufbau nur mit 1Gbit/s angebunden ist. Somit hat man hier ein klassisches Bottleneck im Netzwerk.

Konkret heißt das: Nutzen unsere User A,B,C einen Browser mit aktivierten DOH, so teilen sich diese Nutzer insgesamt die Bandbreite eines 1Gbit/s Port. Mal von der Belastung des Gateways angesehen, ob es überhaupt 1Gbit/s NAT handeln kann. Es skaliert im Grunde einfach sehr schlecht und ein 10Gbit/s Uplink Port bringt dann auch nichts mehr.

Die spannende Frage ist: Wie löst man so ein Szenario?

1. Man müsste den DoH Traffic manipulieren durch eine Firewall -> Nicht machbar, da verschlüsselt.
2. Man müsste sämtliche DoH Server IPs in der Firewall blocken -> ggf. machbar, wenn die IPs dauerhaft persistent sind. Ungewiss wie die Browser darauf reagieren.
3. Eine weitere IPv4 Adresse anschaffen, sodass die interne und externe IP identisch ist und man hier sich das NAT spart bzw. direkt geroutet wird. Hat den Vorteil, dass der DNS Record überall identisch ist -> Oft bekommt man keine zweite IP-Adresse.
4. IPv6 verwenden, da hier das NAT wegfällt und jede IP somit global eindeutig ist. Somit würde die Nextcloud IPv6 lokal geroutet werden -> Machbar, ABER Provider muss IPv6 bereitstellen, was ja leider immer noch nicht immer der Fall ist und Client muss IPv6 präferieren.
5. Im DNS einen AAAA Record mit einer ULA anlegen, wenn der Provider kein IPv6 unterstützt. Somit würde lokal die IPv6 Adresse genutzt werden, die intern geroutet werden kann -> Clients müssen IPv6 ULA priorisieren. Sehr Hacky face-smile.

Mich würde eure Meinung dazu interessieren. Wie würdet ihr so ein Szenario lösen? Und was haltet ihr von DoH?

Ich persönlich würde die Lösung 4 nutzen, sofern der Provider IPv6 unterstützt. Lösung 2 würde ja den Sinn von DoH wieder aushebeln, wäre aber ggf. machbar

Content-Key: 392475

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

Printed on: April 19, 2024 at 09:04 o'clock