#!/bin/bash
LIFIN="eth0"
LIFOUT="eth1"
snmpwalk -v 2c -c public 192.168.1.252
IP-MIB::ipNetToMediaPhysAddress >
/root/awk-s/ip-mac
awk -f /root/awk-s/ip.awk /root/awk-s/ip-mac >
/root/awk-s/ip
sleep 2
tc qdisc del dev $LIFOUT root
tc qdisc del dev $LIFIN root
sleep 2
tc qdisc add dev $LIFIN root handle 1: htb default 30
tc qdisc add dev $LIFOUT root handle 1: htb default 30
tc class add dev $LIFIN parent 1: classid 1:1 htb rate
1000Mbit quantum 60000
tc class add dev $LIFIN parent 1: classid 1:2 htb rate
1500Kbit quantum 600
tc class add dev $LIFOUT parent 1: classid 1:1 htb rate
1000Mbit quantum 60000
tc class add dev $LIFOUT parent 1: classid 1:2 htb rate
1500Kbit quantum 600
#tc qdisc add dev $LIFOUT parent 1:1 handle 1: sfq perturb
10
tc filter add dev $LIFOUT parent 1: protocol ip prio 1 u32
match ip src 10.10.10.0/28 classid 1:1
tc filter add dev $LIFOUT parent 1: protocol ip prio 1 u32
match ip dst 10.10.10.0/28 classid 1:1
tc filter add dev $LIFIN parent 1: protocol ip prio 1 u32
match ip src 10.10.10.0/28 classid 1:1
tc filter add dev $LIFIN parent 1: protocol ip prio 1 u32
match ip dst 10.10.10.0/28 classid 1:1
tc filter add dev $LIFOUT parent 1: protocol ip prio 1 u32
match ip src 192.168.0.0/24 classid 1:1
tc filter add dev $LIFOUT parent 1: protocol ip prio 1 u32
match ip dst 192.168.0.0/24 classid 1:1
tc filter add dev $LIFIN parent 1: protocol ip prio 1 u32
match ip src 192.168.0.0/24 classid 1:1
tc filter add dev $LIFIN parent 1: protocol ip prio 1 u32
match ip dst 192.168.0.0/24 classid 1:1
i=1
for k in `cat /root/awk-s/ip`; do
j=0
j=`expr $i + 10`
tc class add dev $LIFIN parent 1: classid 1:$j htb rate
1500Kbit ceil 1500Kbit quantum 600
tc filter add dev $LIFIN parent 1: protocol ip prio 2 u32
match ip dst $k/32 classid 1:$j
tc class add dev $LIFOUT parent 1: classid 1:$j htb rate
1500Kbit ceil 1500Kbit quantum 600
tc filter add dev $LIFOUT parent 1: protocol ip prio 2 u32
match ip src $k/32 classid 1:$j
i=`expr $i + 1`
done