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

708 B

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