diff options
| author | Karel Kočí <cynerd@email.cz> | 2026-01-30 15:27:13 +0100 |
|---|---|---|
| committer | Karel Kočí <cynerd@email.cz> | 2026-01-30 15:27:13 +0100 |
| commit | f9166ee63944c6c7aad88fdd84cebf360b03de29 (patch) | |
| tree | 26ec6e495761a17474f2b488adfb1516174f787c /2026-fosdem/pres.typ | |
| parent | 24e314ca2b56f059f8af28a20b0d2215dbe33eaa (diff) | |
| download | presentations-f9166ee63944c6c7aad88fdd84cebf360b03de29.tar.gz presentations-f9166ee63944c6c7aad88fdd84cebf360b03de29.tar.bz2 presentations-f9166ee63944c6c7aad88fdd84cebf360b03de29.zip | |
Add presentation: Fosdem 2026
NixOS on routers
Diffstat (limited to '2026-fosdem/pres.typ')
| -rw-r--r-- | 2026-fosdem/pres.typ | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/2026-fosdem/pres.typ b/2026-fosdem/pres.typ new file mode 100644 index 0000000..ad63c6c --- /dev/null +++ b/2026-fosdem/pres.typ @@ -0,0 +1,178 @@ +#import "@preview/polylux:0.4.0": * +#import "@preview/metropolis-polylux:0.1.0" as metropolis + +#show: metropolis.setup +#show: metropolis.setup.with(footer: [NixOS on routers]) + +#slide[ + #set page(header: none, footer: none, margin: 3em) + + #text(size: 1.3em)[*NixOS on routers*] + + Fosdem 2026 + + #metropolis.divider + + #set text(size: .8em, weight: "light") + Karel Kočí + + 31.01.2026 + + https://git.cynerd.cz/presentations/tree/2026-fosdem +] + +#metropolis.new-section[Why?] + +#slide[ += Why? + +#toolbox.side-by-side[ +- Unified deployment +- Unified management +- Unified monitoring +- Unified tools +][ +#set align(center) +#image("unified.png") +] +- Reproducible +] + +#slide[ + #set page(header: none, footer: none, margin: 0em) + + #set align(center) + #grid( + columns: (50%, 50%), + rows: (47%, 53%), + image("omnia.jpg"), + image("mox.jpg"), + image("ssh-omnia.png"), + image("ssh-mox.png"), + ) +] + +#metropolis.new-section[Network Setup] + +#slide[ += SystemD Networkd +#set text(18pt) +```nix +boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1; +networking.useNetworkd = true; +systemd.network = { + "eth1" = { + matchConfig.Name = "eth1"; + networkConfig = { + Address = "192.168.1.1/24"; + IPv4Forwarding = "yes"; DHCPServer = "yes"; DHCPPrefixDelegation = "yes"; + IPv6Forwarding = "yes"; IPv6SendRA = "yes"; IPv6AcceptRA = "no"; + }; + dhcpServerConfig = { + UplinkInterface = "eth0"; + PoolOffset = 100; PoolSize = 100; + }; + dhcpPrefixDelegationConfig = { + UplinkInterface = "eth0"; SubnetId = 1; Announce = "yes"; + }; + }; +}; +``` +] + +#slide[ += Resolved +#set text(18pt) +```nix +services.resolved = { + enable = true; + settings.Resolve = { + DNSStubListenerExtra=["192.168.1.1"]; + FallbackDNS = ["1.1.1.1" "8.8.8.8"]; + }; +}; + +systemd.network."eth1".dhcpServerConfig = { + EmitDNS = "yes"; + DNS = "192.168.1.1"; +}; +``` +] + +#slide[ += Firewall +#set text(18pt) +```nix +networking.firewall = { + interfaces."eth1".allowedUDPPorts = [ + 53 67 68 + ]; + + nat = { + enable = true; + externalInterface = "eth0"; + internalInterfaces = ["eth1"]; + }; +}; +``` +] + +#metropolis.new-section[Choosing Hardware] + +#slide[ += Hardware Requirements + +- 2-\? Ethernet interfaces +- Wi-Fi? +- Storage (NixOS at least 16G): NVMe / mSD card +- CPU architecture: Watts vs. support +] + +#slide[ += SOHO Router +#set align(top) +Commonly ARMv7l or AArch64. +#toolbox.side-by-side[ +== Advantages +- Small form factor +- Lower power consumption +][ +== Disadvantages +- Harder to get running +- Requires cross-compilation +- ARMv7l on NixOS is pain +] +] + +#slide[ += x84_64 with PCIe cards +#set align(top) +#toolbox.side-by-side[ +== Advantages +- Architecture fully supported +- Not different from server +- More powerful for service hosting +][ +== Disadvantages +- Possibly higher power consumption +- Large form factor +] + +#set align(horizon) +Most likely better paired with SOHO for Wi-Fi and non-NixOS switch. +] + +#slide[ + #show: metropolis.focus + Thank you + + Karel Kočí + + #metropolis.divider + + #text(size: 0.7em)[ + https://gitlab.com/Cynerd/nixos-personal + + https://git.cynerd.cz/presentations/tree/2026-fosdem + ] +] |
