Network bridging or bounding gives errors

From firmware 2025.0 the network is handled by systemd. On regular Linux systems this gives the opportunity to modify the network ports with ‘special’ effects.
In my case I need to connect both X1 en X2 on one switch (layer 2) and let then act as one port. Using the bind option it could cause a network storm, but there is also the bound option and so that X1 and X2 will be in double or backup mode.

I tried this settings:

/etc/systemd/network/30-bond0.netdev
[NetDev]
Name=bond0
Kind=bond
[Bond]
Mode=active-backup

/etc/systemd/network/30-bond0.network
[Match]
Name=bond0
[Network]
Address=192.168.100.10/24
Gateway=192.168.100.1

both /etc/systemd/network/10-eth0.network and /etc/systemd/network/10-eth1.network
[Match]
Name=eth0 # (and eth1 for the second file)
[Network]
Bond=bond0

Unfortunately this caused the controller go into a faulty state. The X2 port was still active and the WBM page is accessible with this message: “Failed to query device data!”

Conclusion; this is probably not allowed by plcNext as it loses control over X1 an X2.

Now I wonder is there way to achieve what I want?

Any suggestion is much appreciated.

Kind regards, Wilco

1 Like

Hello Wilco,

This is an interesting use case, but as you noticed, it causes some issues with the PLCnext system.

Basically, everything that explicitly binds directly to a specific interface instead of just an IP address will cause issues in this setup.
For example, PROFINET is bound directly to NICs.

Therefore, rerouting all TCP traffic to X1 by default will not work as expected, and the PN adapter will still be on X2 instead. This will cause issues.

Do you need PROFINET in your setup?

PLCnext also currently parses the 71-if-XX.network files and expects them to exist. You can extend the network settings through additional files, but having settings that are directly in conflict with existing configurations will cause issues.

Further I do not think you can bind PROFINET directly to a netdev, as PROFINET requires Layer 2 adapter properties such as speed and duplexity to function properly and those information will probably be lost on virtual adapters.

Disabling PROFINET could help you achieve this redundancy setup.

Keep in mind that kernel sysctl settings need to be configured to allow bonding. Also, check dmesg and the /opt/plcnext/logs/Arp.log , journalctl -x on the device to see what is going on.

In general, I can say that bonding is not a supported feature by the PLCnext Runtime.

With some tweaking on your part — such as deactivating PROFINET, disabling all automatic IP configuration features through WBM, and adjusting related settings — you might get it to work.

However, this will require a lot of testing on your side - and I can not promise that everything keeps working the way it does, as we are currently planning a mayor overhaul and extension of networking and routing capabilities through WBM.

Best regards,
Oliver

1 Like

Hello Oliver,

Thanks for your reply. I do appreciate you suggestions very much. I need all 3 network ports on the 3152. But I don’t need ProfiNet. I only use plain ethernet communication. Can you give me a little help for my next test? What exactly need I to turn off in the WBM or maybe in the local files?

Kind regards, Wilco