Configure network team using nmcli / NetworkManager
This is a short post on how to create a LACP network team with two member nics using NetworkManager and nmcli. Configuring av network team is very similar to creating a bond.
First we need to install the teamd package if it is not already installed.
# yum install teamd
I have also included a json-config file with the default config for the team, filename team-master-conf.json:
{ "runner": { "active": true, "fast_rate": true, "name": "lacp", "tx_hash": [ "eth", "ipv4" ] }, "tx_balancer": { "name": "basic" }, "link_watch": { "name": "ethtool" } }
# nmcli con add type team con-name team0 ifname team0 config team-master-conf.json ip4 10.0.0.10/24 gw4 10.0.0.1 # nmcli con add type team-slave con-name team0-em1 ifname em1 master team0 # nmcli con add type team-slave con-name team0-em2 ifname em2 master team0
Check the status of the team
# nmcli con status NAME UUID TYPE DEVICE team0 7f0c0038-b8c1-45bb-a286-501d02304700 team team0 team0-em1 0394e2ae-6610-4997-92db-775876866d0d 802-3-ethernet em1 team0-em2 7050d641-83bb-497a-ae23-6af029386117 802-3-ethernet em2
Check the state of the team
# teamdctl team0 state setup: runner: lacp ports: em1 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 1 runner: aggregator ID: 12, Selected selected: yes state: current em2 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: aggregator ID: 12, Selected selected: yes state: current runner: active: yes fast rate: yes
Some NetworkManager basics
Take down a network interface
# nmcli con down em1
Take up a network interface
# nmcli con up em1
Delete a network interface
# nmcli con delete em1
Add a new network device
# nmcli con add em1
This config is confirmed working on RHEL 7.4 and Centos.
I assume the switch is configured as needed before starting this config on the server.