Address, Names, and Anonymity

July 8, 2026 · View on GitHub

A network host needs an address, a way to resolve names, and, in NØNOS, an optional anonymity overlay. DHCP obtains the address, DNS resolves names, and the nym capsule provides a mixnet path. This page documents those three. The code is under userland/capsule_net_core/src/iface/ and src/userspace/capsule_net_nym/.

DHCP

net_core obtains its IPv4 address by DHCP, using smoltcp's DHCP socket (userland/capsule_net_core/src/iface/dhcp.rs). On bring-up the stack starts a DHCP client, which discovers a server, requests a lease, and installs the assigned address, gateway, and DNS server into the interface. This is the piece that was proven at runtime: on a desktop-GUI boot the stack completes driver setup and reaches a bound lease, DHCP BOUND 10.0.2.15 under QEMU's user network, which is the end-to-end evidence that the driver capsule, the frame path, the smoltcp interface, and the DHCP client all work together. The lease is renewed by the same client as it ages.

DNS

Name resolution is a DNS resolver in net_core (src/protocol/dns.rs), using the DNS server the DHCP lease provided. A client asks the sockets service or net_core to resolve a name, and the resolver issues a DNS query over UDP through the same stack and returns the address. Because the resolver runs in the network capsule, name resolution is subject to the same capability boundary as the rest of the stack: a capsule that cannot reach the network cannot resolve names either.

The nym overlay

nym (src/userspace/capsule_net_nym/) is an optional anonymity overlay capsule. Where the base stack carries traffic directly, the nym capsule routes it through a mixnet so the correspondence between a capsule's traffic and its destination is obscured. It is a separate capsule layered alongside the stack rather than a change to it, so it is present when the build includes it and absent otherwise, and traffic that does not use it takes the direct path. Documenting it honestly: it is the anonymity option in the network stack, distinct from the base IP path, and a capsule that wants anonymity routes through it.

Source

  userland/capsule_net_core/src/iface/dhcp.rs    the DHCP client
  userland/capsule_net_core/src/protocol/dns.rs   the DNS resolver
  src/userspace/capsule_net_nym/                  the anonymity overlay capsule