Example config linked in readme! My ISP doesn’t offer IPv6, so it might not fit your use case well, but it’s a setup with multiple routing tables (one for vpn, one for direct internet access, one for no internet access)+multiple network namespaces (default namespace has the vpn interface, wan namespace has the vpn socket)+configured dnat/port forwarding which is hard to get right in such setups. It also takes port forwarding rules from another system’s config, which was always my dream before even starting this project lol
“framework” is really the right choice of words because while it’s well integrated with itself, it forces you to use itself, it doesn’t integrate with networking.interfaces
because it itself is a more featureful variant of networking.interfaces
.
In my experience, this let me focus on writing the router itself, while previously half the time I felt that NixOS just doesn’t provide enough customizability for routers. However, I don’t offer many features right now, only device config/network namespace management/bridge creation/veth pair creation/dhcp/router advertisement/wireless access point creation. Obviously, there are many cases for which this won’t be enough. If this isn’t enough for you, open an issue and I’ll try to add what you want (or better yet, do it yourself, as I probably wouldn’t be able to test it).