NAT-Reflection vs. Host-Überbrückung

mr44er

moderater Moderator
Teammitglied
Ich habe einen Webserver in einer jail in meinem lokalen Netz (es sind mehrere+reverse proxy, zum besseren Nachvollziehen bleiben wir bei einem Server ;) ). Fürs Testen und generell ist das erstmal bequem so.

Ports 80 und 443 sind per Portweiterleitung freigegeben, entsprechende Firewall-Regel ebenfalls.

Es existiert ein A-Record meiner TLD auf meine ipv4, das klappt auch von außen sauber.

Ich forciere https/ssl bei Zugriffen von außen durch 301er redirects.

Bei nextcloud kann man mehrere 'trusted domains' (in dem Fall subdomain und interne IP) eintragen, somit kann ich nextcloud vom internen Netz mittels der IP vom nextcloud-server ansurfen.
Im Falle von wordpress kann man nur eine Domain eingeben, also entweder subdomain oder interne ip. Der Zugriff vom internen Netz beißt sich somit, da WP dann auf seine subdomain wechselt.

Um das zu umgehen, habe ich NAT-Reflection und auch die Host-Überbrückung im unbound ausprobiert. Funktioniert beides. Wordpress umbasteln ginge wahrscheinlich auch bis zum nächsten Update.

Wie handhabt ihr sowas und warum? Split-DNS? jails in extra-Netz und nochmal NAT? Ich möchte auch vermeiden, dass ich mir in Zukunft was verbaue...
 
Zuletzt bearbeitet:
Generell gilt, je weiter unten in der Netzwerkschicht du den Hack anbringst, desto transparenter funktioniert es, desto weniger performant ist es aber auch. NAT-Reflection am Router ist die "beste" Lösung, weil dann DNS und alles unverändert bleibt und du einfach wie jeder Andere auf deine externe Adresse zugreifst. Der Traffic muss dafür allerdings zum externen Router und wieder zurück und das ist der Performanceverlust.

Interne Zugriffe per DNS direkt umbiegen umgeht das, dafür hast du dann plötzlich eine Abhängigkeit zum DNS-Server und dass jeder Client auch diesen anfragt und nicht mal ein Testclient z.B. die Google-Server benutzen darf. Das ist die Intransparenz dabei.

Am Ende musst du selbst danach entscheiden, was dir wichtiger ist. Ich selbst mache einfach NAT-Reflection und das sogar so, dass die Zugriffe von der externen Adresse kommen. Ich will nicht zum externen Router raus und dann plötzlich Zugriffe von dessen interner Adresse haben. Wenn der Request einmal durch die zentrale Firewall nach außen ging, dann kommt er auch als "extern" wieder rein und bekommt keine Spezialbehandlung mehr.
 
Im Falle von wordpress kann man nur eine Domain eingeben, also entweder subdomain oder interne ip. Der Zugriff vom internen Netz beißt sich somit, da WP dann auf seine subdomain wechselt.
Das geht auch ohne Redirect, du kannst z.B. in der wp-config.php die Variablen WP_HOME und WP_SITEURL mit den üblichen CGI-Variablen belegen:

Code:
define('WP_SITEURL', "http://{$_SERVER['HTTP_HOST']}");
define('WP_HOME', "http://{$_SERVER['HTTP_HOST']}");

Je nachdem, wie du dann dein Wordpress aufrufst, denkt es immer, es wäre am richtigen Ort. Wenn du es in einem Unterverzeichnis auf einer Domain installiert hast, musst du natürlich noch den Pfad mit in die Variablen packen.

Achtung: Diese Einstellung hat Vorrang vor siteurl/home in der Tabelle wp_options und deaktiviert auch die Möglichkeit, die Site-Url/Home im Backend einzustellen (die Felder werden ausgegraut).

Rob
 
WP_HOME und WP_SITEURL mit den üblichen CGI-Variablen

Feine Sache, das gefällt mir! Auf so eine Idee bin ich gar nicht gekommen.

Diese Einstellung hat Vorrang vor siteurl/home in der Tabelle wp_options und deaktiviert auch die Möglichkeit, die Site-Url/Home im Backend einzustellen
Womit das auch geklärt wäre, genau das hab ich mich immer gefragt und dann doch wieder stumpf an allen vier Stellen geändert, wenn erforderlich. ;)
 
Zurück
Oben