I built a new firewall under Debian 12. The machine has eight network ports, and during configuration I accidentally used the same name for a couple of the ports in the files under /etc/systemd/network/*.link. I ended up with two link files referencing two different MAC addresses but naming each of them as WAN0, and once systemd got that configuration it wouldn’t let it go.

From what I could find online, normally I would just issue systemctl daemon-reload followed by a update-initramfs -u and after a reboot systemd should have had the updated information… but no dice this time. The way I finally discovered the problem was when I noticed under ifconfig that my wan0 port was pointing to the wrong MAC address (even though the link files had been corrected).

After several hours of fighting with it, I finally managed to get it to work by renumbering all of my link files, and now the information for each port matches up correctly. But my real question here is WHY did systemd refuse to read updated link files? Is there another step I should have taken which was mysteriously never mentioned in any of the dozens of web pages I looked at trying to fix this? I really need to understand the proper process for getting it to correctly use these files so I can maintain the machine in the future.

(God I miss the reliability of udev already)

  • waldekA
    link
    fedilink
    arrow-up
    2
    ·
    9 hours ago

    I assume you’re using systemd-networkd so did you try using networkctl to reload and reconfigure your networks? By using status you can see which files are being used by your interface. I hope this points you to an explanation.

    ➜  ~ sudo networkctl
    delete       -- Delete virtual netdevs
    down         -- Bring devices down
    forcerenew   -- Trigger DHCP reconfiguration of all connected clients
    label        -- Show address labels
    list         -- List existing links
    lldp         -- Show Link Layer Discovery Protocol status
    reconfigure  -- Reconfigure interfaces
    reload       -- Reload .network and .netdev files
    renew        -- Renew dynamic configurations
    status       -- Show information about the specified links
    up           -- Bring devices up
    
    • Shdwdrgn@mander.xyzOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 hours ago

      I did run across it and tried doing a reload, but it looks like according to the help file that doesn’t do anything with the link files? I tried networkctl status but that doesn’t show any info about what files are being used so I’m not sure what you’re seeing? It only gives me a list of the IPs used by each interface, plus some log info at the end of ppp0 going up and down while I was setting it up. If it helps, this is what one of my link files looks like…

      [Match]
      MACAddress=24:6e:96:4e:21:73
      
      [Link]
      NamePolicy=
      Name=wan0