2020-07-18 11:15:10 +00:00
|
|
|
# ifupdown-ng
|
|
|
|
|
2020-07-24 12:07:36 +00:00
|
|
|
ifupdown-ng is a network device manager that is largely compatible with Debian
|
|
|
|
ifupdown, BusyBox ifupdown and Cumulus Networks' ifupdown2.
|
|
|
|
|
2020-08-18 21:26:14 +00:00
|
|
|
For more information read the [admin guide](doc/ADMIN-GUIDE.md).
|
|
|
|
|
2020-07-24 12:07:36 +00:00
|
|
|
## Dependency Resolution
|
|
|
|
|
2020-07-24 12:15:10 +00:00
|
|
|
![Dependency resolution example](doc/img/dependency-resolution.png)
|
2020-07-24 12:07:36 +00:00
|
|
|
|
|
|
|
ifupdown-ng uses a dependency resolver to determine interface bring-up order
|
2020-08-18 20:42:30 +00:00
|
|
|
in a deterministic way.
|
|
|
|
|
|
|
|
This is accomplished through a combination of manual hinting using the `requires`
|
|
|
|
keyword and dependency learning using native executors.
|
2020-07-24 12:07:36 +00:00
|
|
|
|
|
|
|
For compatibility with some legacy ifupdown executors, we also provide the
|
|
|
|
`requires` keyword under other environment variables in some cases.
|
|
|
|
|
|
|
|
## Caveats
|
2020-07-18 11:15:10 +00:00
|
|
|
|
|
|
|
* 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.
|
|
|
|
|
2020-07-24 13:17:18 +00:00
|
|
|
## Building
|
|
|
|
|
2020-07-25 07:16:01 +00:00
|
|
|
On musl systems, simply do `make` and `make install` to build and install.
|
|
|
|
|
2020-10-13 22:12:24 +00:00
|
|
|
On glibc systems, you must install `libbsd-dev` or equivalent and additionally define `LIBBSD_CFLAGS` and `LIBBSD_LIBS`:
|
2020-07-25 07:16:01 +00:00
|
|
|
|
2020-10-13 21:11:58 +00:00
|
|
|
# instal packages
|
|
|
|
apt install build-essential libbsd0 libbsd-dev
|
|
|
|
|
|
|
|
# build ifupdown-ng
|
|
|
|
make LIBBSD_CFLAGS="$(pkg-config --cflags libbsd-overlay)" LIBBSD_LIBS="$(pkg-config --cflags --libs libbsd-overlay)"
|
2020-07-25 07:18:03 +00:00
|
|
|
make install
|
2020-07-24 13:17:18 +00:00
|
|
|
|
2020-10-13 21:11:58 +00:00
|
|
|
To run the tests, do `make check`. Running the checks requires `kyua` (`apk add kyua`, not packaged for Debian).
|
2020-07-24 13:17:18 +00:00
|
|
|
|
|
|
|
To build the documentation, do `make docs` and `make install_docs`. Building
|
2020-10-13 21:11:58 +00:00
|
|
|
the documentation requires scdoc (`apk add scdoc` / `apt install scdoc`).
|
2020-08-13 06:36:15 +00:00
|
|
|
|
|
|
|
## Discussion
|
|
|
|
|
2021-06-03 17:18:27 +00:00
|
|
|
Discuss ifupdown-ng on IRC: irc.oftc.net #ifupdown-ng
|