ponad 80ciu userów , bez squida , serwer www .
<global>
iface inet eth0 83.16.201.106/255.255.255.248
iface local eth1 192.168.1.1/24
do not shape local 83.16.201.106 with 192.168.1.0/24
do not shape local 192.168.1.1 with 192.168.1.0/24
shape router true low 15kbit ceil 64kbit prio 2
stats unit kbit dump 1c file /var/www/stats/nsstats.txt
resolve hostname true
method mark
reload 1s
</global>
<download>
link speed 2000kbit shape 1950kbit
user low 0kbit ceil 500kbit strict 5% prio 2
interactive rate 0kbit ceil 128kbit
interactive srcport 22 dstport 22
interactive u32 match ip protocol 1 0xff
interactive u32 match ip tos 0x10 0xff
policy dynamic
</download>
<upload>
link speed 256kbit shape 190kbit
user low 0kbit ceil 50kbit strict 5% prio 2
interactive rate 0kbit ceil 30kbit
interactive srcport 22 dstport 22
policy dynamic
</upload>
kilka drobiazgów :
dla wlan - zmiana przepustowości łacza na 5Mbit :
tc class change dev eth1 parent 1:0 classid 1:1 htb rate 5000kbit ceil 5000kbit
puszczenie p2p oddzielną klasa - w tym przypadku priorytetową ( można nią dowolnie manipulować ) oczywiście tylko upload
iptables -t mangle -A niceshaper_ul -i eth0 -p tcp -m ipp2p --ipp2p -j MARK --set-mark 1048
iptables -t mangle -A niceshaper_ul -i eth0 -p tcp -m ipp2p --ipp2p-data -j MARK --set-mark 1048
iptables -t mangle -A niceshaper_ul -i eth0 -p tcp --dport 81:65535 -j MARK --set-mark 1048
NS ma pewną wadę , mianowicie na pustym łączu nie przydziela całego zasobu. Można to zmienić używając skryptu , który podmienia configi dając min upload powyżej 0 - czasami dużo powyżej . Mój skrypt :
#!/bin/sh
ILOSC=`cat /proc/net/arp|grep 0x1|wc -l`
PLIK=`grep -F config /etc/niceshaper/config`
echo " $PLIK"
echo " klientow $ILOSC "
if [ $ILOSC -le 5 -a $ILOSC -ge 1 -a $PLIK="#config05" ]; then
echo "config05 już funkcjonuje"
exit
elif [ $ILOSC -le 10 -a $ILOSC -ge 6 -a $PLIK = "#config10" ]; then
echo "config10 już funkcjonuje"
exit
elif [ $ILOSC -le 20 -a $ILOSC -ge 11 -a $PLIK = "#config20" ]; then
echo "config20 już funkcjonuje"
exit
elif [ $ILOSC -le 30 -a $ILOSC -ge 21 -a $PLIK = "#config30" ]; then
echo "config30 już funkcjonuje"
exit
elif [ $ILOSC -le 40 -a $ILOSC -ge 31 -a $PLIK = "#config40" ]; then
echo "config40 już funkcjonuje"
exit
elif [ $ILOSC -le 50 -a $ILOSC -ge 41 -a $PLIK = "#config50" ]; then
echo "config50 już funkcjonuje"
exit
elif [ $ILOSC -le 60 -a $ILOSC -ge 51 -a $PLIK = "#config60" ]; then
echo "config60 już funkcjonuje"
exit
elif [ $ILOSC -le 70 -a $ILOSC -ge 61 -a $PLIK = "#config70" ]; then
echo "config70 już funkcjonuje"
exit
fi
if [ $ILOSC -le 5 ]; then
cp /etc/niceshaper/configi/config05 /etc/niceshaper/config
cd /niceshaper
./niceshaper restart
echo "uzytkownikow $ILOSC, config podmieniony ....... DONE"
exit
fi
if [ $ILOSC -le 10 ]; then
cp /etc/niceshaper/configi/config10 /etc/niceshaper/config
cd /niceshaper
./niceshaper restart
echo "uzytkownikow $ILOSC, config podmieniony ....... DONE"
exit
fi
if [ $ILOSC -le 20 ]; then
cp /etc/niceshaper/configi/config20 /etc/niceshaper/config
cd /niceshaper
./niceshaper restart
echo "uzytkownikow $ILOSC, config podmieniony ....... DONE"
exit
fi
if [ $ILOSC -le 30 ]; then
cp /etc/niceshaper/configi/config30 /etc/niceshaper/config
cd /niceshaper
./niceshaper restart
echo "uzytkownikow $ILOSC, config podmieniony ....... DONE"
exit
fi
if [ $ILOSC -le 40 ]; then
cp /etc/niceshaper/configi/config40 /etc/niceshaper/config
cd /niceshaper
./niceshaper restart
echo "uzytkownikow $ILOSC, config podmieniony ....... DONE"
exit
fi
if [ $ILOSC -le 50 ]; then
cp /etc/niceshaper/configi/config50 /etc/niceshaper/config
cd /niceshaper
./niceshaper restart
echo "uzytkownikow $ILOSC, config podmieniony ....... DONE"
exit
fi
if [ $ILOSC -le 60 ]; then
cp /etc/niceshaper/configi/config60 /etc/niceshaper/config
cd /niceshaper
./niceshaper restart
echo "uzytkownikow $ILOSC, config podmieniony ....... DONE"
exit
fi
if [ $ILOSC -le 70 ]; then
cp /etc/niceshaper/configi/config70 /etc/niceshaper/config
cd /niceshaper
./niceshaper restart
echo "uzytkownikow $ILOSC, config podmieniony ....... DONE"
exit
fi
w nagłówkach configów jest napisane np:
jest to przeliczony config na 40 userów w danym momencie , itd....