Setting up Etherchannel/Port trunking/Channel bonding on Slackware

Hátha másnak is szüksége lesz majd rá valamikor:
http://www.howtoforge.com/nic-bonding-on-slackware-12.1

Slackware 13.0 alatt is ugyanígy működik.

Hozzászólások

Írtam hozzá saját rc-szkriptet:


#!/bin/sh

BONDS[0]="bond0"
#BONDS[1]="bond1"

INTERFACES[0]="eth2 eth3"
#INTERFACES[1]="eth4 eth5"

BONDS_NR=`echo ${BONDS[$@]} | wc -w`

IFENSLAVE=`which ifenslave 2>/dev/null`

if [ -z "$IFENSLAVE" -o ! -x "$IFENSLAVE" ]; then
  echo "ifenslave: not found or is not executable!" >&2
fi

lsmod | grep -q bonding
if [ "$?" != "0" ]; then
  echo -n "Loading the neccesary kernel modules: "
  modprobe bonding mode=balance-rr miimon=100 max_bonds=$BONDS_NR 2>/dev/null
  if [ "$?" != "0" ]; then
    echo "failed!"
  else
    echo "done."
  fi
fi

echannel_start() {
  BONDS_MAX=$(($BONDS_NR-1))
  for i in `seq 0 $BONDS_MAX`; do
    echo -n "Creating interface ${BONDS[$i]}: "
    for j in ${INTERFACES[$i]}; do
      ifconfig $j down
    done
    ifconfig ${BONDS[$i]} up
    $IFENSLAVE ${BONDS[$i]} ${INTERFACES[$i]}
    echo "done."
  done
}

echannel_stop() {
  BONDS_MAX=$(($BONDS_NR-1))
  for i in `seq 0 $BONDS_MAX`; do
    echo -n "Bringing down interface ${BONDS[$i]}: "
    ifconfig ${BONDS[$i]} down
    for j in ${INTERFACES[$i]}; do
      ifconfig $j down
    done
    echo "done."
  done
  modprobe -r bonding
}

case "$1" in
  start)
    echannel_start
    ;;
  stop)
    echannel_stop
    ;;
  restart)
    echannel_stop
    sleep 1
    echannel_start
    ;;
  status)
    if [ -n "$2" ]; then
      if [ -f "/proc/net/bonding/$2" ]; then
	cat "/proc/net/bonding/$2"
      else
	echo "$2: no such interface!" >&2
      fi
    else
      for i in "`ls /proc/net/bonding`"; do
	echo "$i:"
	cat "/proc/net/bonding/$i"
      done
    fi
    ;;
  *)
    echo "Usage: $0 start|stop|restart|status" >&2
    ;;
esac

-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.

Slackware Linux 12.1 | 2.6.26.7-janos