Documentation Index
Fetch the complete documentation index at: https://mintlify.com/mikronita/mikrom/llms.txt
Use this file to discover all available pages before exploring further.
mikrom-network is the mesh networking service for Mikrom. It establishes and maintains a WireGuard overlay network that spans every worker node, platform service, and database VM in the cluster. Worker nodes register their identity over NATS, and mikrom-network synchronises peer state, routes, and cryptographic keys across all participants. The IPv6 addresses assigned by the mesh are the primary addressing scheme used throughout the platform—from workload traffic routing in mikrom-router to internal name resolution in mikrom-dns.
Responsibilities
Mesh Orchestration
Manages WireGuard peer configuration across all nodes. Adds and removes peers as workers join or leave the cluster.
Key Handling
Generates and distributes WireGuard public keys. Maintains cryptographic identity material in the configured data directory.
Route Synchronisation
Keeps routes consistent across all mesh participants. Reacts to NATS events when topology changes.
Host Identity Coordination
Each node is identified by
MIKROM_HOST_ID. The network service uses this identity to register the node and coordinate peer discovery.How It Works
Worker registers via NATS
When a worker node starts,
mikrom-agent and mikrom-network publish the node’s identity and WireGuard public key to the NATS coordination channel.Peer state reconciled
mikrom-network receives the registration event and updates the WireGuard peer list on all participating nodes, establishing encrypted tunnels between them.IPv6 address assigned
The mesh assigns each node an IPv6 address in the
fd00::/8 range. This address is used by platform services, routing rules, and DNS records.IPv6 Addressing
The platform uses IPv6 internally across all services. WireGuard mesh addresses are allocated from thefd00::/8 private range.
IPv6 mesh addresses assigned by
mikrom-network feed directly into DNS records managed by mikrom-dns. Internal service names in the *.mikrom.internal. namespace resolve to these WireGuard addresses.Relationship with Other Services
| Service | Dependency on mikrom-network |
|---|---|
mikrom-router | Uses WireGuard to reach app microVMs. All proxied traffic travels through the mesh. |
mikrom-dns | Consumes mesh IPv6 addresses to populate n.mikrom.internal. and u.mikrom.internal. DNS zones. |
mikrom-agent | Runs alongside mikrom-network on every worker node. The agent relies on the mesh for control-plane connectivity. |
Configuration
| Variable | Default | Description |
|---|---|---|
MIKROM_HOST_ID | required | Unique identity for this network node |
NATS_URL | nats://[::1]:4222 | NATS server URL for peer coordination |
MIKROM_DATA_DIR | /var/lib/mikrom-network | Directory for persistent key material and state |
MIKROM_WG_PORT | 51823 | WireGuard UDP listen port |
MIKROM_ADVERTISE_ADDRESS | — | Optional external address to advertise to peers |
MIKROM_NETWORK_NATS_CONNECT_TIMEOUT_SECS | 5 | Timeout for the initial NATS connection |
Debian Package
A Debian package is available for deployingmikrom-network on production nodes.