hello, I try to use layer7 filter to classify packets. I have a proble with http match. This protocol seems to work well with l7-filter (http://l7-filter.sourceforge.net/protocols) but for me nothing is filtering in http class. Someone can help me ? Here is my script : #!/bin/bash IPT_BIN=/sbin/iptables TC_BIN=/sbin/tc INTER_OUT=ppp0 LINK_RATE_UP=1000Kbit RATE_ACK=200Kbit RATE_DEFAULT=100Kbit RATE_12=12Kbit RATE_13=13Kbit RATE_14=14Kbit NB_filtre_12=1 NB_filtre_13=2 NB_filtre_14=4 PROTO_12_1=http PROTO_13_1=skypeout PROTO_13_2=skypetoskype PROTO_14_1=edonkey PROTO_14_2=gnutella PROTO_14_3=applejuice PROTO_14_4=bittorrent # Delete all qdisc on $INTER_IN and $INTER_OUT $TC_BIN qdisc del dev $INTER_IN root 2> /dev/null > /dev/null $TC_BIN qdisc del dev $INTER_IN ingress 2> /dev/null > /dev/null $TC_BIN qdisc del dev $INTER_OUT root 2> /dev/null > /dev/null $TC_BIN qdisc del dev $INTER_OUT ingress 2> /dev/null > /dev/null # Delete magle''s rules $IPT_BIN -t mangle -F $IPT_BIN -t mangle -X $IPT_BIN -t mangle -Z ######################## # TC Rules ######################## # initRules $TC_BIN qdisc add dev $INTER_OUT handle 1: root htb default 1 $TC_BIN class add dev $INTER_OUT parent 1: classid 1:1 htb rate $LINK_RATE_UP $TC_BIN filter add dev $INTER_OUT parent 1:0 protocol all u32 match u32 0 0 classid 1:1 ## BuildInChains $TC_BIN class add dev $INTER_OUT parent 1:1 classid 1:11 htb rate $LINK_RATE_UP ceil $LINK_RATE_UP quantum 1532 NUM_file=12 NB_class=$NB_file while [ $NB_class -ge 0 ] do PRIO=$((5-$NB_class)) case $NUM_file in 12) RATE_PIPE=$RATE_12 ;; 13) RATE_PIPE=$RATE_13 ;; 14) RATE_PIPE=$RATE_14 ;; esac $TC_BIN class add dev $INTER_OUT parent 1:11 classid 1:$NUM_file htb rate $RATE_PIPE ceil $LINK_RATE_UP prio $PRIO quantum 1532 $TC_BIN qdisc add dev $INTER_OUT handle $NUM_file: parent 1:$NUM_file sfq NUM_file=$(($NUM_file + 1)) NB_class=$(($NB_class - 1)) done ## default pipe $TC_BIN class add dev $INTER_OUT parent 1:11 classid 1:199 htb rate $RATE_DEFAULT ceil $LINK_RATE_UP prio 4 quantum 1532 $TC_BIN qdisc add dev $INTER_OUT handle 199: parent 1:199 sfq #################### # iptables rules #################### # # initRules $IPT_BIN -t mangle -N ms-all $IPT_BIN -t mangle -N ms-all-chains $IPT_BIN -t mangle -N ms-prerouting $IPT_BIN -t mangle -A PREROUTING -j ms-prerouting $IPT_BIN -t mangle -A ms-prerouting -j CONNMARK --restore-mark $IPT_BIN -t mangle -A FORWARD -o $INTER_OUT -j ms-all $IPT_BIN -t mangle -A POSTROUTING -o $INTER_OUT -j ms-all-chains # buildInChains $IPT_BIN -t mangle -N ms-chain-$INTER_OUT-1:11 $IPT_BIN -t mangle -A ms-all-chains -m connmark --mark 0xc0ed4017 -j ms-chain-$INTER_OUT-1:11 $IPT_BIN -t mangle -A ms-all -o $INTER_OUT -j ms-chain-$INTER_OUT-1:11 NUM_file=12 while [ $NB_file -ge 0 ] do while [ $((NB_filtre_$NUM_file)) -ge 1 ] do case $NUM_file in 12) case $NB_filtre_12 in 1) $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_12_1 -j CLASSIFY --set-class 1:$NUM_file $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_12_1 -j RETURN ;; esac NB_filtre_12=$(($NB_filtre_12 - 1)) ;; 13) case $NB_filtre_13 in 1) $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_13_1 -j CLASSIFY --set-class 1:$NUM_file $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_13_1 -j RETURN ;; 2) $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_13_2 -j CLASSIFY --set-class 1:$NUM_file $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_13_2 -j RETURN ;; esac NB_filtre_13=$(($NB_filtre_13 - 1)) ;; 14) case $NB_filtre_14 in 1) $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_14_1 -j CLASSIFY --set-class 1:$NUM_file $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_14_1 -j RETURN ;; 2) $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_14_2 -j CLASSIFY --set-class 1:$NUM_file $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_14_2 -j RETURN ;; 3) $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_14_3 -j CLASSIFY --set-class 1:$NUM_file $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_14_3 -j RETURN ;; 4) $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_14_4 -j CLASSIFY --set-class 1:$NUM_file $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -m layer7 --l7proto $PROTO_14_4 -j RETURN ;; esac NB_filtre_14=$(($NB_filtre_14 - 1)) ;; esac done NUM_file=$(($NUM_file + 1)) NB_file=$(($NB_file - 1)) done $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -j CLASSIFY --set-class 1:199 $IPT_BIN -t mangle -A ms-chain-$INTER_OUT-1:11 -j RETURN $IPT_BIN -t mangle -A ms-prerouting -j CONNMARK --save-mark