The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Шейпинг в linux... Не работают фильтры с псевдоустройством I..."
Отправлено gard, 29-Апр-09 15:15 
Попробовал оба варианта (вот они):
1.
#!/bin/bash

modprobe ifb
#ifconfig ifb0 up
ip link set dev ifb0 up
#ip addr add 192.168.0.3/32 dev ifb0

tc qdisc del dev ifb0 root     2> /dev/null > /dev/null
tc qdisc del dev ibf0 ingress     2> /dev/null > /dev/null
tc qdisc del dev ppp0 root        2> /dev/null > /dev/null
tc qdisc del dev ppp0 ingress     2> /dev/null > /dev/null
tc qdisc del dev eth1 root        2> /dev/null > /dev/null
tc qdisc del dev eth1 ingress     2> /dev/null > /dev/null

#======interface ppp0======
#tc qdisc add dev ppp0 ingress handle ffff:
#redirect
#tc filter add dev ppp0 parent ffff: protocol ip prio 10 u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0

#======interface ifb0======
tc qdisc add dev ifb0 root handle 1: htb default 120
    #root class
    tc class add dev ifb0 parent 1: classid 1:1 htb rate 512kbit ceil 512kbit
        #admin
        tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 128kbit ceil 128kbit prio 1
            tc qdisc add dev ifb0 parent 1:10 handle 110: sfq perturb 10
        #all user (local network)
        tc class add dev ifb0 parent 1:1 classid 1:20 htb rate 384kbit ceil 512kbit prio 2
            #user 1
            tc class add dev ifb0 parent 1:20 classid 1:110 htb rate 64kbit ceil 128kbit prio 3
                tc qdisc add dev ifb0 parent 1:110 handle 110: sfq perturb 10
            #default
            tc class add dev ifb0 parent 1:20 classid 1:120 htb rate 128kbit ceil 384kbit prio 4
                tc qdisc add dev ifb0 parent 1:120 handle 120: sfq perturb 10

#filters
tc filter add dev ifb0 parent 1: protocol ip prio 1 handle 10 fw flowid 1:10
tc filter add dev ifb0 parent 1: protocol ip prio 4 handle 20 fw flowid 1:20
tc filter add dev ifb0 parent 1: protocol ip prio 3 handle 110 fw flowid 1:110
tc filter add dev ifb0 parent 1: protocol ip prio 5 handle 120 fw  flowid 1:120

tc qdisc add dev ppp0 ingress handle ffff:
#tc filter add dev ppp0 parent ffff: protocol ip pref 1 u32 match ip dst 192.168.1.0/24 \
   #action ipt -j MARK --set-mark 20 \
   #action continue
tc filter add dev ppp0 parent ffff: protocol ip prio 1 u32 match ip dst 192.168.1.1 \
   action ipt -j MARK --set-mark 10 \
   action continue
tc filter add dev ppp0 parent ffff: protocol ip prio 2 u32 match ip dst 192.168.1.3 \
   action ipt -j MARK --set-mark 110 \
   action continue
tc filter add dev ppp0 parent ffff: protocol ip prio 3 u32 match ip dst 192.168.1.2 \
   action ipt -j MARK --set-mark 120 \
   action continue
tc filter add dev ppp0 parent ffff: protocol ip prio 10 u32 match u32 0 0 \
   action mirred egress redirect dev ifb0


2.
#!/bin/bash

modprobe ifb
#ifconfig ifb0 up
ip link set dev ifb0 up
#ip addr add 192.168.0.3/32 dev ifb0

tc qdisc del dev ifb0 root     2> /dev/null > /dev/null
tc qdisc del dev ibf0 ingress     2> /dev/null > /dev/null
tc qdisc del dev ppp0 root        2> /dev/null > /dev/null
tc qdisc del dev ppp0 ingress     2> /dev/null > /dev/null
tc qdisc del dev eth1 root        2> /dev/null > /dev/null
tc qdisc del dev eth1 ingress     2> /dev/null > /dev/null

#======interface ppp0======
#tc qdisc add dev ppp0 ingress handle ffff:
#redirect
#tc filter add dev ppp0 parent ffff: protocol ip prio 10 u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0

tc qdisc add dev ppp0 ingress handle ffff:
tc filter add dev ppp0 parent ffff: protocol ip prio 1 u32 match ip dst 192.168.1.0/24 flowid :20 action continue
#tc filter add dev ppp0 parent ffff: protocol ip prio 2 u32 match ip dst 192.168.1.1 flowid :10 action continue
#tc filter add dev ppp0 parent ffff: protocol ip prio 3 u32 match ip dst 192.168.1.3 flowid :110 action continue

tc filter add dev ppp0 parent ffff: protocol ip prio 10 u32 match u32 0 0 action mirred egress redirect dev ifb0

#======interface ifb0======
tc qdisc add dev ifb0 root handle 1: htb default 20
    #root class
    tc class add dev ifb0 parent 1: classid 1:1 htb rate 896kbit ceil 896kbit
        #admin
        tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 640kbit ceil 896kbit prio 1
            tc qdisc add dev ifb0 parent 1:10 handle 110: sfq perturb 10
        #all user (local network)
        tc class add dev ifb0 parent 1:1 classid 1:20 htb rate 256kbit ceil 256kbit prio 2

#filters

Один раз показалось, что скорость изменилась, но при внимательном изучении вышло что опять-таки все идет лишь в дефолтный класс, борьба за полосу в котором происходит между роутером и локальной сетью по законам "кто успел тот и съел", то есть никакого шейпинга добиться не удалось. Фильтры видимо не хотят работать. Начинаю подумывать об IMQ, когда время появится.. :) Но в любом случае спасибо! за помощь! =)

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру