Brief description of the problem
OK - further to my first post about error when creating LACP team interfacce through the webui - i have found the following
using nmcli in opensuse to create a team interface does not work because NetworkManager does not have the plugin to manage team interfaces. RedHat has an install candidate in it repos (NetworkManager-team) but there is no such candidate in the opensuse repos
that being said - i decided to try to install team interface using the teamd daemon
Detailed step by step instructions to reproduce the problem
so here are the steps i took
i’m going from a clean install of rockstor here
Install libteam-tools and ethtool
sudo zypper install libteam-tools && sudo zypper install ethtools
then need to create a directory for some files
sudo mkdir /etc/teamd
create a config file for the team0 interface - this is a JSON file that tells teamd how to create the interface, in this case creating an LACP interface - the file is /etc/teamd/team0.conf - use whatever editor you are comfortable with
{
“device”: “team0”,
“runner”: {“name”: “lacp”},
“link_watch”: {“name”: “ethtool”},
“ports”: {
“eth0”: {},
“eth1”: {}
}
}
that takes care of how teamd will bring the interface up
then need to create a startup script that runs at boot - the teamd daemon will not start and attach the ethernet ports if they are already up so need to run the script to shut them down then initialise the teamd daemon to create the interface.
then need to assign an ip address to the team0 interface and bring it up this is what this script does - create it in /etc/teamd/team0.sh
#!/bin/bash
ip link set down eth0
ip link set down eth1
teamd -g -f /etc/teamd/team0.conf -d
ip addr add 192.168.1.2/24 dev team0
ip link set dev team0 up
so the script shuts down the two ethernet ports then initialises teamd interface from the config file and makes it a daemon. then it assigns an ip address from the current network range and brings the team0 interface up.
make the script executable
chmod +w+x team0.sh
and copy the script into /usr/bin/
cp /etc/teamd/team0.sh /usr/bin/team0.sh
next - need to make this a service so it starts up every time we boot the system
in directory /etc/systemd/system/ create a file teamd.service and make it like this
[Unit]
Description=teamd service
Requires=network-online.target
After=network-online.target
Before=rockstor-pre.target
[Service]
Type=forking
ExecStart=/usr/bin/team0.sh
[Install]
WantedBy=multi-user.target
ok - then reboot and check the interfaces
teamdctl team0 state
and you should see
setup:
runner: lacp
ports:
eth0
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
aggregator ID: 3, Selected
selected: yes
state: current
eth1
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
aggregator ID: 3, Selected
selected: yes
state: current
runner:
active: yes
the myip command will probably return the first available ip address from your router above xxx.xxx.xxx.1
so this all goes swimmingly excepot that rockstor will then not start as it is waiting for DEPENDS - i assume that the rockstor-pre is looking for a network and is not finding one - any ideas?
i got the team LACP stuff working - i can ssh into the box at the team0 ip address so i know that’s working.
what is rockstor looking for during initialisation in the network space?