From Mageia wiki
Jump to: navigation, search


Add IPv6 and NetworkManager compatibility to network drakx tools


  • Name: Pablo Saratxaga
  • Email: <>


I can volunteer to update drakfirewall for IPV6 - Derek Jennings

I will help test native ipv6 -- alien

Current status

  • Targeted release: Mageia 4 - Mageia 5
  • Last updated: 2013/06/21
  • Percentage of completion: 3%

Detailed Description

Modern GNU/Linux are standardizing around NetworkManager, the network configuration tools of various Desktop environments are using NetworkManager dbus service to configure, enabele or disable network settings. The idea is that regardless of which tool you use, the network setting will be available the same.

Mageia drakx tools are however quite outdated; they have several drawbacks:

  • complete lack of IPv6 support
  • loss of data when rewritting an existing config (features that are supported by network init scripts or NetworkManager, but that will be deleted if the config file is rewritten by drakx tools)
  • lack of support for multiple IPv4 adresses per interface

Actually the Mageia distribution uses for network settings an "ifcfg" file setting inherited from RedHat/Fedora; and NetworkManager reads/writes to those files (trough the ifcfgrh module). So, on a first step, we don"t need to go to full NetworkManager support; only reading/writting ifcfg files would be enouth, but we must do it in full (recognize and allow to modify all the possible settings).

What need to be done in that first step:

  • recognize all the possible values in ifcfg files
  • synchronize when possible with upstream values (some Mandriva specific stuff is now supported in Fedora but with other names)
  • try to push upstream the still existing mageia specific features
  • add IPv6 support or equivalents for all internal network functions
  • rewrite user interface of drtakx gui tools to expose those features

Why it would be good for Mageia to include it

current tools are deficient; and while some full featured DE like Gnome, KDE have tools that provide the needed functionality, we should provide good tools that integrate in mageia control center, and are vailable even for people without Gnome or KDE. Plus there are some few Mageia specific network settings that require specific tool to configure.
It would also be a plus for users that use different desktops from time to time. (e.g. Gnome and XFCE)

Test case

  • ability to handle all ifcfg files as of now, with addition of multiple IPv4 adresses per interface and IPv6 manual and radvd configs (that is, IMHO the very minimum for a modern day OS)
  • ability to create trough drakx tools the same ifcfg files as with NetworkManager
  • ability to create 6in4 (IPv6 'sit' tunneling) in drakx-tools (nm-connection-editor seems not to be able yet)

Software / Packages Dependencies

  • drakx-net
  • installer ? (not crucial, but if that can be done easily, IPv6 support at install time will be nice)

What could disrupt development of this new feature

nothing should; as none of the planed features changes syntax of existing ifcfg variables; only support for new ones is added.

a sensible area will be wireless, as we historically have some divergeances with other ifcfg distros here; special point to test.


  1. understanding the problem, the internals of drakx-net and NetworkManager service interface (done)
  2. write converters for ifcfg <-> nm data structure (NM one is much better to handle as it can have complex structure, arrays, hashes, etc) (ifcfg -> nm mostly done)
  3. add IPv6 support to internal helper functions (mostly done)
  4. add missing features to gui tools (currently testing multiple IP per interface in drakconnect)
  5. use nm data structure internally (yet to do)


Release Notes


There isn't much documentation, or it is outdated. Reading the code is the way.

  • all non obsolete network variables in /usr/share/doc/initscripts/sysconfig.txt should be supported
  • check ifcfg variables used by nm-connection-editor (read the source or create connections and look at the generated ifcfg file)
  • /usr/lib/libDrakX/network/*.pm (and recursively), /usr/sbin/drak{hosts,connect} etc.