IFB (аналог IMQ ) — основные команды для управления трафиком

Считается что IFB идеологически более правильная реализация псевдо-устройства, чем IMQ.
IFB по умолчанию доступна в дистре Fedora Core 6.
IMQ требует патчить ядро, по умолчанию не доступна.

Насколько я понял идеологически
<span style="color: #461b7e;">   IFB - это скорее для iproute2
   IMQ - iptables
</span>
Документация по IFB в исходниках iproute doc/actions/
или по адресу: <a href="http://linux-net.osdl.org/index.php?title=IFB">http://linux-net.osdl.org/index.php?title=IFB</a>

Отличные картинки с местоположением IMQ:
http://www.abclinuxu.cz/clanky/site/traffic-shaping-2-imq-a-uvod-do-shapingu

<span id="more-2769"></span>
# СБРОС ПРАВИЛ  -----------------------------
<span style="color: #461b7e;"> tc qdisc del dev eth0 root 
 tc qdisc del dev eth0 ingress
</span>
<span style="color: #461b7e;"> tc qdisc del dev ifb0 root 
 tc qdisc del dev ifb0 ingress
</span>
<span style="color: #461b7e;"> modprobe ifb
 ip link set dev ifb0 up
</span>
<span style="color: #461b7e;"> service iptables restart
</span># ------------------------------------------

# IFB включение ----------------------------
<span style="color: #461b7e;"> modprobe ifb
 ip link set dev ifb0 up
</span># ------------------------------------------

## ПОЛЕЗНЫЕ КОМАНДЫ-------------------------
<span style="color: #461b7e;"> tc -s filter show parent ffff: dev eth0
 tc -s qdisc
 ifconfig ifb0
 tc -s filter show dev ifb0 parent 1:
 tc -s qdisc show dev ifb0 
</span>

######################################################
# ПРИМЕР ограничения входящего трафика 
# маркировка IPTABLES недоступна
######################################################

### IFB --------------------------------------------------------------
<span style="color: #461b7e;"> tc qdisc add dev ifb0 root handle 1: prio 
</span>
<span style="color: #461b7e;"> tc qdisc add dev ifb0 parent 1:1 handle 10: tbf rate 80kbit buffer 1600 limit 3000
 tc qdisc add dev ifb0 parent 1:2 handle 20: tbf rate 160kbit buffer 1600 limit 3000
</span>
## выделили закачку исходников ядра 
## wget <a href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.gz">http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.gz</a>
<span style="color: #461b7e;"> tc filter add dev ifb0 parent 1: protocol ip prio 1 u32 match ip src 204.152.191.37/32 flowid 1:1 
</span>
## выделили закачку исходников fedora core 6
## wget <a href="ftp://ftp.muug.mb.ca/pub/fedora/linux/core/6/i386/iso/FC-6-i386-DVD.iso">ftp://ftp.muug.mb.ca/pub/fedora/linux/core/6/i386/iso/FC-6-i386-DVD.iso</a>
<span style="color: #461b7e;"> tc filter add dev ifb0 parent 1: protocol ip prio 2 u32 match ip src 130.179.31.46/32 flowid 1:2 
</span>

### eth0 --------------------------------------------------------------
<span style="color: #461b7e;"> # перенаправлять входящие пакеты с eth0 в ifb0 
 tc qdisc add dev eth0 ingress
 tc filter add dev eth0 parent ffff: protocol ip \
  u32 match u32 0 0 action mirred egress redirect dev ifb0
</span>
## TESTING -------------------------------------------------------------
оцените скорость и т.д. 
wget <a href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.gz">http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.gz</a>

######################################################
# ПРИМЕР ограничения исходящего трафика 
# маркировка IPTABLES доступна но
# filter работает на уровне iproute2 match ip dst
######################################################

Выполните СБРОС ПРАВИЛ и включите IFB (если выкл.)

### IFB --------------------------------------------------------------
<span style="color: #461b7e;"> tc qdisc add dev ifb0 root handle 1: prio
 tc qdisc add dev ifb0 parent 1:1 handle 10: tbf rate 80kbit buffer 1600 limit 3000
 tc qdisc add dev ifb0 parent 1:2 handle 20: tbf rate 160kbit buffer 1600 limit 3000
</span>
<span style="color: #461b7e;"> # закачка большого файла с хх.хх.хх.хх
 tc filter add dev ifb0 parent 1: protocol ip prio 2 u32 match ip dst  хх.хх.хх.хх/32 flowid 1:2 
</span>
### eth0 --------------------------------------------------------------
<span style="color: #461b7e;"> # перенаправлять выходящие пакеты с eth0 в ifb0 
 tc qdisc add dev eth0 root handle 2: prio
 tc filter add dev eth0 parent 2: protocol ip \
      u32 match u32 0 0 action mirred egress redirect dev ifb0
</span>
## TESTING -------------------------------------------------------------
закачивайте большой файла на хх.хх.хх.хх оцените скорость и т.д. 
<span style="color: #461b7e;"> tc -s filter show parent ffff: dev eth0
 tc -s qdisc
 ifconfig ifb0
 tc -s filter show dev ifb0 parent 1:
 tc -s qdisc show dev ifb0 
</span>
######################################################
# ПРИМЕР ограничения исходящего трафика 
# маркировка IPTABLES доступна
# filter работает на уровне маркировке пакетов в IPTABLES
######################################################

 Выполните СБРОС ПРАВИЛ и включите IFB (если выкл.)

### IFB --------------------------------------------------------------
<span style="color: #461b7e;"> tc qdisc add dev ifb0 root handle 1: prio
</span>
<span style="color: #461b7e;"> tc qdisc add dev ifb0 parent 1:1 handle 10: tbf rate 80kbit buffer 1600 limit 3000
 tc qdisc add dev ifb0 parent 1:2 handle 20: tbf rate 160kbit buffer 1600 limit 3000
</span>
<span style="color: #461b7e;"> tc filter add dev ifb0 parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:1
 tc filter add dev ifb0 parent 1:0 prio 0 protocol ip handle 20 fw flowid 1:2
</span>
### eth0 --------------------------------------------------------------
<span style="color: #461b7e;"> # перенаправлять выходящие пакеты с eth0 в ifb0 
 tc qdisc add dev eth0 root handle 2: prio
 tc filter add dev eth0 parent 2: protocol ip \
      u32 match u32 0 0 action mirred egress redirect dev ifb0
</span>
<span style="color: #461b7e;"> tc qdisc add dev eth0 root handle 2: prio
 tc filter add dev eth0 parent 2: protocol ip \
   u32 match u32 0 0 action mirred egress redirect dev ifb0
</span>
# поставить в IPTABLES метку  
<span style="color: #461b7e;"> iptables -t mangle -A OUTPUT -p tcp -d 85.254.228.6/32 -j MARK --set-mark 10 
</span>
## TESTING -------------------------------------------------------------
закачивайте большой файла на хх.хх.хх.хх оцените скорость и т.д.

Источник http://asmodeus.com.ua/library/os/linux/shaper_tc.html

Запись опубликована в рубрике *Unix,*Linux, *Сети. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91