update spec
This commit is contained in:
parent
08d91e3c8d
commit
c8bc8897b1
1 changed files with 13 additions and 3 deletions
16
README.md
16
README.md
|
|
@ -29,18 +29,28 @@ Lain Uplink eXchange
|
|||
______________ ______________
|
||||
```
|
||||
|
||||
# Node
|
||||
## Node
|
||||
|
||||
Each node receives heartbeats from different hosts, registering their state, name, WAN IP and uptime over Exterior connections. Each host can request information about other host only over interior connection. The state must be kept same across all nodes, so fail-over can be configured.
|
||||
|
||||
Node can also provide DNS server front-end for ease integration into DNS resolvers such as unbound, dnsmasq or systemd-resolved.
|
||||
|
||||
# Exterior and Interior
|
||||
## Exterior and Interior
|
||||
|
||||
Exterior connections are made over low-trust medium, such as WAN internet, therefore encryption layer must protect from replay attacks and ensure unique packets.
|
||||
|
||||
Interior connections are made over high-trust medium, like VPN tunnels, such as OpenVPN or Tailscale. Only interior connection can be used to sync state between nodes.
|
||||
|
||||
# Host
|
||||
## Host
|
||||
|
||||
Each host "heartbeats" it's state - such as WAN IP, uptime, resource usage. Host can heartbeat over exterior and interior connections, but information request can only be made through interior, and state must be synced only over interior, since, at moment of request or sync, the exterior uplink information, such as WAN IP, may not be availble, thus, interior connection must be always available and low-cost.
|
||||
|
||||
## State
|
||||
|
||||
Host's state consists of:
|
||||
- Hostname(+.lux)
|
||||
- WAN IP
|
||||
|
||||
Node's state is table of hosts' states + their last heartbeat time.
|
||||
Node state must also include generation ID, which must be guaranteed to be unique in scope of last 128 generations.
|
||||
A new generation should only happen when any of the hosts has new heartbeat.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue