Перейти до

Рекомендованные сообщения

Опубліковано:

логично в принципе....

 

Представь ты выходишь из метро. Если работает 4 двери то ты задерживаешься на 5 секунд при выходе. Если 1 дверь то как минимум на 4*5=20 секунд..... вот и все...

 

Одним словом - Очередь она и в африке очередь :)

Опубліковано:

а как же тогда сделать так, чтобы канал динамически шейпился и небыло такого огромного пинга? может компутеры нужно пускать по отдельным очередям???

 

${fwcmd} pipe 1 config bw 1024Kbit/s queue 5

${fwcmd} pipe 2 config bw 512Kbit/s queue 5

 

${fwcmd} queue 10 config pipe 1 weight 50 mask src-ip 0x000000ff

${fwcmd} queue 20 config pipe 2 weight 50 mask dst-ip 0x000000ff

 

ipfw add queue 10 ip from any to 10.0.0.1 in via rl0

ipfw add queue 20 ip from 10.0.0.1 to any out via rl0

 

 

${fwcmd} queue 30 config pipe 1 weight 50 mask src-ip 0x000000ff

${fwcmd} queue 40 config pipe 2 weight 50 mask dst-ip 0x000000ff

 

ipfw add queue 30 ip from any to 10.0.0.2 in via rl0

ipfw add queue 40 ip from 10.0.0.2 to any out via rl0

Опубліковано:

По правде говоря - мне кажется, что очереди ничего не изменят - трубы-то всего 2. Пинги такими и останутся. Или изменится, но незначительно. Проверить нет возможности. У меня такая же байда. Интересно было бы увидеть решение. Я пока создал отдельную pipe в 2 раза уже реального и всех "провинившихся" перенаправил туда. Помогает, но слабо. Всё равно лаги, хоть и намного меньше.

Опубліковано:

но без шейпера все ок, все работает с отличными пингами. и когда шеплю на каждый комп по 128 Кбит/с просто пайпом, без очередей, то тоже все ок

  • 3 weeks later...
Опубліковано:

хелп :bue: юзеры задрали ложат канал? немогу настроить шейп....

Free bsd 5.4

В ядро добавил:

options IPFIREWALL

options IPFIREWALL_VERBOSE

options IPFIREWALL_FORWARD

options IPDIVERT

options IPFILTER

options IPFILTER_LOG

options DUMMYNET

options QUOTA

options DEVICE_POLLING

options HZ=1000

 

rc.conf

 

defaultrouter="192.168.0.1"

hostname="******"

ifconfig_fxp0="inet 192.168.0.3 netmask 255.255.255.0"

ifconfig_rl0="inet ****** netmask 255.255.255.0"

sshd_enable="YES"

dhcpd_enable="YES" # dhcpd enabled?

dhcpd_flags="-q" # command option(s)

dhcpd_conf="/usr/local/etc/dhcpd.conf" # configuration file

dhcpd_ifaces="fxp0" # ethernet interface

dhcpd_withumask="022" # file creation mask

firewall_enable="YES"

firewall_script="/usr/local/billing/rc.firewall"

natd_enable="YES"

natd_interface="rl0"

gateway_enable="YES"

 

rc.firewall

 

ipfw='/sbin/ipfw -q'

 

${ipfw} -f flush

${ipfw} add divert natd all from any to any via rl0

${ipfw} add allow all from any to any

 

/sbin/ipfw pipe 150 config mask dst-ip 0xffffffff bw 800Bytes/s delay 1

/sbin/ipfw add 150 pipe 150 all from any to 192.168.0.0/24 via fxp0 in

 

покажыте где кривые руки :)=)

Опубліковано:

-Emrise-

Зачем так мучаться - в теме дохрени примеров, посмотри как люди делают.

__________________________________________________________________

Вот, канал 240кбит, поделенный между активными юзерами

 

ipfw add 320 pipe 1 ip from 10.0.0.0/24 to any out

ipfw add 330 pipe 2 ip from any to 10.0.0.0/24 in

ipfw pipe 1 config mask src-ip 0x000000ff bw 240Kbit/s

__________________________________________________________________

А это по идее – трафик по приоритету – машина 10.0.0.1 имеет приоритет перед остальными

 

ipfw pipe 1 config bw 256Kbit/s

ipfw queue 1 config pipe 1 weight 10 mask dst-ip 0xffffffff ;входящий трафик низкого приоритета

ipfw queue 11 config pipe 1 weight 10 mask src-ip 0xfffffff ;исходящий трафик низкого приоритета

ipfw queue 2 config pipe 1 weight 90 mask dst-ip 0xffffffff ;входящий трафик высокого приоритета

ipfw queue 21 config pipe 1 weight 90 mask src-ip 0xffffffff ;исходящий трафик высокого приоритета

ipfw add 350 queue 2 ip from any to 10.0.0.1 via rl0

ipfw add 360 queue 21 ip from 10.0.0.1 to any via rl0

ipfw add 370 queue 1 ip from any to 10.0.0.0/30 via rl0

ipfw add 380 queue 11 ip from 10.0.0.0/30 to any via rl0

__________________________________________________________________

Почитай так же здесь:

 

http://www.opennet.ru/base/net/ipfw_pipe.txt.html

http://cenix.nm.ru/ipfw/prim.html

http://www.nt.com.ua/info/ipfw/ar01s03.shtml#id2815680

http://local.com.ua/forum/index.php?showtopic=5991&st=15

Опубліковано:

необходимо одному человеку просто отрезать кусок не более чем 256К.

нашёл такую вещь.

Ограничение полосы пропускания (Shaping).

1. Определение трубы (канала) # ipfw pipe PIPE_NUMBER config bw BANDWIDTH queue QUEUE_SIZE Замечание: Следует отметить, что pipe использует очередь внутри себя, причем ее параметры можно менять (queue QUEUE_SIZE), но это очередь внутри pipe, она отличается от объекта queue!

2. Классификация трафика # ipfw add IPFW_NUMBER pipe PIPE_NUMBER tcp from IP_ADDR to IP_ADDR

 

значит можно сделать так

ipfw pipe 1 config bw 256 queue QUEUE_SIZE (незнаю что ставить наверно вообще писать не надо, в моём случае.)

ipfw add 30 pipe 1 tcp(можно all я так понимаю) from АДРЕС_Сервера to АДРЕС_ограничиваемого

 

верно ли это?

:o

  • 1 month later...
Опубліковано:

Помогите, будьте добры. Нужно сделать так чтоб канал равномерно распределялся между всеми пользавателями в сети. Написал вот такое правило,

 

ipfw pipe 1 config bw 10Mbit/s queue 10

ipfw queue 1 config pipe 1 weight 50

ipfw add 20 queue 1 ip from any to any

 

Бедет ли работать?

ОС FreeBSD 6.1

Спасибо )

 

ЗЫ

Посоветывали сделать вот так

ipfw add pipe 1 ip from any to any

ipfw pipe 1 config bw 10 Mbit/s queue 100 red 0.002/30/80/0.1

 

Как правильней?

  • 1 year later...
Опубліковано:

Лучше так делить поровну, меньше лагов и задержек (пинги уменьшаются существенно). Пример для канала в 600Кбит/с:

 

ipfw pipe 3 config 600Kbit/s

ipfw pipe 4 config 600Kbit/s

ipfw queue 4 config pipe 3 weight 50 mask src-ip 0xffffffff gred 0.002/10/30/0.1

ipfw queue 5 config pipe 4 weight 75 mask dst-ip 0xffffffff gred 0.002/10/30/0.1

 

А для юзеров правила:

ipfw add 320 queue 4 all from any to 10.0.0.0/24

ipfw add 330 queue 5 all from any to 10.0.0.0/24

 

Только вот я думаю, что если у вас стоит Squid и NAT - хрень получается, потому что в тот момент, когда SQUID отдаёт по запросу данные из кэша, у вас "потолок" в 600Кбит/с и для данных. А это неправильно, потому что внешний канал хоть и высвобождается, но пользователи это никак не почувствуют, потому что вы режеть ВЕСЬ трафик (если только вы не режете какой-то толстый внешний канал). Сейчас думаю как у себя разрулить это.

Этот пример взят с работающего сервера и был проверен мною с двумя машинами, одновременно работающими в сети. Уже не помню откуда стырил решение, но мучался долго. :)

Опубліковано:

С вашего позволения, спрошу в даной теме:

Есть VPN-сервер на основе freeradius и mpd5. Юзерам режется канал с помощью радиус атрибутов mpd-limit. НО созрел недавно вопрос следующего характера - шейпить канал юзерам, в зависимости от времени суток. Каким методом можно это реализовать? В какую сторону копать?

ОС FreeBSD

Опубліковано:
С вашего позволения, спрошу в даной теме:

Есть VPN-сервер на основе freeradius и mpd5. Юзерам режется канал с помощью радиус атрибутов mpd-limit. НО созрел недавно вопрос следующего характера - шейпить канал юзерам, в зависимости от времени суток. Каким методом можно это реализовать? В какую сторону копать?

ОС FreeBSD

crontab + прикручивай какой-то скриптик :)

Опубліковано:
Скрипт не проблема прикрутить. Что скрипт должен делать - вот проблема. Может есть какие соображения?

ну тогда рассказывай, как щас организован шейпер =) будем думать

Опубліковано:

Биллинг в зависимости от тарифного плана пишет в базу радиуса значение mpd-limit, к примеру:

 

mysql> select * from radgroupreply;
| 1 | 64k | mpd-limit | += | in#1=all shape 64000 8000   |    0 |
| 2 | 64k | mpd-limit | += | out#1=all shape 64000 8000  |    0 |

 

При авторизации пользователя радиус передаёт атрибут mpd-limit серверу mpd, который в свою очередь генерирует "пайп на юзера". Как вариант, я вижу, кромсать скрипт, который к примеру в 20.50 пишет в базу радиуса "удвоенный бендвиз" каждого юзера. А в 21.00 заставить mpd с помощью радиус параметров "перерезать" пайпы всем юзерам.

Опубліковано:

проще запихивать юзверов в таблицы в зависимости от тарифного плана

 

ipfw add 10250 pipe 15 ip from any to table(15)
ipfw add 10251 pipe 16 ip from table(15) to any

и просто распихивать ип клиентов в эти таблицы

и потом скриптом по кроны менять значения pipe 15 и pipe 16

Опубліковано:

Благодарю за ответ. Исходя из Ваших слов составил такой набор правил

 

ipfw table 1 add 10.18.1.2

ipfw table 1 add 10.18.1.3

 

ipfw pipe 1000 config bw 512Kbit/s mask src-ip 0xffffffff

 

 

ipfw add 1000 pipe 1000 ip from any to "table(1)"

ipfw add 1001 pipe 1000 ip from "table(1)" to any

 

Соответственно 2 юзерам "нарежется" канал по 512 каждому.

  • 10 months later...
Опубліковано:
Благодарю за ответ. Исходя из Ваших слов составил такой набор правил

 

ipfw table 1 add 10.18.1.2

ipfw table 1 add 10.18.1.3

 

ipfw pipe 1000 config bw 512Kbit/s mask src-ip 0xffffffff

 

 

ipfw add 1000 pipe 1000 ip from any to "table(1)"

ipfw add 1001 pipe 1000 ip from "table(1)" to any

 

Соответственно 2 юзерам "нарежется" канал по 512 каждому.

 

Это точно будет у каждого по 512 если оба подключатся?Я сейчас делаю для каждого 128Кбитного свой пайп.Я так понимаю что я плужу и достаточно одного пайпа в 128Кбит?

И еще сразу подскажите dst-ip это урезка исходящего а src-ip входящего?

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    • Немає користувачів, що переглядають цю сторінку.
×
×
  • Створити нове...