Перейти к содержимому
Калькуляторы

success story есть у кого? есть данные по нагрузкам?

Нагрузка от самого lISG стремится к нулю. Можете считать, что нагрузки будут как при простом forwarding + NAT.

 

Success story есть - уже больше года в продакшене.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

success story есть у кого? есть данные по нагрузкам?

http://forum.nag.ru/forum/index.php?showtopic=53156&view=findpost&p=701412

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем привет. Братцы, подскажите, для того чтобы запустить минимальную конфигурацию, наличие radius обязательно?

 

Если исходить из мануала, то да.

 

Rules labeled with "--session-init" parameter is so called

"initialization" rules. When packet hits this rule, ipt_ISG kernel module

tries to detect if this packet is belongs to "approved" session. If

not, ipt_ISG drop packet and send NETLINK message to ISGd.pl. Daemon

contacts RADIUS server to authorize this packet using its src IP address

as User-Name attribute. If RADIUS accepting this request, session turn

its state to "approved", daemon applies bandwidth policy to the session

and starts accounting. Otherwise session remains in "unapproved" state

for approve_retry_interval time (see ipt_ISG module parameters).

 

 

 

А есть ли способ обойтись без радиуса?

 

Может кто подскажет small биллинг для заявязки lisg+freeradius+админка?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А есть ли способ обойтись без радиуса?

Ага. Переписать код ISGd. :)

В общем, проще поднять радиус.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может кто подскажет small биллинг для заявязки lisg+freeradius+админка?

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

Ну или полновесный ставьте, абиллс к примеру.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может кто подскажет small биллинг для заявязки lisg+freeradius+админка?

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

Ну или полновесный ставьте, абиллс к примеру.

abills есть, давно им пользуюсь для pptp.

Но для abills не готов модуль lisg, кто-то пытался прикрутить самописный, но в wiki у асмодеуса тишина по этому поводу, да и когда он его допилит, скорей всего он будет небесплатный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может кто подскажет small биллинг для заявязки lisg+freeradius+админка?

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

Ну или полновесный ставьте, абиллс к примеру.

abills есть, давно им пользуюсь для pptp.

Но для abills не готов модуль lisg, кто-то пытался прикрутить самописный, но в wiki у асмодеуса тишина по этому поводу, да и когда он его допилит, скорей всего он будет небесплатный.

У меня работает самописный уже больше года. Что я делаю не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня работает самописный уже больше года. Что я делаю не так?

Все так. Поделится кодом можешь? Буду примного благодарен.

 

Смотрел твою тему тут

Пытался тянуть тут, не тянется.

 

p.s. что-то с моими bbcode не то, толи что-то не так делаю, толи от того что новичек на форуме.

Изменено пользователем Shiva

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 Abram, не могу бы ты перезалить abills_lisg.tar.gz? по твоей ссылке он не доступен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Доброе время суток!

Решил поставить 2 ISG сервак, но увы что-то пошло не так, увидел много изменений.

Запустил сессию, но SHAPE атрибут не присвоился, iptables добавил правила на трафик, но увы роутов нет в bgp

 

Linux isg-eman-01.localdomain 2.6.32-279.5.1.el6.x86_64 #1 SMP Tue Aug 14 23:54:45 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

iptables v1.4.7

 

User IP-address NAT IP-address  Port number   Uniq. Identifier Durat.  Octets-in  Octets-out Rate-in    Rate-out   Service name     Flags
10.40.0.2       195.191.82.156  Virtual1      132ADA9AE33A699C 2       68         0          0          0          Undefined        A

 

что сделал не так?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

sfedu,

Да, вижу.

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

 

kamae1ka,

См. readme.

Во-первых, насчет маршрутов: нужна патченная quagga для правильной работы с blackhole маршрутами. Можно взять quagga-kernel-blackhole-add.diff отсюда: http://aur.archlinux.org/packages.php?ID=53139 .

Во-вторых, насчет шейпера: версия из git? Там менялся атрибут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

kamae1ka,

См. readme.

Во-первых, насчет маршрутов: нужна патченная quagga для правильной работы с blackhole маршрутами. Можно взять quagga-kernel-blackhole-add.diff отсюда: http://aur.archlinux.org/packages.php?ID=53139 .

Во-вторых, насчет шейпера: версия из git? Там менялся атрибут.

ну... дело в том что маршрут в blackhole вообще не появляется

патч я давно применил) тоже винил на него,но увы, дело не в нем ='(

Изменено пользователем kamae1ka

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ISGd.pl, где-то 400 строка:

                        if (defined($nat_ipaddr)) {
                           $oev->{'nat_ipaddr'} = ISG::ip2long($nat_ipaddr);
                           if (defined($cfg{static_nat}) && $nat_ipaddr !~ /^192\.168/ && $exp_login ne $nat_ipaddr) {
                               skel_static_nat("add", $exp_login, $nat_ipaddr);
                               bh_route("add", $nat_ipaddr);
                           }
                       }

Маршрут добавляется вместе с правилами iptables.

Если этого не происходит - смотреть bh_route:

sub bh_route {
   my ($act, $real_ip) = @_;

   return if ($act ne "add" && $act ne "del");

   `ip route $act blackhole $real_ip 2>/dev/null`;
}

Оно вызывает ip route add blackhole 1.2.3.4 .

Может, у Вас iproute2 не установлен?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

iproute2 установлен, выяснил что блекхол создается, но уперто ен хочет его отдавать зебра, даже в список не выводит

 

 

[root@isg-eman-01 sbin]# ip route
blackhole 195.191.82.156

[root@isg-eman-01 sbin]# netstat -rn 
195.191.82.156  0.0.0.0         255.255.255.255 UH        0 0          0 *

вывод ip route kernel:

K>* 0.0.0.0/0 via 195.191.82.33, eth1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

kamae1ka,

Значит, с патчем что-то не то. Вы пробовали тот, что я давал? Это не такой, как в ридми.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

сейчас ставлю centos 5.X заодно твой патч применю ;) думаю прокатит фишка

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

поставил 5.X оказалось ядрышко не то.

поставил 6.3 + quagga 99.15 завелось, по непонятным причинам 99.20 не хотела со мной дружить =\

всем спасибо за внимание ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Посидел на досуге и дописал модуль RAWNAT для xtables-extensions, с целью улучшения работы 1-to-1 ната. Теперь можно создать пару правил SNAT/DNAT, а сопоставления IP заносить в отдельные таблицы, хранящиеся в памяти модуля, через специальную userspace-утилиту. Это гораздо удобнее, чем создавать миллион правил для всех подключенных клиентских IP. Пишу здесь, т.к. именно это и делает lisg.

 

Результат - при трафике 2 гигабита и 4-х ядрах самое загруженное ядро - 20%. Можно на десятку теперь переходить. Если кому интересно, могу выложить патч здесь. К lisg нужно будет прикручивать отдельно, т.к. у нас другое решение, но там не должно быть ничего сложного.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Результат - при трафике 2 гигабита и 4-х ядрах самое загруженное ядро - 20%. Можно на десятку теперь переходить. Если кому интересно, могу выложить патч здесь. К lisg нужно будет прикручивать отдельно, т.к. у нас другое решение, но там не должно быть ничего сложного.

Очень интересно попробовать этот патч! Выложите, если есть время и возможность.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уже давно пользуюсь Lisg в продакшне. И все это время не дает покоя одна странность с редиректом клиента на нужный URL, когда он не оплатил.

С обычной связкой TPROXY + squid загрузка рутера взлетает от 20 до 80% на каждое ядро, и это при каких-то жалких 20-30 запросах в секунду. Отключив сквид - сразу обычные 20%. Что важно - вся загрузка только на Software interrupts, user+system+nice съедают меньше 5%. Достаточно даже одного клиента с торрентом, чтобы так подгрузить рутер.

Трафик - до 4Гбит-фулл и чуть больше 1Mpps. NAT не использую (и естественно модули NAT'a в ядре не загружены).

 

Подозреваю следующее - переключения userspace-ядро затирает кеш проца и поэтому обработка пакетов начинает жрать больше CPU.

 

По сему вопрос к коллегам - может кто-то находил ядерный L4-редирект для iptables ? Ну или вообще хоть что-то подобное ?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

arni,

А зачем так сложно, с squid-ом-то?

можно конечно через iptables -j redirect, но это уже требует conntrack, а мне оно перформанс раза в 2 опускает на рутере.

пробовал и tproxy - но там один коннект = один процесс, а это не есть гуд.

Может есть еще какой-то метод? я с удовольствием потестирую :) идеально, если в kernel-mode ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

arni,

Во-первых, боремся с conntrack:

1) Заводим ipset таблицу с неавторизованными адресами и заполняем её из ISGd.pl.

2) в -t mangle делаем ACCEPT на адреса из этой таблицы, следующее правило - -j NOTRACK.

В conntrack попадает только то, что нам нужно, остальное - мимо.

 

Во-вторых, редирект:

1) Запускаем на 127.0.0.1 на каком-нибудь порту nginx, единственное назначение которого - отдавать HTTP Temporary Redirect на внешнюю страницу с авторизацией/порталом/"дай денег" и тд. Таким образом избегаем cache poisoning у клиента - в браузере будет URL страницы-заглушки, а не того, что он просил.

2) В -t nat делаем -j REDIRECT на адреса из этой же таблицы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

arni,

Во-первых, боремся с conntrack:

1) Заводим ipset таблицу с неавторизованными адресами и заполняем её из ISGd.pl.

2) в -t mangle делаем ACCEPT на адреса из этой таблицы, следующее правило - -j NOTRACK.

В conntrack попадает только то, что нам нужно, остальное - мимо.

 

Во-вторых, редирект:

1) Запускаем на 127.0.0.1 на каком-нибудь порту nginx, единственное назначение которого - отдавать HTTP Temporary Redirect на внешнюю страницу с авторизацией/порталом/"дай денег" и тд. Таким образом избегаем cache poisoning у клиента - в браузере будет URL страницы-заглушки, а не того, что он просил.

2) В -t nat делаем -j REDIRECT на адреса из этой же таблицы.

 

Спасибо за совет! Попробую, отпишусь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.