Проблема с пайпами

Все вопросы по установке, обновлению и эксплуатации FreeBSD: конфигурация и сопровождение.

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mlevel
мл. сержант
Сообщения: 105
Зарегистрирован: 2009-09-28 15:31:39

Проблема с пайпами

Непрочитанное сообщение mlevel » 2010-01-15 23:28:30

Доброго времени суток.
Проблема в том, что есть пайпи для таблиц, в которих айпишники абонентов (маска разделяет скорость для каждого IP отдельно). Все работает нормально, вот только некоторие абоненти имеют несколько IP, и в даном случае скорость на каждом IP будет создаватся отдельно, а хотелось, что б скорость делилась для всех адресов абонента. Как можно реализовать ету задачу?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

John_Ku
проходил мимо
Сообщения: 4
Зарегистрирован: 2009-03-13 17:41:07

Re: Проблема с пайпами

Непрочитанное сообщение John_Ku » 2010-01-15 23:30:54

В чем проблема? Еще один пайп без маски с явным указание IP или таблица.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Проблема с пайпами

Непрочитанное сообщение terminus » 2010-01-16 0:10:12

Может стоит подумать о использовании tablearg и сделать систему деления по скоростям на основе этого параметра, а не динамически масками у пайпов? Просто, скажем, создать заранее 256 пайпов (по числу IP в диапазоне), потом создать таблицу с IP клиентов и номерами пайпов которые им назначены, и использовать в правилах tablearg для назначения IP в его пайп. Это будет "ручное" решение - тогда несколько IP можно будет назначать в один пайп...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

mlevel
мл. сержант
Сообщения: 105
Зарегистрирован: 2009-09-28 15:31:39

Re: Проблема с пайпами

Непрочитанное сообщение mlevel » 2010-01-16 10:22:35

Пожалуйста приведите пример, не совсем понял етот метод.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Проблема с пайпами

Непрочитанное сообщение terminus » 2010-01-16 13:38:14

В порядке бреда :pardon:

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

ipfw table 1 add 192.168.0.1/32 1
ipfw table 1 add 192.168.0.2/32 3

ipfw table 1 add 192.168.0.3/32 5
ipfw table 1 add 192.168.0.4/32 5

ipfw table 1 add 192.168.0.5/32 7
ipfw table 1 add 192.168.0.6/32 9
ipfw table 1 add 192.168.0.7/32 11
ipfw table 1 add 192.168.0.8/32 13
....

ipfw table 2 add 192.168.0.1/32 2
ipfw table 2 add 192.168.0.2/32 4

ipfw table 2 add 192.168.0.3/32 6
ipfw table 2 add 192.168.0.4/32 6

ipfw table 2 add 192.168.0.5/32 8
ipfw table 2 add 192.168.0.6/32 10
ipfw table 2 add 192.168.0.7/32 12
ipfw table 2 add 192.168.0.8/32 14
....

ipfw pipe 1 config bw 1Mbit/s queue 60 gred 0.002/10/30/0.1
ipfw pipe 2 config bw 1Mbit/s queue 60 gred 0.002/10/30/0.1
ipfw pipe 3 config bw 1Mbit/s queue 60 gred 0.002/10/30/0.1
ipfw pipe 4 config bw 1Mbit/s queue 60 gred 0.002/10/30/0.1
ipfw pipe 5 config bw 1Mbit/s queue 60 gred 0.002/10/30/0.1
ipfw pipe 6 config bw 1Mbit/s queue 60 gred 0.002/10/30/0.1
ipfw pipe 7 config bw 1Mbit/s queue 60 gred 0.002/10/30/0.1
ipfw pipe 8 config bw 1Mbit/s queue 60 gred 0.002/10/30/0.1
...

ipfw add pipe tablearg ip from table(1) to any out
ipfw add pipe tablearg ip any to table(1) in
LOOKUP TABLES
Lookup tables are useful to handle large sparse address sets, typically
from a hundred to several thousands of entries. There may be up to 128
different lookup tables, numbered 0 to 127.

Each entry is represented by an addr[/masklen] and will match all
addresses with base addr (specified as an IP address or a hostname) and
mask width of masklen bits. If masklen is not specified, it defaults to
32. When looking up an IP address in a table, the most specific entry
will match. Associated with each entry is a 32-bit unsigned value, which
can optionally be checked by a rule matching code. When adding an entry,
if value is not specified, it defaults to 0.

An entry can be added to a table (add), removed from a table (delete), a
table can be examined (list) or flushed (flush).

Internally, each table is stored in a Radix tree, the same way as the
routing table (see route(4)).

Lookup tables currently support IPv4 addresses only.

The tablearg feature provides the ability to use a value, looked up in
the table, as the argument for a rule action, action parameter or rule
option. This can significantly reduce number of rules in some configura-
tions. If two tables are used in a rule, the result of the second (des-
tination) is used. The tablearg argument can be used with the following
actions: nat, pipe, queue, divert, tee, netgraph, ngtee, fwd, skipto
action parameters: tag, untag, rule options: limit, tagged.

When used with fwd it is possible to supply table entries with values
that are in the form of IP addresses or hostnames. See the EXAMPLES Sec-
tion for example usage of tables and the tablearg keyword.

When used with the skipto action, the user should be aware that the code
will walk the ruleset up to a rule equal to, or past, the given number,
and should therefore try keep the ruleset compact between the skipto and
the target rules.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

mlevel
мл. сержант
Сообщения: 105
Зарегистрирован: 2009-09-28 15:31:39

Re: Проблема с пайпами

Непрочитанное сообщение mlevel » 2010-01-16 14:56:50

Огромное спасибо. Проблема решена, но теперь думаю попробовать шейпинг схожим способом на ng_car.

Аватара пользователя
agat
мл. сержант
Сообщения: 138
Зарегистрирован: 2009-10-27 1:21:55
Откуда: Солнечная система, планета Земля, Россия
Контактная информация:

Re: Проблема с пайпами

Непрочитанное сообщение agat » 2010-01-16 19:13:24

Объясните пожалуйста поподробнее что означают эти цыфиряки? После маски сети номера пайпов? или это значения tablearg?

ipfw table 1 add 192.168.0.5/32 7
ipfw table 1 add 192.168.0.6/32 9

mlevel
мл. сержант
Сообщения: 105
Зарегистрирован: 2009-09-28 15:31:39

Re: Проблема с пайпами

Непрочитанное сообщение mlevel » 2010-01-16 19:27:51

Ето и есть tablearg, в даном примере ето номер пайпа....
Вот только все равно пайпи создаються на каждого пользователя отдельно....а у меня пайпи на целую таблиц с маской....

mlevel
мл. сержант
Сообщения: 105
Зарегистрирован: 2009-09-28 15:31:39

Re: Проблема с пайпами

Непрочитанное сообщение mlevel » 2010-01-17 2:14:21

Сейчас работает так:

Пайпи на таблицу:

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

/sbin/ipfw pipe 501 config bw 1Mbit\s mask dst-ip 0XFFFFFFFF
/sbin/ipfw pipe 502 config bw 1Mbit\s mask src-ip 0XFFFFFFFF
/sbin/ipfw add 751 pipe 501 ip from any to table(10) out xmit em0
/sbin/ipfw add 752 pipe 502 ip from table(10) to any in recv em0
Добавление в таблицу:

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

/sbin/ipfw table 10 add 10.100.11.1
/sbin/ipfw table 10 add 10.100.11.2
/sbin/ipfw table 10 add 10.100.0.1
/sbin/ipfw table 10 add 10.100.0.2
Но если пользователь имеет два айпишника 10.100.11.1 и 10.100.11.2, то скорость на них по отдельности будет 1 Мбит, а надо шейпить их вместе....чтоби скорости на 10.100.11.1 и 10.100.11.2 била 1 Мбит.
Без создания отдельних пайпов никак?
Может другие шейпери умеют так делать с минимальними нагрузками?
И еще, вариант с tablearg сильно грузить систему при ~3000 пользователях?

Аватара пользователя
agat
мл. сержант
Сообщения: 138
Зарегистрирован: 2009-10-27 1:21:55
Откуда: Солнечная система, планета Земля, Россия
Контактная информация:

Re: Проблема с пайпами

Непрочитанное сообщение agat » 2010-01-17 10:55:41

Как вариант, сделать таблицу с 512 и добавлять в нее прользоватлй у которых 2 IP
Еще вариант, Зачем пользователям 2 IP? -> Ставьте роутер и сидите толпой(такая проблма сейчас на работе, стараемся решить пока так)
Заморачиватся с балансировкой между 2-3-5 локальными IP? и потерять читабельность фаера и проиграть в производительности фаера.
Потом же сам черт ногу сломит в очередях


По обрезанию скорости, капните в сторону RED или GRED комфортней скорость подрезается

mlevel
мл. сержант
Сообщения: 105
Зарегистрирован: 2009-09-28 15:31:39

Re: Проблема с пайпами

Непрочитанное сообщение mlevel » 2010-04-20 21:52:27

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