dynashape + iptables +iproute2 помощь в настройке

Технические вопросы по UTM 5.0
Ответить
Serjik_M_KZ
Сообщения: 11
Зарегистрирован: Пн июн 09, 2008 09:18
Откуда: Махачкала

dynashape + iptables +iproute2 помощь в настройке

Сообщение Serjik_M_KZ »

Проблема с организацией динамического шейпирования без разрыва PPPоE сессии
Немного о системе ОС Red Hat EL 5.4
UTM5 - 5.2.1-007
Использую модули rfw, radius и dynashape

Задача создать безлимитный тарифный план, допустим 512кб с ограничением по трафику допустим 500мб при превышении данного лимита понижать скорость до 64кб

Прочитал всю доку и все что нашел на форуме
http://www.netup.ru/UTM5/articles.php?n=50
http://www.netup.ru/UTM5/articles.php?n=39
http://www.netup.ru/UTM5/articles/dynashape.php

основная статья которая помогла все организовать
http://www.netup.ru/UTM5/articles.php?n=40

при превышении лимита трафика срабатывает шейпер запускается скрипит (запуск которого прописан rfw5.cfg в строке firewall_path=/home/test)

текст скрипта взят с статьи
http://www.netup.ru/UTM5/articles.php?n=40

#!/bin/bash
if="eth0"
echo $*
echo "First create: tc qdisc add dev $if root handle 1: htb"
case "$6" in
0)
iptables -t mangle -D FORWARD -s 0/0 -d $2/$3 -j MARK --set-mark $1
tc filter del dev $if parent 1: protocol ip prio 3 handle $1 fw classid 1:$1
tc class del dev $if parent 1:1 classid 1:$1 htb rate $5kbit burst 20k
;;
1)
iptables -t mangle -A FORWARD -s 0/0 -d $2/$3 -j MARK --set-mark $1
tc filter add dev $if parent 1: protocol ip prio 3 handle $1 fw classid 1:$1
tc class add dev $if parent 1:1 classid 1:$1 htb rate $5kbit burst 20k
;;
2)
tc class change dev $if parent 1:1 classid 1:$1 htb rate $5kbit burst 20k
;;
*)
echo "Usage: `basename $0` {UID IP UBITS UMASK BANDWIDTH [0|1|2]}" >&2
exit 64
;;
esac


проблема в том как передать значения пользователей «UID IP UBITS UMASK BANDWIDTH»
и
В качестве последнего параметра надо указать значение 0, 1 или 2 в зависимости от типа события:
0 – Снятие ограничений;
1 – Установление ширины;
2 – Изменение ширины.

Создал правило в качестве событий устанавливал Установление ширины, Изменение ширины и Снятие ограничений
Но нечего путного не выходит скрипт срабатывает но не передаются данные пользователей и параметр скрипта [0|1|2]

Подскажите с как правильно составить правила фаервола для передачи данных пользователя скрипту, если можно примеры под linux (iptables, iproute2) потому как мои попытки нечему не привели

Serjik_M_KZ
Сообщения: 11
Зарегистрирован: Пн июн 09, 2008 09:18
Откуда: Махачкала

Сообщение Serjik_M_KZ »

нашел первое несоответствие в доке (UID IP UBITS UMASK BANDWIDTH)
в правилах нужно указывать UIP а не как указано в документации IP
иначе не передается IP
копаю дальше

Serjik_M_KZ
Сообщения: 11
Зарегистрирован: Пн июн 09, 2008 09:18
Откуда: Махачкала

Сообщение Serjik_M_KZ »

при запуске скрипта вручную с указанием всех параметров
вылазит следующий баг

./test 2 10.10.133.12 32 255.255.255.255 0 1
2 10.10.133.12 32 255.255.255.255 0 1
First create: tc qdisc add dev eth0 root handle 1: htb
RTNETLINK answers: Invalid argument
We have an error talking to the kernel
"rate" is required.

что можно с этим делать?

Adwiz
Сообщения: 5
Зарегистрирован: Чт апр 29, 2010 12:38
Откуда: Мытищи
Контактная информация:

Dynashape 5.2.1-007

Сообщение Adwiz »

Serjik_M_KZ писал(а):при запуске скрипта вручную с указанием всех параметров
вылазит следующий баг

./test 2 10.10.133.12 32 255.255.255.255 0 1
2 10.10.133.12 32 255.255.255.255 0 1
First create: tc qdisc add dev eth0 root handle 1: htb
RTNETLINK answers: Invalid argument
We have an error talking to the kernel
"rate" is required.

что можно с этим делать?
Такая же история, не разобрались что с этим делать?

Ursadon
Сообщения: 5
Зарегистрирован: Пн фев 15, 2010 12:30

Сообщение Ursadon »

Если ещё актуально...

> First create: tc qdisc add dev eth0 root handle 1: htb

Внимательнее читаем документацию.
...
Предполагается, что предварительно выполнены следующие команды:

tc qdisc add dev eth0 root handle 1: htb

– создана очередь (qdisc, queueing discipline), ассоциированная со входящим интерфейсом eth0, имеющая идентификатор 1. Для очереди выбран метод упорядочения htb (Hierarchy Token Bucket), отличающийся простотой и высоким быстродействием.

tc class add dev eth0 parent 1: classid 1:1 htb rate 50mbit ceil 100mbit burst 200k
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit burst 20k
...
Далее.
> RTNETLINK answers: Invalid argument

Правильно ли записал имена интерфейсов?
вывод ifconfig в студию.

И по приведённому скрипту можно шейпить только исходящий трафф на одном интерфейсе (в данном случае eth0)

Ответить