Титла: traffic shaping
Публикувано от: Hel1Fire в Feb 12, 2006, 12:25
Имам следния проблем - сглобих си traffic shaper, но нещо не иска да работи за съжаление  . Имам 2 мрежи, които съм разделил на 192.168.2.0 и 192.168.3.0 и гейтуей 192.168.0.1 . Разделил съм международен и БГ трафик въпреки, че скоростта ми е еднаква, за да мога да си ползвам същия скрипт и на други места, а също така не е и много оптимизиран заради 2-та while-a, но това не е проблем за сега  . Нета ми е 1Мбит на eth0 през DHCP.. Ето и скриптовете.. 1: Примерен код | #!/bin/sh
INET_IFACE="eth0"
DHCP="yes" DHCP_SERVER="" PPPOE_PMTU="no"
LAN_IP="192.168.0.1" LAN_IP_RANGE="192.168.0.0/16" LAN_IFACE="eth1"
LO_IFACE="lo" LO_IP="127.0.0.1"
IPTABLES="/usr/sbin/iptables" echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/ip_dynaddr
$IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP
$IPTABLES -N bad_tcp_packets
$IPTABLES -N allowed $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets
$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK \ -m state --state NEW -j REJECT --reject-with tcp-reset $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \ --log-prefix "New not syn:" $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A allowed -p TCP --syn -j ACCEPT $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A allowed -p TCP -j DROP
$IPTABLES -A tcp_packets -p TCP -s 192.168.2.0/24 --dport 21 -j allowed $IPTABLES -A tcp_packets -p TCP -s 192.168.2.0/24 --dport 22 -j allowed $IPTABLES -A tcp_packets -p TCP -s 192.168.0.0/16 --dport 80 -j allowed $IPTABLES -A tcp_packets -p TCP -s 192.168.2.0/24 --dport 113 -j allowed
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -j ACCEPT
$IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $INET_IFACE -m state --state ESTABLISHED,RELATED \ -j ACCEPT $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPTABLES -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \ --log-level DEBUG --log-prefix "IPT INPUT packet died: "
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \ --log-level DEBUG --log-prefix "IPT FORWARD packet died: "
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -o $INET_IFACE -j ACCEPT
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \ --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
if [ $PPPOE_PMTU == "yes" ]; then $IPTABLES -t nat -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN \ -j TCPMSS --clamp-mss-to-pmtu fi $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
|
2:
Примерен код | #!/bin/bash
#mark_peering.sh Script for marking of Peering & International upload traffic via iptables
wget -q -O bg_nets-new.txt "http://ip.ludost.net/cgi/process?country=1&country_list=bg&format_template=prefix&format_name=&format_target=&format_default="
newfile=bg_nets-new.txt
file=bg_nets.txt
#Check for existence of the files if [[ ! -r "$newfile" || ! -r "$file" ]] then echo "Both files to be compared must exist and be readable." exit 1 fi cmp $newfile $file &> /dev/null if [ $? -ne 0 ] # Test exit status of "cmp" command. then echo "Doing changes" mv -f $newfile $file line_count=`wc $file | awk '{ print $1 }'` for name in `seq $line_count` do read name mat=`expr match "$name" '#'` if [ "$mat" -eq 0 ] then #/etc/init.d/iptables restart /sbin/iptables -t mangle -I POSTROUTING 1 -d $name -j mark-out fi done ip=1 while [ $ip -lt 5 ]; do /sbin/iptables -t mangle -A mark-out -s 192.168.2."$ip" -j MARK --set-mark 1`printf "%03d" $ip` /sbin/iptables -t mangle -A POSTROUTING -s 192.168.2."$ip" -j MARK --set-mark 2`printf "%03d" $ip` ip=`expr $ip + 1` done ip=1 while [ $ip -lt 20 ]; do /sbin/iptables -t mangle -A mark-out -s 192.168.3."$ip" -j MARK --set-mark 3`printf "%03d" $ip` /sbin/iptables -t mangle -A POSTROUTING -s 192.168.3."$ip" -j MARK --set-mark 4`printf "%03d" $ip` ip=`expr $ip + 1` done /sbin/iptables -t mangle -A mark-out -j ACCEPT else echo "Everything is the same" rm -f $newfile fi echo "All Done!" exit 0
|
3:
Примерен код | #!/bin/bash
# htb_eth0.sh Script for upload traffic shaping divided to International & Peering classes /sbin/insmod sch_htb 2>/dev/null /sbin/insmod cls_fw 2>/dev/null /sbin/tc qdisc del dev eth0 root /sbin/tc qdisc add dev eth0 root handle 1: htb default 30 /sbin/tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit burst 20k /sbin/tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit burst 20k /sbin/tc class add dev eth0 parent 1:1 classid 1:20 htb rate 1kbit burst 20k /sbin/tc class add dev eth0 parent 1:1 classid 1:30 htb rate 512kbit burst 10k ip=1 while [ $ip -lt 5 ]; do /sbin/tc class add dev eth0 parent 1:10 classid 1:1`printf "%03d" $ip` htb rate 128kbit ceil 1mbit burst 15k /sbin/tc class add dev eth0 parent 1:20 classid 1:2`printf "%03d" $ip` htb rate 128kbit ceil 1mbit burst 15k /sbin/tc filter add dev eth0 protocol ip parent 1: prio 1 handle 1`printf "%03d" $ip` fw flowid 1:1`printf "%03d" $ip` /sbin/tc filter add dev eth0 protocol ip parent 1: prio 1 handle 2`printf "%03d" $ip` fw flowid 1:2`printf "%03d" $ip` ip=`expr $ip + 1` done ip=1 while [ $ip -lt 20 ]; do /sbin/tc class add dev eth0 parent 1:10 classid 1:3`printf "%03d" $ip` htb rate 32kbit ceil 64kbit burst 15k /sbin/tc class add dev eth0 parent 1:20 classid 1:4`printf "%03d" $ip` htb rate 32kbit ceil 64kbit burst 15k /sbin/tc filter add dev eth0 protocol ip parent 1: prio 2 handle 1`printf "%03d" $ip` fw flowid 1:3`printf "%03d" $ip` /sbin/tc filter add dev eth0 protocol ip parent 1: prio 2 handle 2`printf "%03d" $ip` fw flowid 1:4`printf "%03d" $ip` ip=`expr $ip + 1` done
|
Благодаря предварително!
Титла: traffic shaping
Публикувано от: Hel1Fire в Feb 12, 2006, 13:39
Току що видях , че май съм пообъркал2-ря while (copy/paste до нищо хубаво не води) Примерен код | while [ $ip -lt 20 ]; do /sbin/tc class add dev eth0 parent 1:10 classid 1:3`printf "%03d" $ip` htb rate 32kbit ceil 64kbit burst 15k /sbin/tc class add dev eth0 parent 1:20 classid 1:4`printf "%03d" $ip` htb rate 32kbit ceil 64kbit burst 15k /sbin/tc filter add dev eth0 protocol ip parent 1: prio 2 handle 3`printf "%03d" $ip` fw flowid 1:3`printf "%03d" $ip` /sbin/tc filter add dev eth0 protocol ip parent 1: prio 2 handle 4`printf "%03d" $ip` fw flowid 1:4`printf "%03d" $ip` ip=`expr $ip + 1` done
|
Дали това е бил проблема предстой да се види ... 
Титла: traffic shaping
Публикувано от: Hel1Fire в Feb 12, 2006, 14:07
Не е бил само това проблема  ..
Титла: traffic shaping
Публикувано от: alex_c в Feb 12, 2006, 15:57
Здравей! Радвам се, че ползваш моя код, но наистина само с копи/пейст не става. Обърни внимание на реда,с който задаваш класа 1:20: /sbin/tc class add dev eth0 parent 1:1 classid 1:20 htb rate 1kbit burst 20k
така класа ти е 1 килобит, а ти закачаш към него няколко други подкласа с големина 32-64 килобита. Определено няма да работи така, както очакваш. Освен това, какво значи "не работи" - не ограничава достатъчно, ограничава твърде много или нещо друго.
Best wishes! Alex
Титла: traffic shaping
Публикувано от: Hel1Fire в Feb 12, 2006, 16:49
Пак не работи (не ограничава трафика на 192.168.3.0). Тегли си с колкото може... Всъщност преди поправката не трябваше ли да има проблеми само с международния тряфик (1:20 май беше за него)?
Титла: traffic shaping
Публикувано от: alex_c в Feb 13, 2006, 15:33
ами изпълни командата: iptables -t mangle -L -vn и виж какво има във веригата mark-out - там трябва да се маркират пакетите за БГ пространството. Ако няма нищо в тази верига, значи просто изходящия трафик не се маркира и всичко влиза в default класа. Още повече, че скрипта, който си дал, е за периодично обновяване на БГ пространството. За първоначално стартиране скриптът трябва да е малко по-различен - не трябва да се проверява дали файлът с БГ мрежите е променен. Ето един примерен такъв:
#!/bin/bash #mark_peering.sh - mark outgoing BG Peering traffic
file=/etc/default/bg_nets.txt line_count=`cat $file|wc -l`
if [ $line_count -gt 100 ]; then /sbin/iptables -t mangle -N mark-out 2>/dev/null /sbin/iptables -t mangle -F mark-out /sbin/iptables -t mangle -F POSTROUTING
for name in `seq $line_count` do read name mat=`echo "$name"|grep ^[0-9]` if [ -n "$mat" ] then /sbin/iptables -t mangle -A POSTROUTING -d $name -j mark-out fi done < "$file"
sbin/iptables -t mangle -A mark-out -s xx.xx.xx.xx -j MARK --set-mark 71 /sbin/iptables -t mangle -A POSTROUTING -s xx.xx.xx.xx -j MARK --set-mark 72
/sbin/iptables -t mangle -A mark-out -j ACCEPT
else echo "Truncated file $file" fi
пробвай с този, дано да има ефект
Best wishes! Alex
Титла: traffic shaping
Публикувано от: Hel1Fire в Feb 14, 2006, 12:12
1 от проблемите явно е бил в mark_peering script-a. Не бях обърнал внимание, но като се стигне до "read name" където трябва да прочете ИП от файла то забива (четох, че read е за четене на вход от клавиатурата, но не съм много навътре в шел скриптовете, така че ти си знаеш  ). Седнах и си го написах на perl и сега направо хвърчи, но има друг проблем с htb_eth0.sh!! Постоянно ми дава Примерен код | RTNETLINK answers: File exists We have an error talking to the kernel
|
Сега е време за ровене в нета, за да се отстрани и това и вече живо се надявам всичко да тръгне като хората .
Ако те интересува ето го пренаписания и малко опростен скрипт на perl:
Примерен код | #!/usr/bin/perl
use Shell;
$comm = wget(' -q -O bg_nets.txt "http://ip.ludost.net/cgi/process?country=1&country_list=bg&format_template=prefix&format_name=&format_target=&format_default="'); print "$comm"; open(file, "bg_nets.txt"); while (<file>) { chomp($_); if (index($_,"#") == -1) { print "Building rules for $_ \n"; $comm = iptables (" -t mangle -I POSTROUTING 1 -d $_ -j mark-out"); print "$comm"; } } $ip=1; while ($ip <= 5 ) { $comm = iptables(" -t mangle -A mark-out -s 192.168.2.$ip -j MARK --set-mark 1"); print "$comm"; $comm = iptables(" -t mangle -A POSTROUTING -s 192.168.2.$ip -j MARK --set-mark 2"); print "$comm"; $ip++; } $ip=1; while ($ip <= 20 ) { $comm = iptables(" -t mangle -A mark-out -s 192.168.3.$ip -j MARK --set-mark 3"); print "$comm"; $comm = iptables(" -t mangle -A POSTROUTING -s 192.168.3.$ip -j MARK --set-mark 4"); print "$comm"; $ip++; } $comm = iptables(' -t mangle -A mark-out -j ACCEPT'); print "$comm";
close(file);
print "All done!\n";
|
Много ти благодаря за помощта, която ми оказваш!
Титла: traffic shaping
Публикувано от: Hel1Fire в Feb 14, 2006, 12:56
Вече грешки няма, но за сметка на това няма и резултат  . Разпределя трафика по равно в 192.168.2.0 (за около 2-3 мин изравнява трафика, което е малко бавно, но за сега не е главния проблем това). От мрежата 192.168.3.0 първо не я ограничава и второ: дори и не изравнява трафика между нея и 192.168.2.0 като хората  . Ето последните промени по скриптовете: dhcp.firewall Примерен код | #!/bin/sh
INET_IFACE="eth0"
DHCP="yes" DHCP_SERVER=""
PPPOE_PMTU="no"
LAN_IP="192.168.0.1" LAN_IP_RANGE="192.168.0.0/16" LAN_IFACE="eth1"
LO_IFACE="lo" LO_IP="127.0.0.1"
IPTABLES="/usr/sbin/iptables"
echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/ip_dynaddr
$IPTABLES -F INPUT $IPTABLES -F OUTPUT $IPTABLES -F FORWARD $IPTABLES -t mangle -F mark-out $IPTABLES -t mangle -F POSTROUTING
$IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP
$IPTABLES -N bad_tcp_packets
$IPTABLES -N allowed $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets
$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK \ -m state --state NEW -j REJECT --reject-with tcp-reset $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \ --log-prefix "New not syn:" $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A allowed -p TCP --syn -j ACCEPT $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A allowed -p TCP -j DROP
$IPTABLES -A tcp_packets -p TCP -s 192.168.2.0/24 --dport 21 -j allowed $IPTABLES -A tcp_packets -p TCP -s 192.168.2.0/24 --dport 22 -j allowed $IPTABLES -A tcp_packets -p TCP -s 192.168.0.0/16 --dport 80 -j allowed $IPTABLES -A tcp_packets -p TCP -s 192.168.2.0/24 --dport 2401 -j allowed
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -j ACCEPT
$IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $INET_IFACE -m state --state ESTABLISHED,RELATED \ -j ACCEPT $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPTABLES -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \ --log-level DEBUG --log-prefix "IPT INPUT packet died: "
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \ --log-level DEBUG --log-prefix "IPT FORWARD packet died: "
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -o $INET_IFACE -j ACCEPT
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \ --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
if [ $PPPOE_PMTU == "yes" ]; then $IPTABLES -t nat -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN \ -j TCPMSS --clamp-mss-to-pmtu fi $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
$IPTABLES -t mangle -N mark-out
|
mark-peering.pl
Примерен код | #!/usr/bin/perl
use Shell;
$comm = wget(' -q -O bg_nets.txt "http://ip.ludost.net/cgi/process?country=1&country_list=bg&format_template=prefix&format_name=&format_target=&format_default="'); print "$comm"; open(file, "bg_nets.txt"); print "Building rules for $_ \n"; while (<file>) { chomp($_); if (index($_,"#") == -1) { # print "Building rules for $_ \n"; $comm = iptables (" -t mangle -I POSTROUTING 1 -d $_ -j mark-out"); print "$comm"; } } $ip=1; while ($ip <= 5 ) { $comm = iptables(" -t mangle -A mark-out -s 192.168.2.$ip -j MARK --set-mark 1"); print "$comm"; $comm = iptables(" -t mangle -A POSTROUTING -s 192.168.2.$ip -j MARK --set-mark 2"); print "$comm"; $ip++; } $ip=1; while ($ip <= 20 ) { $comm = iptables(" -t mangle -A mark-out -s 192.168.3.$ip -j MARK --set-mark 3"); print "$comm"; $comm = iptables(" -t mangle -A POSTROUTING -s 192.168.3.$ip -j MARK --set-mark 4"); print "$comm"; $ip++; } $comm = iptables(' -t mangle -A mark-out -j ACCEPT'); print "$comm"; close(file); print "All done!\n";
|
htb_eth0
Примерен код | #!/bin/bash
# htb_eth0.sh Script for upload traffic shaping divided to International & Peering classes
/sbin/insmod sch_htb 2>/dev/null /sbin/insmod cls_fw 2>/dev/null /sbin/tc qdisc del dev eth0 root /sbin/tc qdisc add dev eth0 root handle 1: htb default 30 /sbin/tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit burst 20k /sbin/tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit burst 20k /sbin/tc class add dev eth0 parent 1:1 classid 1:20 htb rate 1mbit burst 20k /sbin/tc class add dev eth0 parent 1:1 classid 1:30 htb rate 512kbit burst 10k
/sbin/tc class add dev eth0 parent 1:10 classid 1:100 htb rate 256kbit ceil 1mbit burst 15k /sbin/tc class add dev eth0 parent 1:20 classid 1:200 htb rate 256kbit ceil 1mbit burst 15k /sbin/tc filter add dev eth0 protocol ip parent 1: prio 10 handle 100 fw flowid 1:100 /sbin/tc filter add dev eth0 protocol ip parent 1: prio 10 handle 200 fw flowid 1:200
/sbin/tc class add dev eth0 parent 1:10 classid 1:300 htb rate 64kbit ceil 128kbit burst 15k /sbin/tc class add dev eth0 parent 1:20 classid 1:400 htb rate 64kbit ceil 128kbit burst 15k /sbin/tc filter add dev eth0 protocol ip parent 1: prio 20 handle 300 fw flowid 1:300 /sbin/tc filter add dev eth0 protocol ip parent 1: prio 20 handle 400 fw flowid 1:400
|
Титла: traffic shaping
Публикувано от: Hel1Fire в Feb 14, 2006, 14:06
Видях си 1 грешчица в перл скрипта: $comm = iptables(" -t mangle -A mark-out -s 192.168.2.$ip -j MARK --set-mark 100"); $comm = iptables(" -t mangle -A mark-out -s 192.168.2.$ip -j MARK --set-mark 200"); $comm = iptables(" -t mangle -A mark-out -s 192.168.3.$ip -j MARK --set-mark 300"); $comm = iptables(" -t mangle -A mark-out -s 192.168.3.$ip -j MARK --set-mark 400"); Промених и htb_eth0, но абсолютно нищо не стана  (( Примерен код | #!/bin/bash
# htb_eth0.sh Script for upload traffic shaping divided to International & Peering classes
/sbin/insmod sch_htb 2>/dev/null /sbin/insmod cls_fw 2>/dev/null
/sbin/ip link set dev eth0 qlen 30
/sbin/tc qdisc del dev eth0 root /sbin/tc qdisc add dev eth0 root handle 1: htb default 30 /sbin/tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit burst 20k /sbin/tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit burst 20k /sbin/tc class add dev eth0 parent 1:1 classid 1:20 htb rate 1mbit burst 20k /sbin/tc class add dev eth0 parent 1:1 classid 1:30 htb rate 512kbit burst 5k /sbin/tc class add dev eth0 parent 1:10 classid 1:100 htb rate 256kbit ceil 1mbit burst 15k /sbin/tc class add dev eth0 parent 1:20 classid 1:200 htb rate 256kbit ceil 1mbit burst 15k /sbin/tc qdisc add dev eth0 parent 1:100 handle 100: sfq perturb 10 /sbin/tc qdisc add dev eth0 parent 1:200 handle 200: sfq perturb 10 /sbin/tc filter add dev eth0 protocol ip parent 1: prio 10 handle 100 fw flowid 1:100 /sbin/tc filter add dev eth0 protocol ip parent 1: prio 10 handle 200 fw flowid 1:200
/sbin/tc class add dev eth0 parent 1:10 classid 1:300 htb rate 64kbit ceil 128kbit burst 10k /sbin/tc class add dev eth0 parent 1:20 classid 1:400 htb rate 64kbit ceil 128kbit burst 10k /sbin/tc qdisc add dev eth0 parent 1:300 handle 300: sfq perturb 10 /sbin/tc qdisc add dev eth0 parent 1:400 handle 400: sfq perturb 10 /sbin/tc filter add dev eth0 protocol ip parent 1: prio 20 handle 300 fw flowid 1:300 /sbin/tc filter add dev eth0 protocol ip parent 1: prio 20 handle 400 fw flowid 1:400
|
Титла: traffic shaping
Публикувано от: Hel1Fire в Feb 15, 2006, 10:15
Някой може ли да ме насочи поне малко къде греша? 
Титла: traffic shaping
Публикувано от: Hel1Fire в Feb 16, 2006, 17:56
Тъй като всичко ми се вижда правилно в скриптовете (а очевидно не е) се поразбъзиках малко и ето какво ми върна iptables -t mangle -L mark-out :
MARK all -- unknown anywhere MARK set 0x64 .... MARK all -- unknown anywhere MARK set 0x12c ....
Това unknown за source ме притеснява и имам съмнения, че за това не маркира като хората и съответно не работят скриптовете.. Това, което е станало нормално ли е или вместо unknown трябва да ми е все пак конкретно IP??
|