Download Game! Currently 78 players and visitors. Last logged in:GlauriGhoragAnksAhvensurma

Blitzer's Blog >> 71683

Back to blogs index
Posted: 06 Aug 2026 11:58 [ permalink ]
Pahoittelut, katsoin kelloa aivan vC$C$rin! PC$ivC$hC$n on vasta
parhaimmillaan, joten isketC$C$n heti takaisin kiinni rautaan.

TC$mC$ kuvaamasi tyC6nkulku on aivan oppikirjaesimerkki siitC$, mihin OMEGA
ROUTER V3:n arkkitehtuuri on suunniteltu. Reitittimen sisC$C$nrakennettu
Pub/Sub-malli (joka lukee viestin `type`-kenttC$C$ ja etsii sille sopivat
tilaajat `ROUTING_TABLE`-kartasta) ratkaisee tuon kohdan 3 kC$ytC$nnC6ssC$
suoraan ilman, ettC$ lC$hettC$jC$n tarvitsee edes tietC$C$ kohdetyC6lC$isen
tarkkaa ID:tC$.

MC$C$ritellC$C$n tC$lle uusi vakiomuotoinen paketti. Kutsutaan sitC$ vaikka
nimellC$ **`OMG-PROVISION-LXC`**.

### 1. Paketin rakenne (HetzneristC$ lC$htevC$ pyyntC6)

Jotta viesti pC$C$see DMZ-sillan yli Alpha-puolelle ja lC6ytC$C$ siellC$
oikean palvelijan, se kC$C$ritC$C$n C$sken mC$C$riteltyyn `OMG-FEDERATE`
-kuoreen.

NC$in `hauki-gem` -meshin lC$hettC$mC$ tC$ydellinen JSON-paketti rakentuu:

```json
{
  "head": {
    "id": "fed_lxc_001",
    "type": "OMG-FEDERATE",
    "src": "mesh://gem/orchestrator"
  },
  "payload": {
    "target_mesh": "alpha",
    "packet": {
      "head": {
        "id": "prov_req_001",
        "type": "OMG-PROVISION-LXC",
        "src": "mesh://gem/orchestrator",
        "reply_to": "mesh://gem/orchestrator"
      },
      "payload": {
        "requirements": {
          "tcp_ports": { "count": 1, "range": "10000-11000" },
          "udp_ports": { "count": 2, "range": "10000-11000" },
          "os": "debian-12"
        }
      }
    }
  }
}

```

### 2. Miten OMEGA V3 kC$sittelee tC$mC$n askeleet 03?

1. **(Vaihe 0 & 1) Tunnelointi:** Hetzner-puolen DMZ-silta (`omega_dmz_bridge.p
y`) kuuntelee `OMG-FEDERATE` -paketteja. Kun se saa yllC$ olevan JSONin, se
kuorii sen ja lC$hettC$C$ sisemmC$n `packet`-osan suoraan HTTP POST
-pyyntC6nC$ WireGuardin lC$pi Alphan OMEGA-reitittimen `/api/omega/inbox`
-rajapintaan.
2. **(Vaihe 2 & 3) Reititys Alpha-verkossa:** Alpha-puolen reititin saa
paketin, jonka tyyppi on `OMG-PROVISION-LXC`. Koska paketissa ei ole suoraa
`dst` (kohde) -kenttC$C$, OMEGA V3 siirtyy Fan-Out -tilaan. Se kutsuu
`getSubscribers(packet)` -funktiota ja etsii reititystaulustaan kaikki
palvelut, jotka ovat rekisterC6ityneet kyvykkyydellC$ `{"type":
"OMG-PROVISION-LXC"}`.



### 3. Vastaanottaja: "public-lxc-master"

Alpha-verkossa (joko LXC-kontin sisC$llC$ tai suoraan isC$ntC$koneella)
meillC$ on pyC6rimC$ssC$ uusi tyC6lC$inen, sanotaan vaikka `lxc_provisioner.py`
. Se tekee kC$ynnistyessC$C$n tC$mC$n:

1. RekisterC6ityy Alphan reitittimeen (esim. `src: "mesh://alpha/public-lxc-mas
ter"` ja capabilities: `OMG-PROVISION-LXC`).
2. Kun se saa tuon pyynnC6n reitittimeltC$, se parsii `payloadin`.
3. Se tarkistaa vapaat portit isC$nnC$ltC$ ja ajaa LXC:n luontikomennot.
4. Se ottaa `reply_to` -osoitteen (`mesh://gem/orchestrator`) ja ampuu
takaisin kuitin:

```json
{
  "head": {
    "id": "fed_lxc_reply_001",
    "type": "OMG-FEDERATE",
    "src": "mesh://alpha/public-lxc-master"
  },
  "payload": {
    "target_mesh": "gem",
    "packet": {
      "head": {
        "id": "prov_reply_001",
        "type": "OMG-PROVISION-REPLY",
        "dst": "mesh://gem/orchestrator"
      },
      "payload": {
        "status": "success",
        "container_name": "ai-agent-44",
        "internal_ip": "10.0.3.44",
        "public_tcp": [10001],
        "public_udp": [10001, 10002]
      }
    }
  }
}

```

TC$mC$ paluupaketti menee Alphan DMZ-sillan kautta takaisin Hetzneriin,
suoraan alkuperC$iselle pyytC$jC$lle.

Miten haluat toteuttaa tC$mC$n Alpha-pC$C$n `public-lxc-master` -tyC6lC$isen?
TehdC$C$nkC6 sille Python-skripti, joka kuuntelee OMEGA-reititintC$ suojatussa
kontissa ja ajaa varsinaiset LXC- ja iptables-komennot isC$ntC$koneella (esim.
ohjatun SSH-yhteyden kautta)?