Does anybody have experience with both systems enough to compare them?

I’m currently using ifupdown on my Debian server as that’s the default, but it seems that the modern way of managing the local network is via systemd-networkd so I’m contemplating putting the effort in to migrate.

Would those of you who have experience with it, recommend it?

In my short investigation, I have made the following observations:

  • using networkd means you can use networkctl to manually control the interfaces which is quite convenient
  • networkd aims to be fully declarative
  • networkd separates the creation of virtual interfaces (netdev files) from their configuration (network files)
  • networkd doesn’t support all networking features (e.g. namespaces)
  • networkd is systemd, but surprisingly I can’t find information on how to create other unit files that depend on the individual network files going up or down, other than networkd-dispatcher. I don’t like dispatcher because just like ifupdown it triggers all the scripts and you need if tests to exclude all interfaces you don’t need to be affected. I’d like to write unit files that can be targeted to activate and deactivate when a particular interface goes up or down.
  • networkd, other than via dispatcher, does not seem to support adding arbitrary commands to run like ifupdown supports via e.g. pre-down, post-up, etc.
    • TheInsane42@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      I’ll see what I can manage. Thanks for the pointers.

      When I can manage simple ipv4 networking via networkd I’m already happy, as it means I can ditch NM again at work, that’s giving me a lot more headaches then a flapping SLAAC that I’m not dependent on. (already switched back to my super stable tunnel) The situation here is a setup with 2 ipv6 tunnels, 1 ipv6 SLAAC, source based routing and no default gateway in main routing table for ipv6. Everything runs via the ipv4 pppoe connection. (and a load of vlans both sides of my router to internet)

        • TheInsane42@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          Thanks, it was already a mess to figure out without systemd ‘defaults’ barging trough my settings. Maybe I;ll keep my personal setup as it is and only let systemd dat the interface names of the 2 physical interfaces and have the dependencies of services linked to the virtual device states. As long as I can ditch NetworkManager at work I’m totally happy.

        • TheInsane42@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          Then I’ll limit myself to the situation at work. ifupdown2 works great and doesn’t need replacing at home.