The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Помогите разобраться с шейпером, !*! lemm, 02-Мрт-09, 09:07  [смотреть все]
вообщем имеется debian с 2-мя сетевыми интерфейсами,один получает интернет eth0,другой раздает на несколько компьтеров eth1,стоит dhcp сервер,интренет раздается простым способом
#############################
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
###############################
понадобилось  урезать исходящую и входящую скорость каждому компьютеру в 1024 кбит,
нашел скрипт
###############################
#!/bin/sh
#
# Simple init.d shell script that can to modified to fit your favorite distro
#
# All Rates are in Kbits, so in order to gets Bytes divide by 8
# e.g. 25Kbps == 3.125KB/s
#
TC=/sbin/tc
DNLD=1024Kbit   # DOWNLOAD Limit
DWEIGHT=1024Kbit # DOWNLOAD Weight Factor ~ 1/10 of DOWNLOAD Limit
UPLD=1024KBit    # UPLOAD Limit
UWEIGHT=1024Kbit  # UPLOAD Weight Factor

tc_start() {
    $TC qdisc add dev eth1 root handle 11: cbq bandwidth 100Mbit avpkt 1000 mpu 64
    $TC class add dev eth1 parent 11:0 classid 11:1 cbq rate $DNLD weight $DWEIGHT allot 1514 prio 1 avpkt 1000 bounded
    $TC filter add dev eth1 parent 11:0 protocol ip handle 4 fw flowid 11:1

    $TC qdisc add dev eth0 root handle 10: cbq bandwidth 10Mbit avpkt 1000 mpu 64
    $TC class add dev eth0 parent 10:0 classid 10:1 cbq rate $UPLD weight $UWEIGHT allot 1514 prio 1 avpkt 1000 bounded
    $TC filter add dev eth0 parent 10:0 protocol ip handle 3 fw flowid 10:1
}

tc_stop() {
    $TC qdisc del dev eth1 root
    $TC qdisc del dev eth0 root
}

tc_restart() {
    tc_stop
    sleep 1
    tc_start
}

tc_show() {
    echo ""
    echo "eth0:"
    $TC qdisc show dev eth0
    $TC class show dev eth0
    $TC filter show dev eth0
    echo ""

    echo "eth1:"
    $TC qdisc show dev eth1
    $TC class show dev eth1
    $TC filter show dev eth1
    echo ""
}

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

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

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

    show)
        tc_show
        ;;

    *)
        echo "Usage: /etc/init.d/tc.sh {start|stop|restart|show}"
        ;;
esac

exit 0
###########################
маркировка пакетов
###########################
iptables -t mangle -A FORWARD -s 192.168.1.0/24 -j MARK --set-mark 3
iptables -t mangle -A FORWARD -s ! 192.168.1.0/24 -d 192.168.1.0/24 -j MARK --set-mark 4
###########################
в итоге получилось что это 1024 кбит делятся между всеми компьтерами,а нужно  чтоб у каждого было 1024 кбита,помогите пожалуйста это реализовать




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру