feat(satellite): Port-Tunnel ins fremde Netz + Geraete-Namen
ARIA sitzt woanders und kommt nicht ins Buero-Netz. Der Satellit kann beides: er sieht das LAN und haelt eine ausgehende Verbindung zum RVS. Also reicht er eine TCP-Verbindung durch — wie der VNC-Tunnel, nur fuer beliebige Ports. Damit erreicht ARIA einen FreeCAD-MCP, eine Web-App, ein NAS-Interface. Entscheidend fuer die Brauchbarkeit: die Bridge macht daraus einen GANZ NORMALEN lokalen Port (aria-bridge:19000...). Dadurch funktioniert alles, was sowieso TCP spricht — MCP-Client, curl, Browser — ohne Sonder-API. Jede eingehende Verbindung bekommt einen eigenen Tunnel, parallele Verbindungen sind also kein Problem (ein Browser oeffnet gern sechs). Geraete-Namen: "duffy-desktop" ist ansprechbar, "192.168.1.47" nicht. Stefan kann jedem gefundenen Geraet einen Namen geben, ARIA adressiert danach. Schluessel ist die MAC, nicht die IP — per DHCP wandert die IP, die MAC bleibt. Absicherung, weil das ein Weg in ein fremdes Netz ist: - TUNNEL_ENABLED default AUS, pro Satellit. - Ohne TUNNEL_ALLOW nur Ziele, die bei der Suche GEFUNDEN wurden. Der Tunnel kann damit nichts ansteuern, was nicht ohnehin im LAN sichtbar ist — und nichts im Internet. - Obergrenze gleichzeitiger Tunnel + Reaper fuer ungenutzte (sonst bleibt eine vergessene Verbindung offen, bis der Satellit neu startet). - Faehigkeit 'tunnel' wird im sat_hello gemeldet, damit Diagnostic und ARIA sehen, ob der Satellit das ueberhaupt erlaubt. Neue RVS-Typen eingetragen (sat_tunnel_*, sat_name_*) — ohne das verwirft die Allow-List sie still, und nichts funktioniert ohne Fehlermeldung. 16 Pruefungen gegen BEIDE echten Implementierungen (nur der RVS dazwischen ist kurzgeschlossen): Namensaufloesung, Freigabe-Regeln, fremder Satellit ignoriert, abgeschaltet blockt, echter Byte-Durchlauf (PONG:HALLO), unbekanntes Ziel schliesst sauber statt zu haengen, Liste/Schliessen/Doppel-Schliessen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -89,3 +89,25 @@ HTTP_MAX_CHARS=20000 # Default-Body-Ausschnitt (offset/max_chars pro Reque
|
||||
SCAN_INTERVAL_SEC=300 # Hintergrund-Rescan-Intervall
|
||||
DISCOVER_TIMEOUT_SEC=6 # Dauer eines Sweeps (mDNS + SSDP)
|
||||
DEVICE_CACHE_TTL_SEC=120 # wie lange ein Inventar als "frisch" gilt
|
||||
|
||||
# ── Port-Tunnel ──────────────────────────────────────────────────────
|
||||
# ARIA erreicht ueber den Satelliten einen beliebigen Port im LAN — z.B. ein
|
||||
# FreeCAD-MCP auf einem Rechner oder eine Web-App, die nur hier lauscht. Die
|
||||
# Bridge macht daraus einen lokalen Port (aria-bridge:19000...).
|
||||
#
|
||||
# DEFAULT AUS: das ist ein Weg in dein Netz, den schaltet man bewusst ein.
|
||||
TUNNEL_ENABLED=false
|
||||
|
||||
# Welche Ziele sind erlaubt? LEER = nur Geraete, die der Satellit bei der Suche
|
||||
# auch wirklich gefunden hat (dann aber jeder Port). Damit kann der Tunnel
|
||||
# nichts ansteuern, was nicht ohnehin im LAN sichtbar ist — insbesondere nichts
|
||||
# im Internet. Sonst Liste aus host oder host:port, * als Platzhalter:
|
||||
# TUNNEL_ALLOW=192.168.1.50:8080,192.168.1.60,*:5000
|
||||
TUNNEL_ALLOW=
|
||||
|
||||
TUNNEL_MAX=8 # gleichzeitig offene Verbindungen
|
||||
TUNNEL_IDLE_SEC=900 # ungenutzte Tunnel nach 15 min schliessen
|
||||
|
||||
# Geraete-Namen ("duffy-desktop" statt 192.168.1.47). Schluessel ist die MAC,
|
||||
# damit ein IP-Wechsel per DHCP den Namen nicht verliert.
|
||||
DEVICE_NAMES_PATH=/data/device_names.json
|
||||
|
||||
Reference in New Issue
Block a user