Hirdetés

Új hozzászólás Aktív témák

  • Tamy

    senior tag

    Szeretnék egyedi sebességlimitet beállítani pár gépre. Ahogy olvasgattam a témában sokan keresik, de megoldást nem nagyon tud rá senki OpenWRT alatt. A hivatalos fórumán találtam rá egy scriptet, de ott is azt írják, hogy nem működik, és nálam is kilövi magát amint elindítom. Gondoltam azért bemásolom ide is, hátha valaki ért egy kicsit a programozáshoz, és rájön hol a hiba benne:

    #!/bin/sh

    insmod cls_fw >/dev/null 2>&1
    insmod cls_u32 >/dev/null 2>&1
    insmod sch_htb >/dev/null 2>&1
    insmod sch_sfq >/dev/null 2>&1
    insmod sch_ingress >/dev/null 2>&1

    DEV="br-lan"
    LIMIT_IPS="192.168.1.10 192.168.1.11 192.168.1.12"
    LIMIT_DOWN=200
    LIMIT_DOWN_BURST=400
    LIMIT_UP=400

    start() {
    tc qdisc del dev "$DEV" root handle 77:
    tc qdisc add dev "$DEV" root handle 77: htb
    tc class add dev "$DEV" parent 77: classid 77:1 htb rate 20000kbit
    tc class add dev "$DEV" parent 77:1 classid 77:10 htb rate ${LIMIT_DOWN}kbit ceil ${LIMIT_DOWN_BURST}kbit prio 2
    tc qdisc add dev "$DEV" parent 77:10 handle 78: sfq perturb 10
    tc qdisc add dev "$DEV" ingress
    tc filter add dev "$DEV" parent 77: protocol ip prio 2 handle 80 fw flowid 77:10
    tc filter add dev "$DEV" parent ffff: protocol ip prio 1 handle 79 fw police rate ${LIMIT_UP}kbit mtu 6k burst 6k drop

    for ip in $LIMIT_IPS; do
    iptables -t mangle -I PREROUTING -s $ip -j MARK --set-mark 79
    iptables -t mangle -I POSTROUTING -d $ip -j MARK --set-mark 80
    done
    }

    stop() {
    tc qdisc del dev $DEV root
    iptables -F -t mangle
    }

    restart() {
    stop
    sleep 1
    start
    }

    show() {
    tc -s qdisc ls dev $DEV
    }

    case "$1" in
    start)
    echo -n "Starting bandwidth shaping: "
    start
    echo "done"
    ;;

    stop)
    echo -n "Stopping bandwidth shaping: "
    stop
    echo "done"
    ;;

    restart)
    echo -n "Restarting bandwidth shaping: "
    restart
    echo "done"
    ;;

    show)
    echo "Bandwidth shaping status for $DEV:"
    show
    echo ""
    ;;

    *)
    echo "Usage: $0 {start|stop|restart|show}"
    ;;
    esac

    exit 0

    Egész életemben azon gondolkodtam, hogy kéne valamit dolgoznom. Ezért aztán a végén nem is maradt rá időm.

Új hozzászólás Aktív témák