Keresés

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

  • Tamy

    őstag

    válasz bambano #5605 üzenetére

    Azért tettem ide, mert mégiscsak egy programról van szó, de szerintem is jobban beillene máshová, leginkább az OpenWRT-be. Ott folytatom.

  • Tamy

    őstag

    válasz bambano #5599 üzenetére

    Köszönöm ismét a segítséged, innen valamiért kimaradt, de már úgy volt. Még Jester01 javasolta a router topicjában, sajnos így sem jó.
    Most ha elindítom ezt adja:

    root@Tamy-router:~# /etc/config/limit start
    + insmod cls_fw
    + insmod cls_u32
    + insmod sch_htb
    + insmod sch_sfq
    + insmod sch_ingress
    + insmod act_police
    + DEV=eth0.1
    + LIMIT_IPS=192.168.2.100
    + LIMIT_DOWN=200
    + LIMIT_DOWN_BURST=400
    + LIMIT_UP=400
    + case "$1" in
    + echo -n 'Starting bandwidth shaping: '
    Starting bandwidth shaping: + start
    + tc qdisc del dev eth0.1 root
    RTNETLINK answers: No such file or directory
    + tc qdisc add dev eth0.1 root handle 77: htb
    + tc class add dev eth0.1 parent 77: classid 77:1 htb rate 20000kbit
    + tc class add dev eth0.1 parent 77:1 classid 77:10 htb rate 200kbit ceil 400kbit prio 2
    + tc qdisc add dev eth0.1 parent 77:10 handle 78: sfq perturb 10
    + tc qdisc add dev eth0.1 ingress
    + tc filter add dev eth0.1 parent 77: protocol ip prio 2 handle 80 fw flowid 77:10
    + tc filter add dev eth0.1 parent ffff: protocol ip prio 1 handle 79 fw police rate 400kbit mtu 6k burst 6k drop
    + for ip in '$LIMIT_IPS'
    + iptables -t mangle -I PREROUTING -s 192.168.2.100 -j MARK --set-mark 79
    + iptables -t mangle -I POSTROUTING -d 192.168.2.100 -j MARK --set-mark 80
    + echo done
    done
    + exit 0

    Viszont mint már korábban is beszéltük a stop sem oké teljesen (bár ha belegondolok az annyira nem lényeg):

    root@Tamy-router:~# /etc/config/limit stop
    + insmod cls_fw
    + insmod cls_u32
    + insmod sch_htb
    + insmod sch_sfq
    + insmod sch_ingress
    + insmod act_police
    insmod: can't insert 'act_police': File exists
    + DEV=eth0.1
    + LIMIT_IPS=192.168.2.100
    + LIMIT_DOWN=200
    + LIMIT_DOWN_BURST=400
    + LIMIT_UP=400
    + case "$1" in
    + echo -n 'Stopping bandwidth shaping: '
    Stopping bandwidth shaping: + stop
    + tc qdisc del dev eth0.1 root
    + iptables -F -t mangle
    + echo done
    done
    + exit 0

  • Tamy

    őstag

    Sziasztok!

    Még mindig keresem a megoldást erre:

    TP-Link TL-WR1043ND routeremre felraktam az OpenWrt Backfire 10.03.1-RC6 fw.-t, ehhez keresek olyan alkalmazást amivel egyedi sebességlimitet tudnék beállítani az egyes gépekre. Ahogy olvasgattam a témában sokan keresik, de megoldást nem nagyon tud rá senki OpenWRT alatt. A [url=https://forum.openwrt.org/viewtopic.php?id=23285]hivatalos fórumán[/url] találtam rá egy scriptet, de nálam kilövi magát amint elindítom. Gondoltam bemásolom, hátha valaki 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

    Természetesen a példában szereplő IP címeket lecseréltem a sajátomra, mivel nem működött, javasolták, hogy próbáljam meg a br-lan helyére beírni az eth0.1-t, mondván hátha a bridge interfész miatt nem megy. Ezeken kívül mást nem módosítottam rajta. Ezzel kapcsolatban az sem teljesen világos, hogy a LAN vagy a WAN portot kéne ide beírnom, a példa alapján a LAN-t, ami logikus, hisz a belső ip-m azon található, de így viszont én úgy gondolom, hogy a helyi hálón is korlátozna, amit nem szeretnék. Persze lehet, hogy tévedek, de egyenlőre még amúgy sem ez a fő gondom. A hivatalos fórumon is jelezték, hogy nem megy, megoldásnak azt írták, hogy ki kell egészíteni az "insmod act_police" sorral, viszont nálam így sem megy. Ha elindítom ezt dobja válaszul:

    root@OpenWrt:~# /etc/init.d/limit restart
    insmod: can't insert 'act_police': File exists
    Restarting bandwidth shaping: RTNETLINK answers: Invalid argument
    RTNETLINK answers: File exists
    RTNETLINK answers: File exists
    We have an error talking to the kernel
    done

    Annyi segítséget kaptam eddig, hogy hibakereséshez az első sorban a #! /bin/sh sort ki kell cserélni #! /bin/bash-ra, majd következő sorba beírni: set -x. Ezután ezt kaptam eredményül:

    root@OpenWrt:~# /etc/init.d/limit restart
    + insmod cls_fw
    + insmod cls_u32
    + insmod sch_htb
    + insmod sch_sfq
    + insmod sch_ingress
    + insmod act_police
    insmod: can't insert 'act_police': File exists
    + DEV=eth0.1
    + LIMIT_IPS=192.168.2.100
    + LIMIT_DOWN=200
    + LIMIT_DOWN_BURST=400
    + LIMIT_UP=400
    + case "$1" in
    + echo -n 'Restarting bandwidth shaping: '
    Restarting bandwidth shaping: + restart
    + stop
    + tc qdisc del dev eth1 root
    + iptables -F -t mangle
    + sleep 1
    + start
    + tc qdisc del dev eth1 root handle 77:
    RTNETLINK answers: Invalid argument
    + tc qdisc add dev eth1 root handle 77: htb
    + tc class add dev eth1 parent 77: classid 77:1 htb rate 20000kbit
    + tc class add dev eth1 parent 77:1 classid 77:10 htb rate 200kbit ceil 400kbit prio 2
    + tc qdisc add dev eth1 parent 77:10 handle 78: sfq perturb 10
    + tc qdisc add dev eth1 ingress
    RTNETLINK answers: File exists
    + tc filter add dev eth1 parent 77: protocol ip prio 2 handle 80 fw flowid 77:10
    + tc filter add dev eth1 parent ffff: protocol ip prio 1 handle 79 fw police rate 400kbit mtu 6k burst 6k drop
    RTNETLINK answers: File exists
    We have an error talking to the kernel
    + for ip in '$LIMIT_IPS'
    + iptables -t mangle -I PREROUTING -s 192.168.2.100 -j MARK --set-mark 79
    + iptables -t mangle -I POSTROUTING -d 192.168.2.100 -j MARK --set-mark 80
    + echo done
    done
    + exit 0

    Volt olyan javaslat is, hogy vegyem ki az init.d-ből és kézzel indítsam el, mondván automatikusan indul, és annak a kimenetét nem látom. Utána viszont maga a restart (azon belül is a stop) esetleg nem takarít rendesen azért vannak azok a hibák (mivel arra panaszkodik, hogy bizonyos dolgok már léteznek). Így futtatva továbbra sem megy, ugyan más hibákra panaszkodik:

    root@OpenWrt:~# /etc/config/limit start
    + insmod cls_fw
    + insmod cls_u32
    + insmod sch_htb
    + insmod sch_sfq
    + insmod sch_ingress
    + insmod act_police
    + DEV=eth0.1
    + LIMIT_IPS=192.168.2.100
    + LIMIT_DOWN=200
    + LIMIT_DOWN_BURST=400
    + LIMIT_UP=400
    + case "$1" in
    + echo -n 'Starting bandwidth shaping: '
    Starting bandwidth shaping: + start
    + tc qdisc del dev eth0.2 root handle 77:
    RTNETLINK answers: Invalid argument
    + tc qdisc add dev eth0.2 root handle 77: htb
    RTNETLINK answers: File exists
    + tc class add dev eth0.2 parent 77: classid 77:1 htb rate 20000kbit
    RTNETLINK answers: No such file or directory
    + tc class add dev eth0.2 parent 77:1 classid 77:10 htb rate 200kbit ceil 400kbit prio 2
    RTNETLINK answers: No such file or directory
    + tc qdisc add dev eth0.2 parent 77:10 handle 78: sfq perturb 10
    RTNETLINK answers: No such file or directory
    + tc qdisc add dev eth0.2 ingress
    + tc filter add dev eth0.2 parent 77: protocol ip prio 2 handle 80 fw flowid 77:10
    RTNETLINK answers: Invalid argument
    We have an error talking to the kernel
    + tc filter add dev eth0.2 parent ffff: protocol ip prio 1 handle 79 fw police rate 400kbit mtu 6k burst 6k drop
    + for ip in '$LIMIT_IPS'
    + iptables -t mangle -I PREROUTING -s 192.168.2.100 -j MARK --set-mark 79
    + iptables -t mangle -I POSTROUTING -d 192.168.2.100 -j MARK --set-mark 80
    + echo done
    done
    + exit 0

    Ha valakinek van még ötlete, vagy esetleg egy teljesen más megoldást tud a problémámra, azt szívesen veszem, de lehetőleg ne kétszavas válaszokkal segítsetek, mivel nem tudok programozni, és a Linuxban is kezdő vagyok.

  • Tamy

    őstag

    válasz Jester01 #5533 üzenetére

    Sokáig nem sikerült eltűnnöm, hozzáírtam az "insmod act_police" sort, de még így is hibaüzenetet ad:

    root@OpenWrt:~# /etc/init.d/limit restart
    + insmod cls_fw
    + insmod cls_u32
    + insmod sch_htb
    + insmod sch_sfq
    + insmod sch_ingress
    + insmod act_police
    insmod: can't insert 'act_police': File exists
    + DEV=eth1
    + LIMIT_IPS=192.168.2.100
    + LIMIT_DOWN=200
    + LIMIT_DOWN_BURST=400
    + LIMIT_UP=400
    + case "$1" in
    + echo -n 'Restarting bandwidth shaping: '
    Restarting bandwidth shaping: + restart
    + stop
    + tc qdisc del dev eth1 root
    + iptables -F -t mangle
    + sleep 1
    + start
    + tc qdisc del dev eth1 root handle 77:
    RTNETLINK answers: Invalid argument
    + tc qdisc add dev eth1 root handle 77: htb
    + tc class add dev eth1 parent 77: classid 77:1 htb rate 20000kbit
    + tc class add dev eth1 parent 77:1 classid 77:10 htb rate 200kbit ceil 400kbit prio 2
    + tc qdisc add dev eth1 parent 77:10 handle 78: sfq perturb 10
    + tc qdisc add dev eth1 ingress
    RTNETLINK answers: File exists
    + tc filter add dev eth1 parent 77: protocol ip prio 2 handle 80 fw flowid 77:10
    + tc filter add dev eth1 parent ffff: protocol ip prio 1 handle 79 fw police rate 400kbit mtu 6k burst 6k drop
    RTNETLINK answers: File exists
    We have an error talking to the kernel
    + for ip in '$LIMIT_IPS'
    + iptables -t mangle -I PREROUTING -s 192.168.2.100 -j MARK --set-mark 79
    + iptables -t mangle -I POSTROUTING -d 192.168.2.100 -j MARK --set-mark 80
    + echo done
    done
    + exit 0

  • Tamy

    őstag

    válasz Jester01 #5533 üzenetére

    Igen, közben én is észrevettem, csak egy apró probléma van: ha a hiányos angol tudásommal jól értem, akkor telepítenem kéne az "act_police module"-t. Csakhogy ilyen nincs, de ez már itt off.

  • Tamy

    őstag

    Sziasztok!

    Felteszem itt is a kérdésem, mivel a router topicjában és a Hálózatokról alaposan topicban már többször próbálkoztam, de nem tudott segíteni senki. Elöljáróban leszögezném, hogy nem tudok programozni, és a Linuxban is kezdő vagyok, szóval lehetőleg ne kétszavas válaszokkal segítsetek.

    TP-Link TL-WR1043ND routeremre felraktam az OpenWrt Backfire 10.03.1-RC6 fw.-t, ehhez keresek olyan alkalmazást amivel egyedi sebességlimitet tudnék beállítani az egyes gépekre. Ahogy olvasgattam a témában sokan keresik, de megoldást nem nagyon tud rá senki OpenWRT alatt (érdekes módon egyébként amit eddig néztem fw-eket mindben alapból benne van, a gyáriban is). 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 bemásolom ide is, hátha valaki 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

    Természetesen a példában szereplő IP címeket lecseréltem a sajátomra, illetve javasolták, hogy próbáljam meg a br-lan helyére beírni az eth0.2-t, ezeken kívül mást nem módosítottam rajta. Ha elindítom ezt dobja válaszul:
    A hibaüzenet pedig nálam a következő:

    Restarting bandwidth shaping: RTNETLINK answers: Invalid argument
    RTNETLINK answers: File exists
    RTNETLINK answers: No such file or directory
    We have an error talking to the kernel
    done

    Annyi segítséget kaptam eddig, hogy hibakereséshez az első sorban a #! /bin/sh sort ki kell cserélni #! /bin/bash-ra, majd következő sorba beírni: set -x. Ezután ezt kaptam eredményül:

    root@OpenWrt:~# /etc/init.d/limit restart
    + insmod cls_fw
    + insmod cls_u32
    + insmod sch_htb
    + insmod sch_sfq
    + insmod sch_ingress
    + DEV=eth1
    + LIMIT_IPS=192.168.2.100
    + LIMIT_DOWN=200
    + LIMIT_DOWN_BURST=400
    + LIMIT_UP=400
    + case "$1" in
    + echo -n 'Restarting bandwidth shaping: '
    Restarting bandwidth shaping: + restart
    + stop
    + tc qdisc del dev eth1 root
    + iptables -F -t mangle
    + sleep 1
    + start
    + tc qdisc del dev eth1 root handle 77:
    RTNETLINK answers: Invalid argument
    + tc qdisc add dev eth1 root handle 77: htb
    + tc class add dev eth1 parent 77: classid 77:1 htb rate 20000kbit
    + tc class add dev eth1 parent 77:1 classid 77:10 htb rate 200kbit ceil 400kbit prio 2
    + tc qdisc add dev eth1 parent 77:10 handle 78: sfq perturb 10
    + tc qdisc add dev eth1 ingress
    RTNETLINK answers: File exists
    + tc filter add dev eth1 parent 77: protocol ip prio 2 handle 80 fw flowid 77:10
    + tc filter add dev eth1 parent ffff: protocol ip prio 1 handle 79 fw police rate 400kbit mtu 6k burst 6k drop
    RTNETLINK answers: No such file or directory
    We have an error talking to the kernel
    + for ip in '$LIMIT_IPS'
    + iptables -t mangle -I PREROUTING -s 192.168.2.100 -j MARK --set-mark 79
    + iptables -t mangle -I POSTROUTING -d 192.168.2.100 -j MARK --set-mark 80
    + echo done
    done
    + exit 0

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

Hirdetés