netconf

Welcome, visitor!

netconf is a network configuration management system designed with modern network infrastructures and the needs of roaming users in mind. It is currently in development and not yet usable.

Motivation & overview

On Linux systems nowadays, network configuration is handled differently on each distro. The solutions are usually quite mature and flexible, but are starting to reach their limits given today’s requirements, which include roaming laptops and wireless networks, VPNs, LinkLocal networks, etc… The distro-specific methods usually employ hooks to configure everything beyond the simple IP interface, but the solutions are quite brittle in the event of errors or exceptional situations.

Projects, such as NetworkManager, address the needs of the roaming laptop user, but they cannot cater for other, more general use cases. In addition, its GUI-centric approach often leaves advanced users with a feeling of lack of control, and imposes unneccessary dependencies for minimal systems.

netconf aims to address these problems. It is a daemon designed from the bottom up with only minimal functionality. It uses an event-driven model and well-defined, bidirectional interfaces, which make it possible to integrate advanced functionality: link and location autodetection; configuration of printers, smarthosts, proxies, etc. from DHCP data; LinkLocal addressing; wireless LAN; VPN; firewalling; advanced routing and traffic control, including bridging, various user interfaces (including the NetworkManager GUI), and so on.

The daemon is implemented without threads and only uses polling where absolutely necessary, thus letting the processor sleep, which reduces power consumption.

netconf is being developed for Debian systems but its design makes it trivial for other distributions (even those using non-Linux kernels) to deploy it without the need to adopt Debian’s network configuration paradigms — in fact, the compatibility with Debian’s well-established ifupdown is implemented as an extension to the netconf core.

The code is currently in alpha state. It is implemented in Python and will eventually be ported to C or C++.

Licence & copyright

netconf is the brainchild and copyright © martin f. krafft. The code is available under the terms of the GNU General Public License v2.

The logo has been designed by Aurore D., who holds the copyright. She placed it under the same license. It is available as SVG file from the Git repository.

Links & development resources

Talks & presentations

How can you help?

I’d much rather be a part of a team behind netconf and am looking forward to working with you. There are plenty of opportunities to contribute to netconf:

If any of the above strike your fancy, git the code and subscribe to the mailing list and let us know. Or write to me (madduck) only if you’d prefer not to go public just yet.