Lunar Systems is building the network behind Astra and Heimdall to run on dedicated servers we operate ourselves, not on a cloud provider's compute. Every layer is designed the same way: nodes only dial out, people approve what machines cannot, and emergency calls are never held back by a balance or a fraud check.
Status: PlannedWe are establishing our own ASN and IP address space.
The first point of presence is being brought up. Most of this page describes what is designed and built in code but not yet in service, so every part carries its status. Of everything on this page, only the four DNS and TLS settings on lunarsystems.io are live today.
Liverunning today
In developmentdesigned, built or being built, not in service
Planneddecided, not built yet
Three rules the network is built on.
A voice network meets the open internet on every call: floods, scanners, password guessing against SIP accounts, toll fraud. The machines that carry those calls are worth attacking in their own right. These rules decide how every layer is built.
01
We run it ourselves.
Astra is built to run on dedicated servers that Lunar operates, not on a cloud provider's compute. Every session border controller (SBC), point of presence and control-plane machine is ours to run, and Lunar builds it and looks after it itself; no third party runs it for us. Tenants bring their carriers, numbers, certificates and brand, never hardware.
Status: In developmentThe first point of presence is delivered and being brought up.
02
Nodes only dial out.
Each edge node opens its own encrypted, mutually authenticated connection to the control plane. The control plane never reaches in to a node, and the node's image is designed to carry no remote shell to reach.
Status: In developmentBuilt in code, not in service yet.
03
People approve. Machines can't.
Releasing or re-imaging a node that detection has flagged takes a signed approval from a named person. No control-plane service holds a key that could sign it.
Status: In developmentThe approval signer is built, not deployed yet.
Follow a call inward.
Five rings, from the open internet to the people who approve. A call is decided at the outer ring; the inner rings hold the records, the keys and the approvals.
Outside · the open internetCore · people
01 Edge
Point of presence
Calls are designed to arrive at an active/standby SBC pair. The firewall admits only known SIP peers, the SBC checks every message, and routing is decided right here, on the edge node. Media is anchored at the SBC and accepted only from the negotiated source.
Status: In developmentFirst SBC delivered. Its standby comes before live traffic.
02 Fabric
An outbound-only link
Each node dials out to the control plane over an encrypted, mutually authenticated link. Call records, signed configuration and health data travel over it. The control plane never dials in.
Status: In developmentBuilt in code, not in service.
03 Control
Control plane
Routing data, rating, call records and the audit log. Tenant isolation is enforced in the database, every request is permission-checked, and the audit log is append-only and hash-chained. The staff console is designed to be reachable only over a private network, never from the public internet.
Status: In developmentBuilt in code, not in service.
04 Keys
Signing and approval keys
Each tenant is designed to sign its calls with its own STIR/SHAKEN certificate. Approval keys are non-exportable and live in a separate key store that only the approval signer uses, on a network of its own.
Status: In developmentApproval signer built, not deployed; per-tenant STIR/SHAKEN signing in development.
05 People
Named approvers
Releasing or re-imaging a flagged node, and opening break-glass access, need a named person's own WebAuthn assertion, with user verification. No service can stand in for them, and every signature is logged, append-only.
Status: In developmentThe approval signer is built, not deployed; break-glass access is planned.
The edge appliance: sealed, signed and read-only.
The SBC at a point of presence is where every call's signalling and media arrive. We build it as a sealed appliance, not as a server someone logs in to.
Status: In developmentDesigned; the image's sources are written, and the first build attempts have not yet produced a release image. No node runs it yet.
What every call meets
A default-deny firewall that admits only known SIP peers.
Flood detection, plus size and sanity checks on every message.
A method allowlist and call-rate caps on every trunk.
Bans after repeated failed digest logins.
Uniform responses, so accounts can't be enumerated, and one-time nonces.
TLS 1.2 or later for encrypted signalling.
Media accepted only from the source the call negotiated.
All of this happens on the SBC itself, before a call is admitted or routed.
What the machine is designed to be
Secure Bootenforcing Lunar's own keys
A signed boot imagewith kernel lockdown
A read-only rootverified against a signed hash as it is read
One writable volumeencrypted with a key sealed to the TPM, and sealed only when Secure Boot enforces Lunar's own keys
Secrets in memorydecrypted only into memory-backed storage
No remote shell in the image. Updates are designed to land in a spare A/B slot and to roll back on their own if the new version fails its checks.
Updates are signed, and people release them.
Each update's manifest is designed to be signed and checked by the node before it switches slots. Releases are designed to be signed, to ship with a software bill of materials, and to need two people.
Status: In developmentNo release has shipped through this path yet. Writing updates to the spare slot is planned.
Getting into a running node is the exception.
By design there is no everyday login to an edge node: access is break-glass only, and it takes two people, a signed grant and a recording.
1
Request
A person asks for access to one node, with a reason and a time limit.
2
Approve
A separate security approver agrees, or it goes no further.
3
Sign
The grant is signed, and the node verifies the signature before it opens anything.
4
Record
The session runs in a recorded shell, streamed off the node over the connection the node itself opened.
5
Expire
They connect with a short-lived certificate, and the grant has its own time limit.
Status: PlannedThe recorded shell is not built yet, so break-glass access is not in service.
People approve. Machines can't.
Releasing a quarantined node, or re-imaging one, needs a signed approval from a named approver.
Each approval needs the approver's own WebAuthn assertion, with user verification, bound to a hash of the exact command. A confirm screen that shows the approver exactly what is signed is still to come.
Approval keys are non-exportable and sit in a separate key store that only the signer uses. No control-plane service can sign, change the key policy or create keys.
Adding or removing an approver needs two other approvers as witnesses.
Every signature is logged, append-only.
Status: In developmentBuilt, not deployed.
Secrets: minted by people, never by automation.
Machine secrets are to live in a self-hosted secrets store, with one short-lived identity for each machine or job that uses them.
Its audit trail never records a secret's value.
Tokens are minted by a person, never by automation.
Status: PlannedDecided, not built.
Watching every machine, and the watchers.
Detection is self-hosted and open source, designed so host telemetry never leaves Lunar's own systems. There is no cloud-hosted endpoint detection (EDR) service.
Status: In developmentBuilt, not in service.
When an SBC is flagged
WatchFile-integrity and runtime-behaviour monitoring, reporting to our own detection stack.
FlagA finding on an SBC starts containment automatically.
Fail overIts standby peer takes over the calls.
QuarantineThe flagged SBC passes only emergency and inbound calls.
A person decidesRelease, or re-image from the known-good image, only with a person's signed approval.
Detectors never stop the call software.
No detection or response ever stops the SBC's call software directly. An SBC is contained by failing over and by quarantine.
Other machines are cut off.
A compromised machine that is not an SBC is isolated from the network, except for management and monitoring.
Customer impact needs a person.
Isolating any machine whose loss would block customers' calls needs a person's approval, just as re-imaging does.
Every action is on the record.
Every automatic action is audited, can be reversed, and pages a person at Lunar. The watchers are watched too: a missing heartbeat or a stopped agent is an alert in itself.
Emergency calls go first.
911 and 933 are designed to skip every credit, spend and fraud check, and to route when everything else fails.
From any known trunk or account, an emergency call is designed to skip credit checks, spend caps and fraud locks, and to route even when the account is suspended. It is designed to keep working through every containment state, quarantine included. If the SBC cannot reach its own decision service, emergency calls are designed to route from data held on the SBC itself.
Status: In developmentDesigned so; the normal and degraded routes are exercised in end-to-end tests; the quarantine case is not tested yet. Not in service.
Calls carry their identity.
US voice runs on trust between carriers. Astra is built to sign what it sends and to answer blocks the way the FCC's rules require.
STIR/SHAKEN, per tenant
Each tenant is designed to sign its calls with its own STIR/SHAKEN certificate, not a shared one. The edge is designed to check the signatures on incoming calls; that check is still being completed.
Status: In developmentSigning and verification are both in development.
Blocks answered with 603+
A call blocked on the strength of analytics is designed to be answered with SIP 603+, which carries a redress contact, so whoever placed it knows where to dispute the block.
Status: In developmentBuilt and proven in test. Not live until counsel approves the redress page and its mailbox exists.
How customer data is handled.
Stated precisely, including the places where data does leave our servers.
Treated as CPNI
Call records, phone numbers, recordings and configuration are all treated as customer proprietary network information (CPNI).
Access to CPNI is logged with a stated purpose. Exporting it needs a CPNI permission and a fresh step-up sign-in.
Logs that hold phone numbers count as CPNI too, and authorization headers are scrubbed from them.
Each tenant's data is kept apart in the database itself, and every request is permission-checked.
Status: In developmentDesigned in; not in service.
Where it goes
Host telemetry
Designed never to leave Lunar's own systems. No cloud-hosted endpoint detection service.
Backups
Designed to be encrypted on our servers before they go off-site.
Web traffic
Our public websites are served through a content delivery network, which terminates TLS for them; the portal and API are planned the same way. Calls are designed to bypass it entirely: signalling and media go straight to our SBCs.
Outside providers
Some call-routing lookups (number portability), emergency location updates and notification email are planned to go through outside providers we contract with.
Heimdall
Its customer-facing endpoints are planned as pass-through, so no third party can decrypt the call metadata that customers' systems send. Status: Planned
Status: Planned
Our own ASN and IP space.
We are establishing our own autonomous system number (ASN) and IP address space. Neither is registered yet, and until they are, our servers use the addresses that come with them.
Why it matters: the network-level DDoS scrubbing we plan for our voice points of presence works on address space we hold ourselves. That scrubbing is planned for a later milestone, once the addresses are ours.
More points of presence are planned too. We will list them here when they exist.
Live today on lunarsystems.io.
Applied on 24 September 2026. Anyone can check these from outside with standard DNS and TLS tools.
Status: LiveDNSSEC
The domain is DNSSEC-signed, so a validating resolver can detect a forged answer.
Status: LiveHTTPS only
Plain HTTP is redirected to HTTPS.
Status: LiveTLS
TLS 1.2 is the minimum version, and TLS 1.3 is on.
Status: LiveCAA
CAA records limit which certificate authorities may issue certificates for the domain.
Status, part by part.
Green means live, and only the first row is. Everything else is in development or planned, and says so.
Status of each part of the Lunar network
Part
Status and where it stands
DNSSEC, HTTPS only, TLS 1.2 minimum and CAA on lunarsystems.io
LiveApplied 24 September 2026.
First point of presence and SBC
In developmentDelivered; being brought up.
Standby SBC for the active/standby pair
PlannedBefore live traffic.
Hardened, measured-boot SBC image with TPM-bound encryption
In developmentDesigned; the image's sources are written, and the first build attempts have not yet produced a release image.
SIP edge protections
In developmentWritten into the SBC configuration and partly proven in test; not in service.
Outbound-only encrypted fabric
In developmentBuilt in code; not in service.
Default-deny firewalls on every machine
In developmentDesigned so; applied to each machine as it is brought up.
Approval signer: people approve, machines can't
In developmentBuilt, not deployed.
Detection and containment
In developmentBuilt; not in service.
911 and 933 ahead of credit, spend and fraud checks
In developmentDesigned so; the normal and degraded routes are exercised in end-to-end tests; the quarantine case is not tested yet.
STIR/SHAKEN signing per tenant, and verification
In developmentBoth in development.
SIP 603+ answers with a redress contact
In developmentBuilt and proven in test; not live until counsel approves the redress page and its mailbox exists.
CPNI handling
In developmentDesigned in.
Signed updates with A/B rollback
In developmentVerification built; no release shipped this way yet.
TPM-resident node identity, the recorded break-glass shell, writing updates to the spare slot
PlannedNot built yet.
Two-person release
PlannedIn the design.
Self-hosted secrets store
PlannedDecided, not built.
Pass-through endpoints for Heimdall's customers
PlannedDecided, not built.
Our own ASN and IP space
PlannedEstablishing; not registered.
Network-level DDoS scrubbing for voice
PlannedNeeds our own address space first.
More points of presence
PlannedLater.
Ask us how it's built.
Questions about the network, its security design, or where a part stands? Write to us and we will answer. We would rather explain a design choice than have you guess at it.