Opennet Domain-Proxy: Unterschied zwischen den Versionen
Lars (Diskussion | Beiträge) (Problemanalyse) |
Lars (Diskussion | Beiträge) K (Formatierung) |
||
Zeile 6: | Zeile 6: | ||
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. | 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. | ||
− | Der Zustand (Log-Daten sowie erzeugte Konfigurationen) sind unter | + | Der Zustand (Log-Daten sowie erzeugte Konfigurationen) sind unter http://domain-proxy.opennet-initiative.de erreichbar. |
== Einrichtung einer Domain-Weiterreichung == | == Einrichtung einer Domain-Weiterreichung == |
Version vom 26. Juni 2016, 06:30 Uhr
Dieser Dienst befindet sich in der experimentellen Probe-Phase. Verwende ihn nicht für relevante Aufgaben. |
Inhaltsverzeichnis |
Ü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.
Der Zustand (Log-Daten sowie erzeugte Konfigurationen) sind unter http://domain-proxy.opennet-initiative.de erreichbar.
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.
- 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)
- 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.
Problemanalyse / Debugging
Prüfe die folgenden Punkte, falls deine Webseite nicht korrekt ausgeliefert wird:
- Ist der olsr-Nameservice auf irgendeinem Knoten im Netz sichtbar? (siehe /var/run/services_olsr)
- falls nicht, dann ist die Struktur des Eintrags oder seine IP falsch
- Wird die Domain im Aktualisierungsprotokoll erwähnt? (siehe http://domain-proxy.opennet-initiative.de/)
- falls nicht, dann entspricht der Inhalt des Eintrags nicht perfekt dem obigen Beispiel
- Wird die Domain in den erzeugten Konfigurationsdateien erwähnt? (siehe http://domain-proxy.opennet-initiative.de/)
- der Eintrag ist inhaltlich falsch (z.B. kein https-Ziel für https-Eingang)
- Die vollständige Funktionsfähigkeit lässt sich leicht mit curl prüfen:
curl --header "Host: munin.opennet-initiative.de" http://domain-proxy.on-i.de/