WIP: request and connection machine

Signed-off-by: Ava Affine <ava@sunnypup.io>
This commit is contained in:
Ava Apples Affine 2026-05-04 20:29:35 +00:00
parent 19fafc6a8c
commit 4f1311d2fe
4 changed files with 375 additions and 8 deletions

View file

@ -22,13 +22,65 @@ The loose plan to implement Muninn is as follows:
9. Muninn can identify as authoritatively owning a certain DN (and Peers abide).
10. Something other than logging is done for conflicts over who owns what DN
Currently Muninn is on phase 2.
Currently Muninn is working on phase 3.
## Building Muninn
simply run `make`.
Muninn is implemented as a statically linked NGINX Module. The output of the
provided build process is an NGINX binary that contains Muninn functionality. To
build Muninn simply run `make`. The resulting binary will be in the build tree
at `$(pwd)/nginx/objs/nginx`.
## Running Muninn
TODO
Muninn may be ran in any way which NGINX is currently run. See the configuration
section for more details. To add Muninn to an existing running NGINX simply
compile Muninn, copy the output binary over your NGINX executable, and follow
the existing NGINX binary upgrade process.
## Configuring Muninn
TODO
Muninn uses an NGINX global configuration block similar to the existing NGINX
HTTP module. To configure Muninn begin a standard NGINX configuration and open
a Muninn block:
```nginx
error_log /dev/stdout info;
pid /tmp/munin_pid;
daemon off;
events {}
muninn {
}
```
To serve DNS over UDP on port 53 add a `dns_listener` directive like below.
Currently Muninn only supports UDP, but plans to provide for TCP and DoH as
development progresses.
```nginx
error_log /dev/stdout info;
pid /tmp/munin_pid;
daemon off;
events {}
muninn {
dns_listen 0.0.0.0:53;
}
```
The default Muninn DNS over UDP server provides for 1024 simultaneous
connections. To change this add the `dns_connection_pool_count` like so:
```nginx
error_log /dev/stdout info;
pid /tmp/munin_pid;
daemon off;
events {}
muninn {
dns_listen 0.0.0.0:53;
dns_connection_pool_count 24;
}
```