Титла: 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?? 
					
  
					
				 |