okay,我已將這次實作用的 script 及 ddns key 包好在如下這個 tarball :
http://www.study-area.org/linux/src/multipath.tgz
有興趣的朋友可抓回去玩玩看... 當然,若能提出改良建議更好﹗ ^_^
這個檔案中的 run_ip.sh 有一點小問題,就是對浮動 ip 的 ppp0 時 rule 會不能刪除,越堆越多
所以把其中的
#-- remove old rule table --#
for i in $interfaces; do
$IP address | $GREP -A2 $i | $AWK '/inet[^6]/{print $2}' | $CUT -d'/' -f1
done | xargs -n1 echo from | while read line; do
$IP rule | grep "$line"
done | $SED -e "s/^/ip rule del pref /;s/://;s/lookup/table/" | $BASH
unset i
改為
#-- define table_id --#
init_num=10
offset=`echo -e "${interfaces// /\n}" | $WC -l`
last_num=$(($init_num + $(((offset-1) * 10)) ))
tb_num=`$SEQ $init_num 10 $last_num | xargs echo`
tb_num1=`echo ${tb_num// /|} | $SED 's/[^|][^|]*/^&:/g'`
#-- remove old rule table --#
$IP rule list | $GREP -E $tb_num1 | while read line; do
TABID=`echo $line | awk -F: '{print $1}'`
OLDIP=`echo $line | awk '{print $3}'`
PREID=`echo $line | awk '{print $5}'`
$IP rule del pref $PREID from $OLDIP table $TABID
done
會比較好一點