I've been getting tired of Untangle and/or Debian mixing up my network interfaces like its a blender.
Replace ONE of my FIVE network cards? all the interfaces are now randomized.
Upgrade major version? Also interfaces are randomized.
Some reboots? yep you guessed, randomized.
Not even the re-map option in the settings truly works. If I match interface names up to the proper MAC addresses, the IP configuration stays behind on the old MAC (for 50% of my NICs for some reason?).
I don't really get why Untangle doesn't try a little harder to keep the Interface IDs and IP configuration tied more tightly to the MAC address. A plugged in cable will always be tied to a single port and thus a single MAC address, so tieing the upper level stuff to the MAC makes sense to keep the network up and working with hardware changes.
I'm sure this isn't entirely Untangles fault, I've fought similar issues with the new network interface naming scheme on plain Debian servers. In that instance, when the server rebooted, the main interface would change names from enp3s0 to enp4s0. Then when I change the interfaces file and reboot, the name would go back to the enp3s0, like playing wack-a-mole. I got fed up and just slapped a udev rule in to always ensure the same interface name gets applied to the MAC address, then apply IP settings to that interface name.
Ironically, I've hear debian introduced the new naming scheme to stop things like this happening. If I remember correctly, the new interface discovery goes off of the order that PCIe devices are discovered. Well guess what, that is not always a static process!
Sorry for the rant, but the main question I wanted to bring up here is to see if anyone has introduced udev rules into their NG Firewall to lock in MAC addresses to the configurations in the GUI.
It seems that Untangle already does some interface renaming from the standard enp*s*f* scheme to the old eth* style. Not sure entirely how they do that, /etc/udev/ is completely empty.
Untangle seems to leave custom configurations (apt packages, systemd services, etc configs) alone from upgrade to upgrade, so using udev rules seems like a good way to integrate in the long term. The issue is when to apply the rules in the boot process, and what to rename interfaces to. I suppose if Untangle named one interface eth5 which was tied to an IP of 192.168.1.1, then I could throw a 99 udev rule to apply the interface name eth5 to the MAC that was previously used for eth5. Not sure if Untangles programs would kick in after a udev rule and just change it back to some random nonsense though. Perhaps a systemd service to kick off after untangles scripts to rename the interfaces?
Anyone have some good ideas for this?
For anyone wondering, here is my hardware setup (not that old):
CPU: Xeon W-2235
MB: Supermicro x11srl-f (32gb ddr4-2933 Reg. ECC)
2x onboard MB RJ45 ports
NIC1: Intel x710-DA4
NIC2: Intel x710-DA4
NIC3: Intel I350-T4v2
NIC4: Intel I350-T4v2
Replace ONE of my FIVE network cards? all the interfaces are now randomized.
Upgrade major version? Also interfaces are randomized.
Some reboots? yep you guessed, randomized.
Not even the re-map option in the settings truly works. If I match interface names up to the proper MAC addresses, the IP configuration stays behind on the old MAC (for 50% of my NICs for some reason?).
I don't really get why Untangle doesn't try a little harder to keep the Interface IDs and IP configuration tied more tightly to the MAC address. A plugged in cable will always be tied to a single port and thus a single MAC address, so tieing the upper level stuff to the MAC makes sense to keep the network up and working with hardware changes.
I'm sure this isn't entirely Untangles fault, I've fought similar issues with the new network interface naming scheme on plain Debian servers. In that instance, when the server rebooted, the main interface would change names from enp3s0 to enp4s0. Then when I change the interfaces file and reboot, the name would go back to the enp3s0, like playing wack-a-mole. I got fed up and just slapped a udev rule in to always ensure the same interface name gets applied to the MAC address, then apply IP settings to that interface name.
Ironically, I've hear debian introduced the new naming scheme to stop things like this happening. If I remember correctly, the new interface discovery goes off of the order that PCIe devices are discovered. Well guess what, that is not always a static process!
Sorry for the rant, but the main question I wanted to bring up here is to see if anyone has introduced udev rules into their NG Firewall to lock in MAC addresses to the configurations in the GUI.
It seems that Untangle already does some interface renaming from the standard enp*s*f* scheme to the old eth* style. Not sure entirely how they do that, /etc/udev/ is completely empty.
Untangle seems to leave custom configurations (apt packages, systemd services, etc configs) alone from upgrade to upgrade, so using udev rules seems like a good way to integrate in the long term. The issue is when to apply the rules in the boot process, and what to rename interfaces to. I suppose if Untangle named one interface eth5 which was tied to an IP of 192.168.1.1, then I could throw a 99 udev rule to apply the interface name eth5 to the MAC that was previously used for eth5. Not sure if Untangles programs would kick in after a udev rule and just change it back to some random nonsense though. Perhaps a systemd service to kick off after untangles scripts to rename the interfaces?
Anyone have some good ideas for this?
For anyone wondering, here is my hardware setup (not that old):
CPU: Xeon W-2235
MB: Supermicro x11srl-f (32gb ddr4-2933 Reg. ECC)
2x onboard MB RJ45 ports
NIC1: Intel x710-DA4
NIC2: Intel x710-DA4
NIC3: Intel I350-T4v2
NIC4: Intel I350-T4v2
Comment