Brad Beam 313c118ad0 refactor(networkd): Replace networkd with a standalone app
This is a major rewrite of our network subsystem.

- This changes networkd to run as a standalone app versus internal goroutine
- This changes out the netlink package with the more idiomatic netlink/rtnetlink
  packages
- This changes the initial network bootstrap/discovery from using a single
  interface to attempting to bring up all interfaces
- This moves us back on to the upstream dhcp library

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-08-21 13:24:51 -05:00

15 lines
708 B
Markdown

# networkd
Networkd handles the addressing and interface configuration in Talos.
The general workflow is:
- Discover all network interfaces ( `networkd.Discover()` )
- Create an abstract representation of the network interface configuration ( `nic.NetworkInterface` )
- Merge userdata configuration options on top of the `nic.NetworkInterface` representation
- Configure the network interfaces based on the abstract representation ( `networkd.Configure(...)` )
- - Bring interface up
- - Begin address configuration method ( `address.DHCP`, `address.Static` )
- - Create rtnetlink message to set address based on config method
- - Create rtnetlink message to set any routes defined by the address method