Биллинговая система Nodeny
23 Ноября 2024, 05:53:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Шейпер не работает как-то странно...  (Прочитано 6430 раз)
Septima
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 6


Просмотр профиля
« : 17 Марта 2010, 00:02:32 »

Добрый день! Понимаю, что это не совсем вопрос по биллингу, но все же... Поставили версию 49.32, все по инструкции по установке, кроме одного - вместо pf использовал ipfw nat.
Система - 7.3-PRERELEASE. Прописали клиентов, тарифы, указал скорость в тарифе - 1Мб, клиент авторизуется, попадает во все таблицы, создается труба:
Код:
01008:   1.000 Mbit/s    0 ms   50 sl. 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 icmp       10.5.0.17/0       74.125.87.103/0     130501  5494337  0    0   0
, трафик от клиета попадает в трубу...
При попытке скачать perl (11МБ) с одного из официальных сайтов раздачи скорость прыгала около положенных 120 кБ/с. Но при попытке чуть позже скачать скорость легко поднималась до 600-800кБ/с.
Код:
01008:   1.000 Mbit/s    0 ms   50 sl. 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 icmp       10.5.0.17/0       74.125.87.103/0     149974  6300990  0    0   0
Интересно, что адрес в трубе не поменялся, хотя счетчик трафика изменился (увы, - незначительно). Грустный
Код:
# ipfw list
00050 allow tcp from any to me dst-port 22
00051 allow tcp from me 22 to any
00110 allow ip from any to any via lo0
00120 skipto 1000 ip from me to any
00130 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17
00140 nat 1 ip from any to any via fxp0
00160 skipto 2000 ip from any to me
00200 skipto 500 ip from any to any via fxp0
00300 skipto 4500 ip from any to any in
00400 skipto 450 ip from any to any recv fxp0
00420 divert 1 ip from any to any
00450 divert 2 ip from any to any
00490 allow ip from any to any
00500 skipto 32500 ip from any to any in
00510 divert 1 ip from any to any
00540 allow ip from any to any
01000 allow udp from any 53,7723 to any
01010 allow tcp from any to any setup keep-state
01020 allow udp from any to any keep-state
01100 allow ip from any to any
02000 check-state
02010 allow icmp from any to any
02020 allow tcp from any to any dst-port 80,443
02050 deny ip from any to any via fxp0
02060 allow udp from any to any dst-port 53,7723
02100 deny ip from any to any
05000 deny ip ip from not table(0) to any
05001 skipto 5010 ip from table(127) to table(126)
05002 skipto 5030 ip from any to not table(2)
05003 deny ip from any to not table(1)
05004 pipe tablearg ip from table(21) to any
05005 deny ip from any to any
05010 pipe tablearg ip from table(127) to any
05030 deny tcp from table(15) to any dst-port 25
05400 pipe tablearg ip from table(11) to any
32000 deny ip from any to any
32490 unreach host-unknown log ip from any to any
33000 pipe tablearg ip from table(126) to table(127)
33001 skipto 33010 ip from not table(2) to any
33002 pipe tablearg ip from any to table(20)
33003 deny ip from any to any
33400 pipe tablearg ip from any to table(10) dst-ip 255.255.255.255
65535 deny ip from any to any
Ман не просветлил, гугл, опеннет тоже ясности не дали. Грустный В общем, пните в нужную сторону - я с пайпами сталкиваюсь впервые. Теоретически, все правильно и должно работать, но на практике - что-то не выходит каменный цветок. Грустный
Записан
Septima
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 6


Просмотр профиля
« Ответ #1 : 20 Марта 2010, 20:29:58 »

В общем, детальный разбор прохождения пакетов по правилам выявил такой глюк: ядро биллинга прописывает следущее правило:
Код:
05400 pipe tablearg ip from table(11) to any
Код:
# ipfw table 11 list
10.5.0.17/32 1008
10.5.0.147/32 1004
при этом есть такие трубы:
Код:
# ipfw pipe list
01004:   1.000 Mbit/s    0 ms   50 sl. 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 udp       10.5.0.147/137        10.5.0.255/137      2      156  0    0   0
00001: unlimited    0 ms   50 sl. 0 queues (1 buckets) droptail
01008:   1.000 Mbit/s    0 ms   50 sl. 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 tcp        10.5.0.17/56457 147.102.222.211/21     332    15936  0    0   0
а на деле получается следующее:
Код:
Mar 20 20:18:20 ipfw: 5400 Pipe 65535 TCP 10.5.0.17:59098 141.41.9.9:21 in via fxp1
Mar 20 20:18:23 ipfw: 5400 Pipe 65535 TCP 10.5.0.17:59098 141.41.9.9:21 in via fxp1
Mar 20 20:18:26 ipfw: 5400 Pipe 65535 TCP 10.5.0.17:59098 141.41.9.9:21 in via fxp1
Mar 20 20:18:29 ipfw: 5400 Pipe 65535 TCP 10.5.0.17:59098 141.41.9.9:21 in via fxp1
Mar 20 20:18:35 ipfw: 5400 Pipe 65535 TCP 10.5.0.17:59098 141.41.9.9:21 in via fxp1
Mar 20 20:18:48 ipfw: 5400 Pipe 65535 TCP 10.5.0.17:59098 141.41.9.9:21 in via fxp1
В итоге шейпера нет в принципе. Грустный Просто удивительно, как эти 332 пакета попали в нужную трубу... В замешательстве
« Последнее редактирование: 20 Марта 2010, 20:36:26 от Septima » Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #2 : 24 Марта 2010, 09:05:13 »

Раньше изучая логи я тоже думал, что пакеты посылаются не в тот пайп, но на самом деле 65535 - это синоним tablearg при записи фаервольного правила. Здесь имеет место просто неправильное отображение в логах
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #3 : 24 Марта 2010, 09:12:27 »

Код:
bash# ipfw add 65500 pipe 65535 ip from "table(0)" to any
ipfw: illegal argument for pipe
bash# ipfw add 65500 pipe 65534 ip from "table(0)" to any
65500 pipe 65534 ip from table(0) to any
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!