HS-class DNS zone files, Hesiod naming, and resource mapping for the FlatRacoon Network Stack.
Implements the Hesiod naming system (RFC 1535 adjacent) for service discovery and resource location within the private network.
Part of the FlatRacoon Network Stack.
βββββββββββββββββββββββββββ
β Hesiod DNS Server β
β (This Module) β
β βββββββββββββββββ β
β β’ HS class records β
β β’ Service location β
β β’ User/group mapping β
βββββββββββββ¬ββββββββββββββ
β
ββββββββββββββββββββΌβββββββββββββββββββ
β β β
ββββββββΌβββββββ ββββββββΌβββββββ ββββββββΌβββββββ
β Services β β Users β β Resources β
β .service β β .passwd β β .filsys β
βββββββββββββββ βββββββββββββββ βββββββββββββββHesiod is a DNS-based naming system developed at PMPL-1.0βs Project Athena. It uses the HS (Hesiod) DNS class to provide:
-
Service discovery - Locate services by name
-
User information - passwd/group lookups via DNS
-
Resource mapping - Mount points, printers, etc.
-
Configuration distribution - Centralized config via DNS
-
HS-class zone files - Hesiod DNS records
-
Service registry - FlatRacoon service locations
-
User/group mapping - Integration with authentication
-
Resource definitions - Storage, compute, network resources
-
Dynamic updates - RFC 2136 compliant updates
hesiod-dns-map/
βββ zones/
β βββ flatracoon.hs # Main Hesiod zone
β βββ service.hs # Service locations
β βββ passwd.hs # User mappings
β βββ group.hs # Group mappings
β βββ filsys.hs # Filesystem mappings
βββ configs/
β βββ named.ncl # BIND/Knot configuration
β βββ hesiod.ncl # Hesiod-specific settings
β βββ dynamic.ncl # Dynamic update policies
βββ scripts/
β βββ generate-zones.sh # Zone file generation
β βββ update-service.sh # Service registration
β βββ sync-users.sh # User sync from LDAP/AD
βββ manifests/
β βββ deployment.yaml
β βββ service.yaml
βββ Justfile
βββ README.adoc
βββ STATE.scm
βββ META.scm
βββ ECOSYSTEM.scm| Input | Description | Source |
|---|---|---|
Service registry |
Service name β address mappings |
FlatRacoon modules |
User database |
User/group information |
LDAP/AD or local |
Resource definitions |
Storage and compute resources |
Infrastructure config |
Zone configuration |
DNS zone parameters |
configs/hesiod.ncl |
| Output | Description |
|---|---|
HS-class DNS server |
Hesiod-enabled DNS resolver |
Service discovery |
|
User lookups |
|
Resource mapping |
Mount points, printers, etc. |
; Service: twingate
twingate.service HS TXT "twingate-connector.default.svc.cluster.local:443"
; Service: ipfs-gateway
ipfs-gateway.service HS TXT "ipfs-gateway.ipfs.svc.cluster.local:8080"
; Service: zerotier-api
zerotier-api.service HS TXT "zerotier-api.zerotier.svc.cluster.local:9993"; User: admin
admin.passwd HS TXT "admin:*:1000:1000:Admin User:/home/admin:/bin/bash"
; Group: operators
operators.group HS TXT "operators:*:1001:admin,user1,user2"-
All modules - Service discovery via Hesiod
-
twingate-helm-deploy - Registered as service
-
ipfs-overlay - Bootstrap nodes via Hesiod
-
network-dashboard - DNS health monitoring
{
"module": "hesiod-dns-map",
"version": "0.1.0",
"layer": "naming",
"requires": ["bind", "kubernetes"],
"provides": ["hesiod-dns", "service-discovery", "user-lookup"],
"config_schema": "configs/schema.ncl",
"health_endpoint": "/dns/health",
"metrics_endpoint": "/dns/metrics"
}# 1. Generate zone files from registry
just generate-zones
# 2. Deploy Hesiod DNS server
just deploy
# 3. Test service discovery
just query twingate.service
# 4. Register new service
just register-service myapp 10.0.0.50:8080See TOPOLOGY.md for a visual architecture map and completion dashboard.