Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2013
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.75 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #local-net interface
  4. DEV=ku0
  5.  
  6. #network: 10.50.1.0/24
  7. NET=10.50.1
  8.  
  9. #========================================================================================
  10. spd="Kbit"
  11.  
  12. ifb=ifb0
  13. #prepare and configure ifb
  14. modprobe ifb
  15. ifconfig ${ifb} up || (
  16.         echo "ОШИБКА: Интерфейс ${ifb} не найден"
  17.         exit
  18. )
  19.  
  20. tc qdisc del dev ${DEV} root &>/dev/null
  21. tc qdisc del dev ${DEV} ingress &>/dev/null
  22.  
  23. tc qdisc add dev ${DEV} ingress
  24. tc qdisc add dev ${DEV} root handle 1: htb
  25.  
  26. tc qdisc del dev ifb0 root &>/dev/null
  27. tc qdisc del dev ifb0 ingress &>/dev/null
  28. tc qdisc add dev ifb0 root handle 1: htb
  29.  
  30. tc filter add dev ${DEV} parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
  31.  
  32. ID=0
  33.  
  34. #Для всех адресов от "1" до "254"
  35. for ((IP=1;IP<255;IP++)); do
  36.  
  37.  case $IP in
  38.  
  39.         # для некоторых адресов одна скорость
  40.         3 | 14 | 140 | 114 | 162 )
  41.                 RATE_D=2400
  42.                 RATE_U=460
  43.         ;;
  44.  
  45.         # для всех остальных - другая
  46.         *)
  47.                 RATE_D=530
  48.                 RATE_U=164
  49.         ;;
  50.  
  51.  esac
  52.  
  53. #downlink (internet->client)
  54.  tc class  add dev ${DEV} parent 1:0 classid 1:$[ID+IP] htb rate ${RATE_D}${spd} ceil ${RATE_D}${spd}
  55.  tc filter add dev ${DEV} parent 1:0 protocol ip u32 match ip dst ${NET}.${IP}/32 flowid 1:$[ID+IP]
  56.  
  57. #uplink (client->internet)
  58.  tc class  add dev ifb0 parent 1: classid 1:$[ID+IP] htb rate ${RATE_U}${spd} ceil ${RATE_U}${spd}
  59.  tc filter add dev ifb0 parent 1: protocol ip u32 match ip src ${NET}.$IP/32 flowid 1:$[ID+IP]
  60.  
  61.  printf "IP: %0.15s / SPEED Download: %4d"${spd}" Upload: %4d"${spd}" \n" "${NET}.$IP" ${RATE_D} ${RATE_U}
  62. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement