Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-06 Пенетрантность rusty.noel
 rrd tool как раз и ведет статистику, а графики рисует по требованию.
 Основная идея - снимать статистику удобнее именно tc (htb) - наименее 
 затратный и наиболее точный способ (так как это не грузит процессор вы
 можете ее снимать как угодно часто).

 tc -s -d qdisc show dev eth0 

Добрый день

Можно поподробнее про рисование графиков ?
спасибо

-- 
Best regards,
 rusty.noelmailto:[EMAIL PROTECTED]



Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-05 Пенетрантность Покотиленко Костик
В Вто, 05/02/2008 в 03:41 +0300, Mikhail A Antonov пишет:
 ,--[Stanislav V. Vlasov [EMAIL PROTECTED] 04/02/2008 14:45 (GMT +3)
 |  On Mon, Feb 04, 2008 at 12:46:27PM +0200, Dmitriy Sirant wrote:
 |   Система простая. В биллинге хранится информация свитч - порт - мак-адрес
 |   - клиент. DHCP выдает статический серый IP согласно mac. Крутится
 |   софтинка, которая проверяет остаток денег и если он ниже определенного
 |   уровня посылает на свитч snmp команду port shutdown.
 |
 |  А как насчёт разрешить заблокированному посмотреть статистику и только
 |  статистику?
 |
 |  --
 |  Stanislav
 `-
 А никак. Это минус таких систем.

ГГ

-- 
Покотиленко Костик [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-04 Пенетрантность Mikhail A Antonov
,--[Покотиленко Костик [EMAIL PROTECTED] 04/02/2008 12:06 (GMT +3)
|  В Птн, 01/02/2008 в 19:28 +0300, Mikhail A Antonov пишет:
|   On 1 февраля 2008, Покотиленко Костик wrote:
| Перечислите наиболее удобные для Вас способы авторизации в домашней
| сети.
|  
|   Привязка port+MAC на свитче + привязка MAC+IP на роутере.
|   На худой конец pppoe или openvpn.
|
|  Домашние сети разные бывают, однако. В небольших сетях умные свичи нет
|  смысла ставить. Так же в таких сетях некоторые провайдеры (как например
|  мой клиент) одним из преимуществ считают возможность клиентов видеть
|  друг друга напрямую. В этом случае никакой PtP не подойдёт.
|
|  Так что, port+MAC - нельзя назвать универсальным решением для всех
|  сетей, а без него MAC+IP и даром не надо. И вообще привязка к MAC - это
|  гомор ещё тот.
`-
Вот я бы не стал ставить себе ничего левого что просит провайдер.
А видеть напрямую в случае с pptp обходится прописыванием статических
маршрутов до локальных сегментов. Через pptp ходит только инет.
Я знаю несколько сетей где так сделано.
По поводу умных свитчей - пожалуй их можно не ставить разве что только там,
где нет необходимости контроля пользователей - например для себя дома или на 
работе, где в случае чего, сотрудник получит административное взыскание за 
попытки делать то, чего ему делать не следует.
Не так дорого эти свитчи уже стоят, чтобы от них отказывается. ИМХО.

P.S.: Я подписан на рассылку и отвечать в личку нет необходимости.

-- 
Best regards,
 Mikhail
Bart-mdv- @ SolarNet
IRC: irc.solarnet.ru
WWW: http://www.solarnet.ru/

--
Чем поиграешь, тем и зашибешься.
-- Русская пословица


signature.asc
Description: This is a digitally signed message part.


Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-04 Пенетрантность Покотиленко Костик
В Пнд, 04/02/2008 в 12:26 +0300, Mikhail A Antonov пишет:
 ,--[Покотиленко Костик [EMAIL PROTECTED] 04/02/2008 12:06 (GMT +3)
 |  В Птн, 01/02/2008 в 19:28 +0300, Mikhail A Antonov пишет:
 |   On 1 февраля 2008, Покотиленко Костик wrote:
 | Перечислите наиболее удобные для Вас способы авторизации в домашней
 | сети.
 |  
 |   Привязка port+MAC на свитче + привязка MAC+IP на роутере.
 |   На худой конец pppoe или openvpn.
 |
 |  Домашние сети разные бывают, однако. В небольших сетях умные свичи нет
 |  смысла ставить. Так же в таких сетях некоторые провайдеры (как например
 |  мой клиент) одним из преимуществ считают возможность клиентов видеть
 |  друг друга напрямую. В этом случае никакой PtP не подойдёт.
 |
 |  Так что, port+MAC - нельзя назвать универсальным решением для всех
 |  сетей, а без него MAC+IP и даром не надо. И вообще привязка к MAC - это
 |  гомор ещё тот.
 `-
 Вот я бы не стал ставить себе ничего левого что просит провайдер.
 А видеть напрямую в случае с pptp обходится прописыванием статических
 маршрутов до локальных сегментов. Через pptp ходит только инет.
 Я знаю несколько сетей где так сделано.
 По поводу умных свитчей - пожалуй их можно не ставить разве что только там,
 где нет необходимости контроля пользователей - например для себя дома или на 
 работе, где в случае чего, сотрудник получит административное взыскание за 
 попытки делать то, чего ему делать не следует.
 Не так дорого эти свитчи уже стоят, чтобы от них отказывается. ИМХО.

/me считает, что каждый человек, в следствие своего развития, перестаёт
заморачиваться на простые/дешёвые решения. Однако потребность в них
всегда была и будет. Я считаю Ваш вариант более правильным и
технологичным, но в моём конктерном случае не оправдано дорогим во
внедрении и обслуживании.

 P.S.: Я подписан на рассылку и отвечать в личку нет необходимости.

Начните с себя. Я то нажал replay, и адрес рассылки скопировал, а вот
вставить забыл :)

-- 
Покотиленко Костик [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-04 Пенетрантность Покотиленко Костик
В Пнд, 04/02/2008 в 12:46 +0200, Dmitriy Sirant пишет:
  А вот интересно как это? Выдаем IP с маской /32 или/30 ?
  Буду благодарен, если узнаешь подробнее.
 
 Все оказалось опять на уровне костылей... Я почему-то думал, что там 
 используются новые стандарты какие-то из RFC касательно DHCP.
 
 Система простая. В биллинге хранится информация свитч - порт - мак-адрес 
 - клиент. DHCP выдает статический серый IP согласно mac. Крутится 
 софтинка, которая проверяет остаток денег и если он ниже определенного 
 уровня посылает на свитч snmp команду port shutdown.
 
 До этого все терминировалось в PPPoE на 7206 NPE2, но не тянуло больше 
 3к клиентов. Как по мне, все это усугубляется тем, что внутренний 
 траффик бесплатен (и что самое плохое незашейплен) и внутри сети народ 
 делает что хочет. Естественно это разрулено по VLAN, но всеравно все 
 открыто (всмысле клиент из одного VLAN видет клиента из другого VLAN и 
 траффик бесплатен).

А какой тогда смысл в VLAN'ах?

-- 
Покотиленко Костик [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-04 Пенетрантность Stanislav V. Vlasov
On Mon, Feb 04, 2008 at 12:46:27PM +0200, Dmitriy Sirant wrote:
 
 Система простая. В биллинге хранится информация свитч - порт - мак-адрес 
 - клиент. DHCP выдает статический серый IP согласно mac. Крутится 
 софтинка, которая проверяет остаток денег и если он ниже определенного 
 уровня посылает на свитч snmp команду port shutdown.

А как насчёт разрешить заблокированному посмотреть статистику и только
статистику?

-- 
Stanislav


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-04 Пенетрантность Mikhail A Antonov
,--[Stanislav V. Vlasov [EMAIL PROTECTED] 04/02/2008 14:45 (GMT +3)
|  On Mon, Feb 04, 2008 at 12:46:27PM +0200, Dmitriy Sirant wrote:
|   Система простая. В биллинге хранится информация свитч - порт - мак-адрес
|   - клиент. DHCP выдает статический серый IP согласно mac. Крутится
|   софтинка, которая проверяет остаток денег и если он ниже определенного
|   уровня посылает на свитч snmp команду port shutdown.
|
|  А как насчёт разрешить заблокированному посмотреть статистику и только
|  статистику?
|
|  --
|  Stanislav
`-
А никак. Это минус таких систем.

-- 
Best regards,
 Mikhail
Bart-mdv- @ SolarNet
IRC: irc.solarnet.ru
WWW: http://www.solarnet.ru/

--
Медовый месяц заканчивается свадьбой.
-- Евгений Кащеев


signature.asc
Description: This is a digitally signed message part.


Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-03 Пенетрантность Mikhail A Antonov
On 3 февраля 2008, Maxim Tyurin wrote:
  В тех домосетях что я видел использовалось
  OpenVPN/pptp/pppoe

  Последнее уже вроде никто не использует.
Использует. А вот от pptp отказываются.
Сети, где есть openvpn я вообще не видел.

-- 
Best regards,
 Mikhail
Bart-mdv- @ SolarNet
IRC: irc.solarnet.ru
WWW: http://www.solarnet.ru/

--
Не все то солнышко, что встает


signature.asc
Description: This is a digitally signed message part.


Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-03 Пенетрантность Mikhail A Antonov
On 4 февраля 2008, Dmitriy Sirant wrote:
  Mikhail A Antonov пишет:
   On 3 февраля 2008, Maxim Tyurin wrote:
В тех домосетях что я видел использовалось
OpenVPN/pptp/pppoe
  
Последнее уже вроде никто не использует.
  
   Использует. А вот от pptp отказываются.
   Сети, где есть openvpn я вообще не видел.

  Кстати, тоже считаю что в домашних сетях pppoe более приемлем, т.к. нет
  нужды в поднятии маршрутизации на серых сетях - как следствие весь
  траффик идет через наш терминирующий сервер (ну кроме пользователей
  предела одного сегмента которые подключены в свитч и то если смогут
  договорится и поднять серые IP сами).
Рекомендуем своим убирать галочку на TCP/IP для физического подключения
А лучше вообще все галочки.
Таким образом никаких серых IP.
А если кто-то и включил ее - ну и нам-то что.

  Хотя если использовать layer3 свитчи + dhcp от cisco - то там можно
  обойтись и без pppoe, там вроде сам dhcp отключает пользователей,
  которым нельзя работать. Хотя точно как это реализовано незнаю, но у нас
  одну сетку на такое перевели, если будет интересно могу точнее узнать.
А вот интересно как это? Выдаем IP с маской /32 или/30 ?
Буду благодарен, если узнаешь подробнее.
Можно в личку, если еще проявивших интерес не появится.
Спасибо.

-- 
Best regards,
 Mikhail
Bart-mdv- @ SolarNet
IRC: irc.solarnet.ru
WWW: http://www.solarnet.ru/

--
ЗАКОН ЛИБЕРМАНА
 Врут все, но это не имеет значения, потому что никто не слушает.


signature.asc
Description: This is a digitally signed message part.


Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-03 Пенетрантность Mikhail A Antonov
On 4 февраля 2008, Stanislav Kruchinin wrote:
  Немаршрутизируемый протокол PPPoE приемлем только для абонентских
  окончаний DSL. В сетях с ним возникают проблемы, которые проявляются по
  мере роста. Большую сеть в любом случае придется разбивать на VLANы и
  маршрутизировать, чтобы урезать широковещательный трафик. И что тогда, в
  каждом сегменте устанавливать по серверу?
Угу, на VLAN-ы разбили, на один сервер взвалили несколько VLAN-ов и все 
довольны.

-- 
Best regards,
 Mikhail
Bart-mdv- @ SolarNet
IRC: irc.solarnet.ru
WWW: http://www.solarnet.ru/

--
Красноречие - искусство убеждать глупцов, что белое есть белое.
-- Амброз Бирс


signature.asc
Description: This is a digitally signed message part.


Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-03 Пенетрантность Mikhail A Antonov
On 4 февраля 2008, Stanislav Kruchinin wrote:
  Mikhail A Antonov wrote:
   Угу, на VLAN-ы разбили, на один сервер взвалили несколько VLAN-ов и все
   довольны.

  Один сервер будет и вланы маршрутизировать и терминировать PPPoE?
  Интересно, что это должен быть за сервер. Внутрисетевой трафик от
  нескольких тысяч клиентов, создающих пакетрейты порядка 1 mpps потянут
  только маршрутизирующие коммутаторы.
На несколько тысяч клиентов использовать _любой_ VPN - гадость. ИМХО.
В таких ситуациях правильнее использовать коммутаторы, умеющие привязку 
MAC+Port и соответственно маршрутизатор, умеющий MAC+IP.
И всеравно разбивать сеть на VLAN-ы.

-- 
Best regards,
 Mikhail
Bart-mdv- @ SolarNet
IRC: irc.solarnet.ru
WWW: http://www.solarnet.ru/

--
Лицо - зеркало души.
-- латинская пословица


signature.asc
Description: This is a digitally signed message part.


Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-01 Пенетрантность Иван Лох
On Fri, Feb 01, 2008 at 11:56:50AM +0200, Покотиленко Костик wrote:
 Для авторизации используется биллинг со встроенной функцией авторизации
 + у клиентов в трее висит клиент-авторизатор.

А если у клиента нет трея?



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-01 Пенетрантность Покотиленко Костик
В Чтв, 31/01/2008 в 13:14 -0500, Nicholas пишет:
 Покотиленко Костик wrote:
  - Добавляем только ещё один HTB класс со скоростью, например 1kbit/s -
  это для приземления превышения скорости.
 
 Логичнее дать каждому пользователю соразмерную минимально 
 гарантированную (rate) и максимальную (ceil) ширину канала.
 (rate 64kbps ceil 128kbps, как вариант)

Так сложнее получается. Чем мне не нравится править классы HTB, так это
постоянным пересчётом a1=a11+a12+a13... Конечно, понятно, что это один
раз надо сделать, но, опять же, придётся забить кучу классов, большая
часть из которых будет простаивать, а следовательно, придётся ещё думать
как не используемую ширину канала одалживать классу обычных
пользователей, например.

К тому же человеку заводящему клиентов в биллинг нужно будет постоянно
помнить кому какие IP давать. А так он назначил тариф 128+ или 256+ и
забыл.

Хотя, конечно, ваш вариант - тоже вариант.

  Вопрос: есть ли дисциплина позволяющая ограничивать максимальную
  скорость до указанного значения для каждого IP отдельно,
 
 Возможно стоить выдавать анлимитчикам ip из определенной подсети и 
 заранее сделать правила  для всех (каждого) ip этой подсети.
 (клас, дисциплина и фильтры входящий/исходящий - по 4 правила)
 
 Процесс можно автоматизировать, примерно, так:
 
 echo tc qdisc add dev eth0 root handle 1: htb default  tc.conf
 
 for i in `seq 1 254`; do echo tc class add dev eth0 parent 1:  classid 
 1:$i htb rate 64kbps ceil 128kbps burst 150k  tc.conf; done;
 
 for i in `seq 1 254`; do echo tc qdisc add dev eth0 parent 1:$i handle 
 $i: sfq perturb 10  tc.conf; done;
 
 for i in `seq 1 254`; do echo tc filter add dev eth0 parent 1: protocol 
 ip prio 1 u32 match ip src xx.xx.xx.$i flowid 1:$i  tc.conf; done;
 
 for i in `seq 1 254`; do echo tc filter add dev eth0 parent 1: protocol 
 ip prio 1 u32 match ip dst xx.xx.xx.$i flowid 1:$i  tc.conf; done;
 
 
 Если вы будете использовать openvpn для авторизации, то eth0 можно 
 заменить на tap0
 
 Кроме того, если вы используете дисциплину htb, удобно с ее подружить с 
 rrd и смотреть графики нагрузки по ip.

Для авторизации используется биллинг со встроенной функцией авторизации
+ у клиентов в трее висит клиент-авторизатор.

Графики по каждому клиенту рисовать часто - это сильно ресурсоёмко. А не
часто смысла нет, так как эту статистику биллинг ведёт.

Спасибо за то что поделились опытом.

-- 
Покотиленко Костик [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-01 Пенетрантность Покотиленко Костик
В Птн, 01/02/2008 в 13:58 +0300, Иван Лох пишет:
 On Fri, Feb 01, 2008 at 11:56:50AM +0200, Покотиленко Костик wrote:
  Для авторизации используется биллинг со встроенной функцией авторизации
  + у клиентов в трее висит клиент-авторизатор.
 
 А если у клиента нет трея?

Если Вы про Linux то есть консольный perl-авторизатор. Также, если я не
ошибаюсь, есть графический QT-авторизатор.

-- 
Покотиленко Костик [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-01 Пенетрантность Иван Лох
On Fri, Feb 01, 2008 at 01:06:14PM +0200, Покотиленко Костик wrote:
 В Птн, 01/02/2008 в 13:58 +0300, Иван Лох пишет:
  А если у клиента нет трея?
 
 Если Вы про Linux то есть консольный perl-авторизатор. Также, если я не
 ошибаюсь, есть графический QT-авторизатор.

Почему про линукс? Может про Hurd... Вот скажите честно, Вы поставите
на свой компьютер какую-то мутную программу провайдера? Да еще, может быть,
и под root? Потратите два дня на аудит перлового скрипта? Порекомендуете
кому-нибудь такого стремного провайдера?


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-01 Пенетрантность Покотиленко Костик
В Птн, 01/02/2008 в 14:43 +0300, Иван Лох пишет:
 On Fri, Feb 01, 2008 at 01:06:14PM +0200, Покотиленко Костик wrote:
  В Птн, 01/02/2008 в 13:58 +0300, Иван Лох пишет:
   А если у клиента нет трея?
  
  Если Вы про Linux то есть консольный perl-авторизатор. Также, если я не
  ошибаюсь, есть графический QT-авторизатор.
 
 Почему про линукс? Может про Hurd... Вот скажите честно, Вы поставите
 на свой компьютер какую-то мутную программу провайдера? Да еще, может быть,
 и под root? Потратите два дня на аудит перлового скрипта? Порекомендуете
 кому-нибудь такого стремного провайдера?

Рута не надо. Прога работает по UDP исходящий и входящий порты
одинаковые 7723. Я объяснюсь, я не рекламирую это ПО, я говорю я
удобству такой конструкции. А если говорить про такого рода ПО, мне
больше нравится другая реализация, но мой заказчик выбрал эту, у него на
это есть причины.

Вы с домашними сетями сталкивались? Знаете специфику?

По поводу мутности, Вы каждый раз делаете аудит программы, когда
устанавливаете Клиент-Бант клиенту? Все патчи, которые используете,
изучили?

-- 
Покотиленко Костик [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-01 Пенетрантность Иван Лох
On Fri, Feb 01, 2008 at 01:57:24PM +0200, Покотиленко Костик wrote:
 В Птн, 01/02/2008 в 14:43 +0300, Иван Лох пишет:
  On Fri, Feb 01, 2008 at 01:06:14PM +0200, Покотиленко Костик wrote:
   В Птн, 01/02/2008 в 13:58 +0300, Иван Лох пишет:
А если у клиента нет трея?
   Если Вы про Linux то есть консольный perl-авторизатор. Также, если я не
   ошибаюсь, есть графический QT-авторизатор.
  Почему про линукс? Может про Hurd... Вот скажите честно, Вы поставите
  на свой компьютер какую-то мутную программу провайдера? Да еще, может быть,
  и под root? Потратите два дня на аудит перлового скрипта? Порекомендуете
  кому-нибудь такого стремного провайдера?
 Рута не надо. Прога работает по UDP исходящий и входящий порты
 одинаковые 7723.

Это из серии Кручу-верчу-обмануть-хочу. Под каким пользователем она
запускается?

 Я объяснюсь, я не рекламирую это ПО, я говорю я
 удобству такой конструкции.

Удобству для кого? Для потребителя услуг, определенно, нет.
 
 По поводу мутности, Вы каждый раз делаете аудит программы, когда
 устанавливаете Клиент-Бант клиенту? Все патчи, которые используете,
 изучили?

1) Я не устанавливаю Клиент-Банк даже себе ;-}
2) Я, в достаточной степени, доверяю разработчикам Debian и его инфраструктуре.
3) Есть несколько крупных корпораций чье программное обеспечение я, с
некоторыми мерами предосторожности, считаю возможным использовать, в-принципе.
4) Я не параноик. ;-}



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-01 Пенетрантность Покотиленко Костик
В Птн, 01/02/2008 в 16:25 +0300, Иван Лох пишет:
 On Fri, Feb 01, 2008 at 01:57:24PM +0200, Покотиленко Костик wrote:
  В Птн, 01/02/2008 в 14:43 +0300, Иван Лох пишет:
   On Fri, Feb 01, 2008 at 01:06:14PM +0200, Покотиленко Костик wrote:
В Птн, 01/02/2008 в 13:58 +0300, Иван Лох пишет:
 А если у клиента нет трея?
Если Вы про Linux то есть консольный perl-авторизатор. Также, если я не
ошибаюсь, есть графический QT-авторизатор.
   Почему про линукс? Может про Hurd... Вот скажите честно, Вы поставите
   на свой компьютер какую-то мутную программу провайдера? Да еще, может 
   быть,
   и под root? Потратите два дня на аудит перлового скрипта? Порекомендуете
   кому-нибудь такого стремного провайдера?
  Рута не надо. Прога работает по UDP исходящий и входящий порты
  одинаковые 7723.
 
 Это из серии Кручу-верчу-обмануть-хочу. Под каким пользователем она
 запускается?

Хоть из-под `whoami`.

  Я объяснюсь, я не рекламирую это ПО, я говорю я
  удобству такой конструкции.
 
 Удобству для кого? Для потребителя услуг, определенно, нет.

Перечислите наиболее удобные для Вас способы авторизации в домашней
сети. 

-- 
Покотиленко Костик [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [SOLVED] Ограничение максимальной скорости по IP

2008-02-01 Пенетрантность Покотиленко Костик
В Птн, 01/02/2008 в 09:37 -0500, Nicholas пишет:
 Покотиленко Костик wrote:
  Так сложнее получается. Чем мне не нравится править классы HTB, так это
  постоянным пересчётом a1=a11+a12+a13... Конечно, понятно, что это один
  раз надо сделать, но,
 
 каждая команда делает 256 правил автоматом (`seq 1 254` - для примера )
 
 for i in `seq 1 254`; do echo tc class add dev eth0 parent 1:  classid 
 1:$i htb rate 64kbps ceil 128kbps burst 150k  tc.conf; done;
 
   опять же, придётся забить кучу классов, большая
  часть из которых будет простаивать, а следовательно, придётся ещё думать
  как не используемую ширину канала одалживать
 
 это делает htb автоматом - вы можете указать каждому клиенту свою 
 минимальную и максимальную ширину, можно максимальную не указывать 
 (ceil) - htb разделит дополнительную скорость пропорционально.
 Если суммарная выделенная клиентам ширина канала, наоборот, больше 
 реальной - htb тоже все пересчитает пропорционально  (при нагрузке, а 
 пока клиентов мало всем даст столько сколько в правиле для клиента 
 прописанно).
 
 Вы можете делать деревья - root сделать 1:, первую ветвь 1:888 для 
 обычных поьзователей и вторую для анлимит 1:777
 
 http://www.opennet.ru/docs/RUS/LARTC/x1075.html#THEQDISCFAMILYROOTSHANDLESSIBLINGSANDPARENTS
  
 
 tc qdisc add dev eth0 root handle 1: htb default  1 
 
 tc class add dev eth0 parent 1: classid 1: htb rate 2mbit burst 15k 
 
 tc class add dev eth0 parent 1: classid 1:888 htb rate 1mbit ceil 
 1mbit burst 15k
 tc class add dev eth0 parent 1: classid 1:777 htb rate 1mbit ceil 
 1mbit burst 15k
 
 
 и определять общую скорость для всех пользователей группы + для каждого 
 пользователя в группе.
 
 tc class add dev eth0 parent 1:777 classid 1:71 htb rate 128kbit ceil 
 256kbit burst 15k
 ...
 tc class add dev eth0 parent 1:777 classid 1:7254 htb rate 128kbit ceil 
 256kbit burst 15k и т.д.
 
 в этом примере комада для создания правила будет тоже с семеркой перед 
 номером хоста (1-254)
 for i in `seq 1 254`; do echo tc class add dev eth0 parent 1:777 
 classid 1:7$i htb rate 128kbps ceil 256kbps burst 150k  tc.conf; done;
 
 надо сказать что 4 правила для каждого из 255 ip для двух подситей 
 (4*255*2=2040) совсем не грузят htb.
 
 С уважением, Николай.
 
 PS
 
 rrd tool как раз и ведет статистику, а графики рисует по требованию.
 Основная идея - снимать статистику удобнее именно tc (htb) - наименее 
 затратный и наиболее точный способ (так как это не грузит процессор вы 
 можете ее снимать как угодно часто).
 
 tc -s -d qdisc show dev eth0 

Принцип ясен, спасибо за пример!

-- 
Покотиленко Костик [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [SOLVED] Ограничение максимальной скорости по IP

2008-01-31 Пенетрантность Покотиленко Костик
В Срд, 16/01/2008 в 14:49 +0200, Покотиленко Костик пишет:
 Добрый день,
 
 есть роутер на котором настроено разделение канала по группам клиентов
 (HTB). Сейчас в одной группе нужно сделать подгруппу для клиентов и
 безлимитными пакетами. Для этого им нужно ограничить максимальную
 скорость.
 

Разобрался, сам себе и отвечу. Может кому пригодится.

Самый простой для моей ситуации оказался такой способ:

- Оставляем HTB классы разделения канала как есть.
- Добавляем только ещё один HTB класс со скоростью, например 1kbit/s -
это для приземления превышения скорости.
- Фильтрам к этим классам ставим приоритет повыше, например 100.
- На каждого безлимитчика добавляем 2 фильтра, один с приоритетом,
например, 10, который срабатывает только для скоростей меньших, чем
интересуемая скорость, второй с приоритетом 11 для остального трафика
(трафик превышающий лимит скорости).

Вот как выглядят у меня фильтры по одному интерфейсу:

# tc filter show dev eth3
filter parent 3: protocol ip pref 10 fw
filter parent 3: protocol ip pref 10 fw handle 0xa14 classid 3:2200
police 0x16 rate 128000bit burst 10Kb mtu 2Kb action continue
ref 1 bind 1
filter parent 3: protocol ip pref 11 fw
filter parent 3: protocol ip pref 11 fw handle 0xa14 classid 3:2300
filter parent 3: protocol ip pref 100 fw
filter parent 3: protocol ip pref 100 fw handle 0x7d64 classid 3:2100
filter parent 3: protocol ip pref 100 fw handle 0x799a classid 3:1130
filter parent 3: protocol ip pref 100 fw handle 0x7990 classid 3:1120
filter parent 3: protocol ip pref 100 fw handle 0x7986 classid 3:1110
filter parent 3: protocol ip pref 100 fw handle 0x79b8 classid 3:1160
filter parent 3: protocol ip pref 100 fw handle 0x79ae classid 3:1150
filter parent 3: protocol ip pref 100 fw handle 0x79a4 classid 3:1140
filter parent 3: protocol ip pref 100 fw handle 0x79d6 classid 3:1190
filter parent 3: protocol ip pref 100 fw handle 0x79cc classid 3:1180
filter parent 3: protocol ip pref 100 fw handle 0x7dc8 classid 3:2200
filter parent 3: protocol ip pref 100 fw handle 0x79c2 classid 3:1170
filter parent 3: protocol ip pref 100 fw handle 0x79e0 classid 3:1200
filter parent 3: protocol ip pref 100 fw handle 0x7e2c classid 3:2300
filter parent 3: protocol ip pref 100 fw handle 0x7e90 classid 3:2400
#

С помощью iptables пакетам первого безлимитчика ставится марка 0xa14.
Основной класс клиентов 3:2200, им классифицируются и пакеты
безлимитчиков до лимита скорости 128kbit (фильтр с приоритетом 10).
Когда начинается перебор фильтр с приоритетом 10 перестаёт срабатывать
и, поскольку в нём указано continue, обработка фильтров продолжается.
Пакеты трафика выше лимита скорости теперь попадают под фильтр с
приоритетом 11, который классифицирует их 3:2300, классом приземления.

Стоит отметить, что для фильтров я сначала использовал u32
классификатор. Потом полностью от него отказался вследствие его
ограничений и перешёл на iptables -j MARK + tc filter fw. На интерфейсе
смотрящем в Интернет настроен SNAT, и u32 видит адреса после SNAT, т.е.
он видит всегда один адрес отправителя :/

В моём случае, в системе работает биллинг со встроенной функцией
авторизатора, который при авторизации вызывает скрипт разрешения доступа
пользователю в Интернет. Скрипту также передаётся помер пакета, на
который подключен клиент. Скрипт добавляет разрешающие правила в
iptables при подключении, и удаляет их при отключении (по IP). В скрипте
я встроил проверку на принадлежность клиента к безлимитным пакетам, и в
этом случае вызываю скрипт установки ограничений, который приведу для
примера.

Скрипту передаются $IP, $IN_RATE, $OUT_RATE. IP из сети с маской /16 и
начиная с a.b.100.0:

#!/bin/sh

LOGFILE=/var/log/iptables/iptables.log

CALL_FILE=on_unlim_up

IN_DEV=eth0
IN_PARENT_CLASS=1:0
IN_BASE_CLASS=1:3220
IN_LAND_CLASS=1:3230

OUT_DEV=eth3
OUT_PARENT_CLASS=3:0
OUT_BASE_CLASS=3:2200
OUT_LAND_CLASS=3:2300

IP3=`echo $IP | cut -d. -f3`
IP4=`echo $IP | cut -d. -f4`
HANDLE=`printf %.3X $[($IP3-100)*256+$IP4]`
HANDLE10=$[($IP3-100)*256+$IP4]
ret=0

  echo -n `date`: Insetring tc filter: $CALL_FILE: $IP \(ID: $HANDLE\)
at $IN_RATE/$OUT_RATE  $LOGFILE

  # Inseting downstream filtering shaper rules
  iptables -t mangle -I shapIN 1 -d $IP -j RETURN
  iptables -t mangle -I shapIN 1 -d $IP -j MARK --set-mark $HANDLE10

  tc filter add dev $IN_DEV parent $IN_PARENT_CLASS protocol ip prio 10
handle $HANDLE10 fw police rate $IN_RATE buffer 10k continue classid
$IN_BASE_CLASS; ret=$[$ret+$?]
  tc filter add dev $IN_DEV parent $IN_PARENT_CLASS protocol ip prio 11
handle $HANDLE10 fw classid $IN_LAND_CLASS; ret=$[$ret+$?]

  # Inseting upstream filtering shaper rules
  iptables -t mangle -I shapOUT 1 -s $IP -j RETURN
  iptables -t mangle -I shapOUT 1 -s $IP -j MARK --set-mark $HANDLE10

  tc filter add dev $OUT_DEV parent $OUT_PARENT_CLASS protocol ip prio
10 handle $HANDLE10 fw police rate $OUT_RATE buffer 10k continue classid
$OUT_BASE_CLASS; ret=$[$ret+$?]
  tc filter add dev