No description
Find a file
Maximilian Wilhelm 9ee3a874d4 Add support for bonding / LAGs.
* Add a bond executor
  * Add mappings from ifupdown1/2
  * Add a detailed man page
  * Remove legacy compatiblity glue for setups with 'requires' only

  The current implementation has to work around the fact that member interfaces
  will be already up then the bond is created. This is simply done by downing
  them, adding them to the bundle and upping them again. This can possible be
  done in a nicer way after revisiting the ordering of plugin execution (#12).

  Closes #91

Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
2020-10-04 01:35:41 +02:00
.github/workflows github: add kyua debug 2020-08-24 03:32:56 -06:00
cmd ifquery: don't build the dependency tree when querying for an interface's properties 2020-09-25 08:43:26 -06:00
dist Add files required for Debian packaging 2020-10-02 00:55:34 +02:00
doc Add support for bonding / LAGs. 2020-10-04 01:35:41 +02:00
executor-scripts Add support for bonding / LAGs. 2020-10-04 01:35:41 +02:00
libifupdown Add support for bonding / LAGs. 2020-10-04 01:35:41 +02:00
tests Merge pull request #94 from ifupdown-ng/bugfix/hetzner-ipv6-default-route-is-link-local 2020-10-02 15:46:03 -06:00
.gitignore ifctrstat: Initial structure for new applet 2020-08-14 11:27:43 -05:00
CODE_OF_CONDUCT.md add code of conduct 2020-07-18 04:51:25 -06:00
COPYING initial commit 2020-07-18 01:17:51 -06:00
Kyuafile tests: start working on testing capabilities 2020-07-18 19:46:32 -06:00
Makefile Add support for bonding / LAGs. 2020-10-04 01:35:41 +02:00
README.md README: link to admin guide 2020-08-18 15:26:14 -06:00

ifupdown-ng

ifupdown-ng is a network device manager that is largely compatible with Debian ifupdown, BusyBox ifupdown and Cumulus Networks' ifupdown2.

For more information read the admin guide.

Dependency Resolution

Dependency resolution example

ifupdown-ng uses a dependency resolver to determine interface bring-up order in a deterministic way.

This is accomplished through a combination of manual hinting using the requires keyword and dependency learning using native executors.

For compatibility with some legacy ifupdown executors, we also provide the requires keyword under other environment variables in some cases.

Caveats

  • ifupdown2 python plugins are not supported at this time. An executor could be written to handle them.

  • ifupdown-ng retains compatibility with /etc/network/if-X.d scripts, but will prefer using executors in /usr/libexec/ifupdown-ng where appropriate.

Building

On musl systems, simply do make and make install to build and install.

On glibc systems, you must additionally define LIBBSD_CFLAGS and LIBBSD_LIBS:

export LIBBSD_CFLAGS=$(pkg-config --cflags libbsd-overlay)
export LIBBSD_LIBS=$(pkg-config --libs libbsd-overlay)
make
make install

To run the tests, do make check.

To build the documentation, do make docs and make install_docs. Building the documentation requires scdoc (apk add scdoc).

Discussion

Discuss ifupdown-ng on IRC: irc.as7007.net #ifupdown-ng