docs: Mermaid-Architektur-Vergleich (klassisch vs. iroh-forward)
Ersetzt das ASCII-Diagramm durch zwei Mermaid-Diagramme: klassischer Nginx-Reverse-Proxy (Serving Host braucht geroutete IP/VPN + eingehenden Port) vs. iroh-forward (ausgehend per Public Key, kein eingehender Port, CGNAT ok). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,17 +6,45 @@ CGNAT / dynamischer IP), ohne VPN-Daemon und ohne Änderung an OPNsense/Nginx.
|
||||
|
||||
Umsetzung von **Option B** aus `recherche-vpn-vs-p2p-netzwerk.md`.
|
||||
|
||||
## Architektur-Vergleich
|
||||
|
||||
### Klassischer Nginx-Reverse-Proxy
|
||||
|
||||
Nginx leitet per `proxy_pass` an eine **geroutete IP** des Serving Host weiter. Der Serving Host
|
||||
muss dafür über das Netz erreichbar sein — also feste IP bzw. ein VPN-Tunnel und ein eingehender
|
||||
Port. Standortwechsel, CGNAT oder dynamische IPs brechen das Setup.
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
Client([Client]) -->|HTTPS| OPN[OPNsense]
|
||||
OPN --> NGX[Nginx]
|
||||
subgraph NH [Nginx-Host]
|
||||
NGX
|
||||
end
|
||||
NGX -->|"proxy_pass<br/>http://10.0.0.5:3000<br/>(geroutetes Netz / VPN)"| APP
|
||||
subgraph SH ["Serving Host — feste IP / VPN + eingehender Port nötig"]
|
||||
APP[App :3000]
|
||||
end
|
||||
```
|
||||
[Nginx] proxy_pass http://127.0.0.1:9080
|
||||
│ (lokales TCP)
|
||||
▼
|
||||
iroh-forward client --listen 127.0.0.1:9080 --peer <SERVER_ENDPOINT_ID>
|
||||
│ QUIC / Iroh (TLS 1.3, n0-Relay oder Hole-Punch); 1 QUIC-Stream pro TCP-Verbindung
|
||||
▼
|
||||
iroh-forward server --to 127.0.0.1:3000
|
||||
│
|
||||
▼
|
||||
[App :3000]
|
||||
|
||||
### Mit iroh-forward
|
||||
|
||||
Nginx zeigt auf einen **lokalen** Port; der `iroh-forward client` baut die Verbindung über das
|
||||
Iroh-Netz (QUIC, adressiert per Public Key) zum `iroh-forward server` auf. Beide Seiten verbinden
|
||||
sich **ausgehend** (über n0-Relay oder direktes Hole-Punching) — der Serving Host braucht **keinen
|
||||
eingehenden Port** und darf hinter CGNAT / mit dynamischer IP an beliebigem Standort laufen.
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
Client([Client]) -->|HTTPS| OPN[OPNsense]
|
||||
OPN --> NGX[Nginx]
|
||||
subgraph NH [Nginx-Host]
|
||||
NGX -->|"proxy_pass<br/>http://127.0.0.1:9080"| IFC[iroh-forward client]
|
||||
end
|
||||
IFC <-->|"QUIC / Iroh · TLS 1.3<br/>dial by Public Key<br/>n0-Relay oder Hole-Punch"| IFS
|
||||
subgraph SH ["Serving Host — kein eingehender Port · CGNAT / dyn. IP ok"]
|
||||
IFS[iroh-forward server] -->|"127.0.0.1:3000"| APP[App :3000]
|
||||
end
|
||||
```
|
||||
|
||||
QUIC multiplext beliebig viele Streams über **eine** Connection → parallele Requests skalieren
|
||||
|
||||
Reference in New Issue
Block a user