Ben's notes

Linux, Unix, network, radio...

User Tools

Site Tools


rhel7_teaming_instead_of_bonding

RHEL7 teaming instead of bonding

  • Configure teaming:
    # Create team device
    nmcli c add type team con-name Team0 ifname team0 config '{"runner": {"name": "lacp"}}'
    
    # Add NICs to team
    nmcli c add type team-slave con-name Team0-port1 ifname eno1     master Team0
    nmcli c add type team-slave con-name Team0-port2 ifname enp2s0f0 master Team0
    nmcli c add type team-slave con-name Team0-port3 ifname enp2s0f1 master Team0
    nmcli c add type team-slave con-name Team0-port4 ifname enp4s0   master Team0
    
    # Bring up team
    nmcli c up Team0-port1
    nmcli c up Team0-port2
    nmcli c up Team0-port3
    nmcli c up Team0-port4
    
    # Verify team0 is up, list ports
    ip link
    teamnl team0 ports
    teamdctl team0 state
    
    # Create VLAN devices
    nmcli con add type vlan con-name VLAN10 dev  team0 id 10
    nmcli con add type vlan con-name VLAN50 dev  team0 id 50
    nmcli con add type vlan con-name VLAN100 dev team0 id 100
    nmcli con add type vlan con-name VLAN110 dev team0 id 110
    
    
  • Bonding example:
    #Create bond0 device
    nmcli con add type bond con-name bond0 ifname bond0 mode 802.3ad
    
    #Disable IP on bond0 interface
    nmcli c mod bond0 ipv4.method disabled
    nmcli c mod bond0 ipv6.method ignore
    
    #Add slaves
    nmcli con add type bond-slave ifname eno1 master bond0
    nmcli con add type bond-slave ifname enp2s0f0 master bond0
    nmcli con add type bond-slave ifname enp2s0f1 master bond0
    nmcli con add type bond-slave ifname enp4s0 master bond0
    
    #Bring up slaves and then the bond0 device.
    nmcli c up bond-slave-eno1
    nmcli c up bond-slave-enp2s0f0
    nmcli c up bond-slave-enp2s0f1
    nmcli c up bond-slave-enp4s0
    nmcli c up bond0
    
    #Check bond0 interface stats
    cat /proc/net/bonding/bond0  | less
    
    #Create VLAN devices
    vlans=( 10 50 100 110 )
    for i in "${vlans[@]}"
    do
      nmcli c add type vlan con-name vlan$i dev bond0 id $i
      nmcli c mod vlan$i ipv4.method disabled
      nmcli c mod vlan$i ipv6.method ignore
    done
    
    #Create bridges
    vlans=( 10 50 100 110 )
    for i in "${vlans[@]}"
    do
      nmcli con add type bridge con-name br$i ifname br$i
      nmcli c mod br$i ipv4.method disabled
      nmcli c mod br$i ipv6.method ignore
      nmcli c mod br$i bridge.stp no
    done
    
    #Add bridge slaves
    vlans=( 10 50 100 110 )
    for i in "${vlans[@]}"
    do
      nmcli c add type bridge-slave ifname bond0.$i master br$i
    done
    
    #Show bridges
    brctl show
rhel7_teaming_instead_of_bonding.txt · Last modified: 2021/10/09 15:14 by 127.0.0.1