Skip to content

sgros/MIF_NetworkManager

Repository files navigation

PvD and network namespace aware NetworkManager

WARNING: This is a very alpha quality code! Use on your own risk!

This is a fork of NetworkManager with added support for provisioning domains as defined by IETF MIF working group. In due course support for network namespaces in NetworkManager is also added.

In order to test this code you'll need:

  1. Patched version of libndp library with support for parsing PvDs in RA messages. You can find it here.

  2. Modified radvd deamon that sends PvD data. You can find it here.

  3. This version of NetworkManager.

Motivation

The motivation for adding support to NetworkManager to be able to manage network namespaces are:

  1. The ability to isolate certain network connection, like VPNs. So that applications can be forced to use (or not to use) specific connections.

  2. To be able to use separately multiple separate configurations received over the local network, e.g. in case for two or more IPv6 capable routers on the local network. Currently NetworkManager merges all configurations in a single one.

But the primary motivation was to add support for provisioning domains as defined by IETF MIF working group.

TODO

The following items are on a todo list (in a random order):

  1. Add removal of PvDs

  2. Teach nmcli to manipulate provisioning domains

  3. Add PvD for IPv4

  4. Teach nmcli to manipulate network namesapces.

  5. Add Python examples that use provisioning domains.

  6. Add Python examples that use network name spaces.

Links

On the following links you can find more information:

  1. My blog post about GObject system

  2. My blog post about NetworkManager architecture (WIP)

  3. My blog post about integration of NetworkManager and OpenVPN

  4. My blog post on how NetworkManager processes RA messages

  5. My blog post on how connections are handled in NetworkManager