не понимаю кое что в работе Pipes (SOLVED)

Технические вопросы по UTM 5.0
Ответить
Kristian
Сообщения: 95
Зарегистрирован: Ср мар 04, 2009 21:32

не понимаю кое что в работе Pipes (SOLVED)

Сообщение Kristian »

Добрый день.
Использую Pipes для ограничения полосы пропускания для пользователей.
Конструкция вида

Код: Выделить всё

$fwcmd pipe 1024 config bw 1024Kbit/s mask src-ip 0xffffffff # in
$fwcmd pipe 2024 config bw 512Kbit/s mask dst-ip 0xffffffff # out

$cmd pipe tablearg ip from table\(1\) to not table\(0\) out #Traffic to any from 1024/512 clients OUT VIP2NEW tariff
$cmd pipe tablearg ip from table\(11\) to not table\(0\) out #Traffic to any from 1024/512 clients OUT (external IP) VIP2NEW tariff

После ната

$cmd pipe tablearg ip from not table\(0\) to table\(2\) in #Traffic to  1024/512 clients from any (IN)
$cmd pipe tablearg ip from not table\(0\) to table\(21\) in #Traffic to  1024/512 clients from any (IN) (external IP)


Вопрос состоит в том, что данная конструкция ограничивает полосу для конкретной сессии, и если человек имеет ограничение 512 кб, то заустив 5 закачек одновременно - у него будет будет 5 штук по 512 кб :(

Проверено на тестах .....
Что надо изменить, что бы при попытке пользователя запустить 5 закачек - он не вылазил за свой лимит в 512 кб




Может я не правильно пишу маску mask src-ip 0xffffffff ?
Может надо 0x000000ff ?
Последний раз редактировалось Kristian Сб июл 11, 2009 16:16, всего редактировалось 1 раз.

Kristian
Сообщения: 95
Зарегистрирован: Ср мар 04, 2009 21:32

Сообщение Kristian »

Такое впечатление, что когда приходять пакеты на новую закачку - вместо того что бы проходить по созданному туннелю, под новую закачку создается новый пайп с полосой ....

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Скорее всего так оно и есть. Число пайпов можно глянуть через ipfw pipe list. Если там более одной на адрес, то попробуйте поиграть с маской подсети. Это поможет если у вас не PPP соединение (PPTP/PPPoE)

Теперь как это грамотно строить.

Если вы режете полосу от клиента в инет (out), то в пайп завертываются пакеты со статусом out на внешнем интерфейсе до ната. Если режете из инета в сторону клиента (in), то в пайп завертываются пакеты со статусом out, но уже на внутреннем интерфейсе и после ната. Можно привязаться к именам интерфейсов или рулить клиентскими адресами, если у вас куча интерфейсов (PPP). Пакеты со статусом in туда заворачивать смысла не вижу. Такая модель исключает возможность двойного завертывания в пайп одного и того же пакета, который может быть in на одном интерфейсе, а после out на другом.

Как раз двойное завертывание и может поломать полосу.

Kristian
Сообщения: 95
Зарегистрирован: Ср мар 04, 2009 21:32

Сообщение Kristian »

Спасибо за рекомендацию, сделал как вы сказали :

Код: Выделить всё

$cmd pipe tablearg ip from table\(1\) to not table\(0\) out via $oif #Traffic to any from 1024/512 clients OUT VIP2NEW tariff
$cmd pipe tablearg ip from table\(11\) to not table\(0\) out via $oif #Traffic to any from 1024/512 clients OUT (external IP) VIP2NEW tariff
 
После ната 

$cmd pipe tablearg ip from not table\(0\) to table\(2\) out via $iif #Traffic to  1024/512 clients from any (IN)
$cmd pipe tablearg ip from not table\(0\) to table\(21\) out via $iif #Traffic to  1024/512 clients from any (IN) (external IP)
В результате получилось, что если dst addr одинаковый - то полоса делится как ей и положено на количество закачек, но если адрес ресурса второй одновременной закачки отличается от адреса первой закачки ---- нарезается максимально возможная полоса в 512кб.

При трех одновременных закачках (2 с одного сайта и 1 с какого то другого) вывод ipfw pipe show

Код: Выделить всё

[root@gw /etc/ipfw]# ipfw pipe show
00612: 256.000 Kbit/s    0 ms   50 sl. 12 queues (64 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0xffffffff/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  5 ip           0.0.0.0/0      94.100.181.140/0       12     2068  0    0   0
  6 ip           0.0.0.0/0         199.7.57.72/0        7      867  0    0   0
 14 ip           0.0.0.0/0      217.73.200.221/0       23     3003  0    0   0
 26 ip           0.0.0.0/0       63.245.209.49/0       10     1415  0    0   0
 34 ip           0.0.0.0/0        87.51.34.132/0     4862   195217  0    0   0
 41 ip           0.0.0.0/0       94.100.189.32/0       39     5496  0    0   0
 43 ip           0.0.0.0/0       94.100.189.34/0        6     1007  0    0   0
 48 ip           0.0.0.0/0       63.245.209.91/0       10     1693  0    0   0
 50 ip           0.0.0.0/0        194.67.80.52/0     4104   165437  0    0   0
 51 ip           0.0.0.0/0       81.222.128.14/0        6      720  0    0   0
 55 ip           0.0.0.0/0      89.202.157.226/0       10      978  0    0   0
 63 ip           0.0.0.0/0      94.100.179.246/0       11     1647  0    0   0
00001:  15.000 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
02024: 512.000 Kbit/s    0 ms   50 sl. 0 queues (64 buckets) droptail
00512: 512.000 Kbit/s    0 ms   50 sl. 13 queues (64 buckets) droptail
    mask: 0x00 0xffffffff/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  2 ip     81.222.128.14/0             0.0.0.0/0        6     2552  0    0   0
  3 ip     63.245.209.91/0             0.0.0.0/0       11     6782  0    0   0
  8 ip    94.100.179.246/0             0.0.0.0/0        9     1789  0    0   0
 13 ip     63.245.209.92/0             0.0.0.0/0       18     6041  0    0   0
 14 ip    89.202.157.226/0             0.0.0.0/0        9     1265  0    0   0
 23 ip     63.245.209.49/0             0.0.0.0/0        2       80  0    0   0
 32 ip     94.100.189.34/0             0.0.0.0/0        6      476  0    0   0
 36 ip     94.100.189.32/0             0.0.0.0/0       33     3684  0    0   0
 43 ip      194.67.80.52/0             0.0.0.0/0     6191  9178018 27 40500   0
 51 ip    217.73.200.221/0             0.0.0.0/0       21     2608  0    0   0
 54 ip    192.168.151.15/0             0.0.0.0/0      708    59472  0    0   0
 59 ip      87.51.34.132/0             0.0.0.0/0     7478 11153462  4 6000   0
 60 ip    94.100.181.140/0             0.0.0.0/0       12     1306  0    0   0
01024:   1.024 Mbit/s    0 ms   50 sl. 0 queues (64 buckets) droptail
00712:   2.048 Mbit/s    0 ms   50 sl. 0 queues (64 buckets) droptail
00012:  15.000 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
00812:   1.024 Mbit/s    0 ms   50 sl. 0 queues (64 buckets) droptail
q00001: weight 50 pipe 1   50 sl. 0 queues (64 buckets)
          GRED w_q 0.002991 min_th 10 max_th 30 max_p 0.099991
q00311: weight 50 pipe 12   50 sl. 0 queues (64 buckets)
          GRED w_q 0.002991 min_th 10 max_th 30 max_p 0.099991
q00012: weight 50 pipe 12   50 sl. 0 queues (64 buckets)
          GRED w_q 0.002991 min_th 10 max_th 30 max_p 0.099991
q00031: weight 50 pipe 1   50 sl. 0 queues (64 buckets)
          GRED w_q 0.002991 min_th 10 max_th 30 max_p 0.099991

Ума не приложу почему при выборе другого сайта создается новый pipe если src addr запрашивающего один и тот же ..... :(

Kristian
Сообщения: 95
Зарегистрирован: Ср мар 04, 2009 21:32

Сообщение Kristian »

Решение как всегда оказалось простым.
Я изменил маску в выражениях формирующих трубу на 0x00000000

Тоесть при

Код: Выделить всё

$fwcmd pipe 1024 config bw 1024Kbit/s mask src-ip 0x00000000

Полоса нарезается на конкретный src IP не зависимо куда он обращается.

Спасибо всем большое (вернее JAO) :D

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Гут. А можно было при обьявлении пайпов поменять местами src-addr и dst-addr, маску оставить также 0xffffffff. То есть в объявлении, где mask src-addr, поставить mask dst-addr и наоборот. По выводу ipfw pipe show ясно, что у вас не тот адрес маскируется, оттого и со скоростью непорядок.

У меня когда-то так было, а теперь через ng_car нарезаю. На высоких скоростях нарезки (выше двух мегабит) у пайпов наблюдал странности.

Belchik
Сообщения: 81
Зарегистрирован: Пн ноя 28, 2005 10:55

Сообщение Belchik »

А какие странности если не секрет?

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Не секрет. Скорость не соответствует установленной. Это не есть гут.

Ответить