Существуют два сервера, на которых установлен arch-linux с ядром 2.6-22на каждом поднят поптоп и осуществляется терминация абонентов. Для ограничения скорости используется tc
Скорость ограничивается следующим скриптом прописанным в ip-up:
#!/bin/sh
INET=eth0
interface=$2
remoteIP=$3
download=$5
upload=$4
#upload=`expr $download*2`
contamark=`echo $interface | cut -c 4-99`
mark=`expr $contamark + 500`
start(){
/sbin/tc qdisc del dev $interface root
/sbin/tc qdisc add dev $interface root tbf rate ${upload}Kbit latency 50ms burst 5k
/sbin/tc qdisc del dev $interface handle ffff: ingress
/sbin/tc qdisc add dev $interface handle ffff: ingress
/sbin/tc filter add dev $interface parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${download}Kbit burst 512k drop flowid :1
echo "PPP started at $(date):
interface = $interface
Remote IP = $remoteIP
download = $download
upload = $upload
#mark = $mark
" >/tmp/$interface
}
case "$1" in
start)
start
;;
*)
echo "usage : $0 start <ppp_intarface> <ip> <download,kbit> <upload,kbit>"
esac
________________________________________________________________________________________________
Как это нистранно на одной машине все прекрасно работает, на другой в тунеле перестает ходить трафик в сторону абонента. Единственное серьезное отличие , это в том, что первая машина роутит между двумя физ интерфейсами, а вторая все делает на одном...
Где здесь может быть ошибка или куда копать если после вызовов tc перестает ходить трафик.