Zum Inhalt springen

Opennet Domain-Proxy: Unterschied zwischen den Versionen

Aus Opennet
Inhalt gelöscht Inhalt hinzugefügt
init
 
K Formatierung
Zeile 7: Zeile 7:


== Einrichtung einer Domain-Weiterreichung ==
== Einrichtung einer Domain-Weiterreichung ==
# auf dem AP via Web-Interface oder uci beispielsweise folgende olsr-Nameservice-Einträge anlegen:
* auf dem AP via Web-Interface oder uci beispielsweise folgende olsr-Nameservice-Einträge anlegen:
PlParam "service" "http://192.168.10.13:80|tcp|public-domain-http munin.opennet-initiative.de"
PlParam "service" "http://192.168.10.13:80|tcp|public-domain-http munin.opennet-initiative.de"
PlParam "service" "http://192.168.10.13:80|tcp|public-domain-http munin.on-i.de"
PlParam "service" "http://192.168.10.13:80|tcp|public-domain-http munin.on-i.de"
Zeile 19: Zeile 19:
*** die Formatierung der nameservice-Zeile ist streng einzuhalten
*** die Formatierung der nameservice-Zeile ist streng einzuhalten
*** die Ports auf deinem AP kannst du frei wählen
*** die Ports auf deinem AP kannst du frei wählen
# die DNS-Konfiguration für den Domainnamen anpassen auf ''CNAME domain-proxy.opennet-initiative.de''
* die DNS-Konfiguration für den Domainnamen anpassen auf ''CNAME domain-proxy.opennet-initiative.de''
** es ist nicht zulässig, neben einem CNAME-Eintrag für einen Domainnamen weitere DNS-RR zu definieren (z.B. MX- oder SRV-Einträge)
** es ist nicht zulässig, neben einem CNAME-Eintrag für einen Domainnamen weitere DNS-RR zu definieren (z.B. MX- oder SRV-Einträge)
*** Typischerweise kannst du also nur ''www.example.org'' und nicht ''example.org'' auf diesem Weg veröffentlichen.
*** Typischerweise kannst du also nur ''www.example.org'' und nicht ''example.org'' auf diesem Weg veröffentlichen.
*** Stattdessen kannst du auch anstelle des CNAME-Eintrags einen (oder mehrere) A-Einträge verwenden - du musst dann jedoch selbst Sorge dafür tragen, die IPs anzupassen, wenn wir irgendwann mal den Hosting-Anbieter wechseln oder sich aus anderen Gründen die IP-Einträge von ''domain-proxy.opennet-initiative.de'' ändern. Wir werden dich jedoch nicht über Änderungen informieren - du musst selbst für eine regelmäßige Prüfung sorgen.
*** Stattdessen kannst du auch anstelle des CNAME-Eintrags einen (oder mehrere) A-Einträge verwenden - du musst dann jedoch selbst Sorge dafür tragen, die IPs anzupassen, wenn wir irgendwann mal den Hosting-Anbieter wechseln oder sich aus anderen Gründen die IP-Einträge von ''domain-proxy.opennet-initiative.de'' ändern. Wir werden dich jedoch nicht über Änderungen informieren - du musst selbst für eine regelmäßige Prüfung sorgen.
# richte auf deinem AP eine Portweiterleitung ein (von dem via olsr-Nameservice announcierten Port auf den internen Port des Webservers in deinem privaten Netz)
* richte auf deinem AP eine Portweiterleitung ein (von dem via olsr-Nameservice announcierten Port auf den internen Port des Webservers in deinem privaten Netz)
# warte, bis die Proxy-Server-Konfigurationen aktualisiert wurden (im 15-Minuten-Takt)
* warte, bis die Proxy-Server-Konfigurationen aktualisiert wurden (im 15-Minuten-Takt)


== Technische Umsetzung ==
== Technische Umsetzung ==

Version vom 26. Juni 2016, 04:21 Uhr

| warning = #b22222 solid;background-color: #ffdddd;"> | caution = #f28500 solid;background-color: #ffffaa;"> | approval = #00ff00 solid;background-color: #deffde;"> | proposal = #9932cc solid;background-color: #e4d8ff;"> | detail = #f4c430 solid;background-color: #fbfbfb;"> | protection = #bba solid;background-color: #fbfbfb;"> | notice | #default = #1e90ff solid;background-color: #fbfbfb;"> }} {{#switch: | blank | none =

| #default =

}}

{{#if: | {{#ifeq:|none

 | 
| }} }}


Überblick

Der Domain-Proxy im Opennet ermöglicht es den Teilnehmern im Opennet öffentliche Webseiten zu betreiben. Technisch wird dies durch vom Verein betriebene Proxy-Server umgesetzt, die externe Zugriffe an die jeweiligen Endknoten weiterreichen. Die Konfiguration der Proxy-Server erfolgt regelmäßig anhand von OLSR-Nameservice-Ankündigungen. Jeder Betreiber eines Knotens kann die von ihm betriebenen Domains also selbständig einrichten.

Einrichtung einer Domain-Weiterreichung

  • auf dem AP via Web-Interface oder uci beispielsweise folgende olsr-Nameservice-Einträge anlegen:
       PlParam "service" "http://192.168.10.13:80%7Ctcp%7Cpublic-domain-http munin.opennet-initiative.de"
       PlParam "service" "http://192.168.10.13:80%7Ctcp%7Cpublic-domain-http munin.on-i.de"
       PlParam "service" "https://192.168.10.13:443%7Ctcp%7Cpublic-domain-https munin.opennet-initiative.de"
       PlParam "service" "https://192.168.10.13:443%7Ctcp%7Cpublic-domain-https munin.on-i.de"
    • im obigen Beispiel wird die Domain munin.opennet-initiative.de (sowie ihre Kurzformen) sowohl per http als auch https zugänglich gemacht
    • folgende Punkte sind dabei unbedingt zu beachten:
      • die IP muss auf dem AP konfiguriert sein - andernfalls ignoriert der lokale olsrd den Eintrag
      • https-Webseiten (nach außen) müssen vom AP via https angeboten sein
      • http-Webseiten (nach außen) können sowohl via http als auch https bereitgestellt werden
      • die Formatierung der nameservice-Zeile ist streng einzuhalten
      • die Ports auf deinem AP kannst du frei wählen
  • die DNS-Konfiguration für den Domainnamen anpassen auf CNAME domain-proxy.opennet-initiative.de
    • es ist nicht zulässig, neben einem CNAME-Eintrag für einen Domainnamen weitere DNS-RR zu definieren (z.B. MX- oder SRV-Einträge)
      • Typischerweise kannst du also nur www.example.org und nicht example.org auf diesem Weg veröffentlichen.
      • Stattdessen kannst du auch anstelle des CNAME-Eintrags einen (oder mehrere) A-Einträge verwenden - du musst dann jedoch selbst Sorge dafür tragen, die IPs anzupassen, wenn wir irgendwann mal den Hosting-Anbieter wechseln oder sich aus anderen Gründen die IP-Einträge von domain-proxy.opennet-initiative.de ändern. Wir werden dich jedoch nicht über Änderungen informieren - du musst selbst für eine regelmäßige Prüfung sorgen.
  • richte auf deinem AP eine Portweiterleitung ein (von dem via olsr-Nameservice announcierten Port auf den internen Port des Webservers in deinem privaten Netz)
  • warte, bis die Proxy-Server-Konfigurationen aktualisiert wurden (im 15-Minuten-Takt)

Technische Umsetzung

Die Domain-Proxies ermöglichen Verkehr via http und https. Folgende Proxy-Werkzeuge kommen dabei zum Einsatz:

Server-Konfiguration

Die beteiligten Server werden vollständig mit der Opennet_ansible#domain-proxy ansible-Rolle "domain-proxy" konfiguriert. Diese Rolle konfiguriert folgende Zustände auf den Servern:

  • ein cron-Job "on-update-domain-proxy" im 15-Minuten-Takt:
    • regelmäßiges Auslesen von http- und https-Domain-Ankündigungen aus den olsr-Nameservice-Daten
    • Aktualisieren der nginx- und slt-Konfigurationsdateien
    • Neustart von nginx und slt im Fall von Änderungen
  • nginx: Proxy für http-Verbindungen
  • slt: Proxy für https-Verbindungen (SNI-basierte Verkehrslenkung ohne SSL-Terminierung)

AP-Konfiguration

Auf dem AP können via Web-Interface (oder via uci) olsrd-Nameservice-Einträge definiert. Diese werden automatisch im Netz verteilt und anschließend von den Proxy-Servern ausgewertet.