synet-root
is the authoritative IP registry and allocation service for the Synet network. It functions as the root of trust for:
Every trusted gateway and DNS server in Synet syncs with this service to ensure consistency and security across the mesh.
Responsibility | Description |
---|---|
Fixed IP Registry | Stores and signs assignments for permanent fd00::/16 addresses. |
Gateway Pool Delegation | Allocates subnet blocks to gateways for dynamic DHCP assignment. |
Ownership Verification | Allows agents to prove that an IP was assigned to them via cryptographic signatures. |
Gateway Sync API | Gateways fetch latest pool state, validations, and delegation list. |
Admin Interface (future) | Manual approvals, revocation, metrics. |
Type | Format | Example |
---|---|---|
Fixed | fd00:0000::1/112 |
Reserved by synet-root , assigned per-agent. |
Gateway Pools | fd00:1000::/64 |
Delegated to a specific synet-gateway . |
Special Networks | fd00:ffff::/48 |
Reserved for Synet-wide services or experimental routing. |
synet-dns
to request a static IP:synet-dns request-static-ip --name agent.sy --pubkey 0xABC123...
synet-dns
sends a request to synet-root
API:POST /request-ip
{
"pubkey": "0xABC123...",
"requested_name": "agent.sy"
}
synet-root
checks for conflicts and responds:{
"assigned_ip": "fd00::1234",
"signature": "0xSYNROOTSIG"
}
When connecting via synet-gateway
, agent submits:
{
"pubkey": "0xABC123...",
"requested_ip": "fd00::1234",
"synroot_signature": "0xSYNROOTSIG"
}
Gateway Flow:
Verifies:
pubkey
Accepts and provisions the tunnel
Endpoint | Method | Description |
---|---|---|
/request-ip |
POST | Request new fixed IP |
/verify-ip |
POST | Return true/false for IP+signature |
/gateway-pools |
GET | List gateway IP blocks and current assignment state |
/assign-pool |
POST (admin) | Allocate subnet to gateway |
/revoke-ip |
POST (admin) | Revoke or recycle IP |
{
"ip": "fd00::1234",
"assigned_to": "0xABC123...",
"signature": "0xSYNROOTSIG",
"issued_at": "2025-04-28T00:00:00Z",
"expires_at": "never"
}
We may expose a CLI (synet-rootctl
) for:
synet-rootctl assign --to 0xPUBKEY --ip fd00::1
synet-rootctl revoke --ip fd00::1
For now, most access is via the synet-dns
or synet-gateway
.
/verify-ip
as a standalone lib