Jump to content
Калькуляторы
Те если 1 IP качает то все 20 может дать, если 2 то по 10Мбит разделится, или по необходимости (1+19 или 2+18), те что бы сеть полисилась...
Как при этом должна происходить аутентификация пользователя? То есть, что должно приходить в User-Name первоначально?

Я полагаю, что USER-NAME должен приходить тот который идет от пользователя(ip address), а вот Radius(БД) должен хранить "новый атрибут"-маску подсети для этого IP(для всех IP в этой сети), что бы ISG знала что полисится не только этот IP но и вся сеть(те после 1-го IP уже создать правило для полисинга всей сети).

Далее если приходит новый IP из этой сети, то все тоже самое, на ISG клиент авторизовался, получил атрибут = маске и пошли резаться уже 2 IP, по уже созданному правилу.

Framed-IP-Netmask

Есть такой атрибут вроде даже...

Share this post


Link to post
Share on other sites
В ридми же написано:
but first you need to reference tree-like structures automatically

created using IPTables::SubnetSkeleton, f.e.:

 

iptables -t nat -I PREROUTING -j stat_nat_dst_skeleton

iptables -t nat -I POSTROUTING -j stat_nat_src_skeleton

Ну а сама цепочка stat_nat_dst_skeleton ,на которую указывает ссылка из примера, должна создаваться автоматически или всё же отдельным скриптом?

Share this post


Link to post
Share on other sites
tree-like structures automatically created using IPTables::SubnetSkeleton

У меня так автоматически и создавалось, мне оставалось только добавить указанные правила, что трафик в эти цепочки пошёл.

Share this post


Link to post
Share on other sites
tree-like structures automatically created using IPTables::SubnetSkeleton
У меня так автоматически и создавалось, мне оставалось только добавить указанные правила, что трафик в эти цепочки пошёл.

Хм, а у меня не создалась.

 

PS. Всё ОК, просто конфиг не тот поправил.

Edited by shaytan

Share this post


Link to post
Share on other sites

allexch, то есть подсчет раздельный (1 сессия - 1 IP из подсети), а bandwidth один на всех?

 

Share this post


Link to post
Share on other sites
allexch, то есть подсчет раздельный (1 сессия - 1 IP из подсети), а bandwidth один на всех?

Давно об этом думаю(мечтаю).

Вроде лучше будет, чтобы логином приходило правило из iptables (192.168.0.0/28 например).

Тогда не надо будет на всю сеть заводить тучу логинов.

А в iptables добавить параметр -net, чтобы отличить разбор сети поIPшно или всю сеть.

А вот в Calling-Station-Id чтобы пришел IP компьютера (можно и с MAC адресом).

Так и выйдет, что подсчет раздельный (в билинге уже можно как угодно по складывать, но и носом ткнуть в конкретного качальщика), а bandwidth один на всю сеть

Edited by SNeon

Share this post


Link to post
Share on other sites

allexch, то есть подсчет раздельный (1 сессия - 1 IP из подсети), а bandwidth один на всех?

Мне кажется что подсчет на каждом IP не нужен, нужен суммарный (и то для информации), (обычно же нет таких тарифов, сетка на 16 IP 5 Гигов трафика в месяц каждый IP). А вот Bandwidth нужен общий на всю сеть.

Share this post


Link to post
Share on other sites

allexch, то есть подсчет раздельный (1 сессия - 1 IP из подсети), а bandwidth один на всех?

Я думаю подразумевается чтобы ISG могла оперировать не одиночными ip а еще и сетями. Чтобы можно было открыть сессию привязав ее к сети, соответственно и аккаунтинг на всю сеть.

Share this post


Link to post
Share on other sites

Маленькая проблемка с COA.

echo NAS-Identifier="isg",User-Name="192.168.0.100",Cisco-Account-Info="Au4000" | radclient -x 192.168.0.1:3799 coa secret
Sending CoA-Request of id 66 to 192.168.0.1 port 3799
        NAS-Identifier = "isg"
        User-Name = "192.168.0.100"
        Cisco-Account-Info = "Au4000"
rad_recv: CoA-NAK packet from host 192.168.0.1 port 3799, id=66, length=26
        Error-Cause = Session-Context-Not-Found

/usr/local/ISG/bin/ISG.pl | grep 192.168.0.100
   Appr    192.168.0.100         0.0.0.0    Virtual737 6446D456863597C3    3630    1409326    2199828          0          0

 

Что я делаю не так ?

Share this post


Link to post
Share on other sites
allexch, то есть подсчет раздельный (1 сессия - 1 IP из подсети), а bandwidth один на всех?
Мне кажется что подсчет на каждом IP не нужен, нужен суммарный (и то для информации), (обычно же нет таких тарифов, сетка на 16 IP 5 Гигов трафика в месяц каждый IP). А вот Bandwidth нужен общий на всю сеть.

с одной стороны и не нужен. Но есть клиенты-фирмы. У них 5-30 сотрудников и 5 мегабит. Так вот один начинает качать, все начинают паниковать. Сразу звонки в т.п. де наша скорость. Если есть подсчет по IP то можно сказать, что так мол и так, пните "хакера" с IP таким-то. Даже если на той стороне трубки меня не поймут - криков поубавится. А вот если ответить "да у вас канал весь забит - сами разбирайтесь" начнутся принеприятные качели. В билинге или интерфейсе к нему просуммировать не большая проблема, даже при 3000+ онлайн.

Share this post


Link to post
Share on other sites
Маленькая проблемка с COA.
Воспроизвести не удалось к сожалению. У Вас модуль ядра и userspace-обвязка (ISG/ISGd) одной версии (из одного релиза)?

 

Cisco-Account-Info="Au4000"
А вот такое точно не заработает в текущей версии.

 

Могу предложить подождать следующий релиз.

 

чтобы логином приходило правило из iptables (192.168.0.0/28 например).
Если у Вас например будет 50 сеточек, то такой подход окажется неэффективным (100 правил в FORWARD - это не очень).

 

Пока не могу обещать раздельный учет по IP-адресам в подсети, но суммарный подсчет/полисинг на сессию для подсети в будущем сделаю.

Share this post


Link to post
Share on other sites

Релиз один. Абсолютно точно.

Тоесть на данный момент через COA можно менять только Class ?

Edited by pchol

Share this post


Link to post
Share on other sites

Тоесть на данный момент через COA можно менять только Class ?

Да.

Share this post


Link to post
Share on other sites

Пока не могу обещать раздельный учет по IP-адресам в подсети, но суммарный подсчет/полисинг на сессию для подсети в будущем сделаю.

Круто! Ждем.

Share this post


Link to post
Share on other sites
Пока не могу обещать раздельный учет по IP-адресам в подсети, но суммарный подсчет/полисинг на сессию для подсети в будущем сделаю.

Клас! А можно это в ближайший релиз? А то только отсутствие полисинга подсетей останавливает от внедрения

Share this post


Link to post
Share on other sites

to Умник

Возникла еще 1 просьба. Хотелось бы в идеале получить иерархический qos. Пример. Есть тариф 50 Мбит/с и в этих 50 не больше 10М/бит торрента. Торрент я мечу метками DSCP еще до ISG, на входе ISG получает 50 Мбит. ТЕ если там нет dscp то дать 50, если там dscp меток на 5Мбит, то дать клиента 45, если там dscp на 15Мбит, то 5 зарезать, оставить 10 Мбит/с DSCP остальное просто Интернет.

Я так понимаю что такого не планировалось вводить, но с учетом лавинообразного роста трафика и появления в обозримом будующем тарифов в 100Мбит/с для физиков это становиться актуально(торрент на 100 от каждого пускать нельзя :) ).

Возможно такое прикрутить к вашему софту или нет?

Share this post


Link to post
Share on other sites

Добрый день, очень нужна помощь в решении проблемы.

Есть CentOS - 5.5, система настроена в режиме шейпирующего бриджа.

Пытаюсь поставить lISG, все ставиться, но работать не хочет.

Собралось все без ошибок, модули на iptables установились и загрузились.

 

[root@shaper bin]# lsmod
Module                  Size  Used by
ipt_ISG                50008  4 
iptable_filter         36161  1 
ip_tables              55201  1 iptable_filter
x_tables               50505  2 ipt_ISG,ip_tables
bridge                 91249  0 
igb                   153020  0

 

/var/log/messages

 

Oct  1 11:01:01 shaper kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Oct  1 11:01:01 shaper kernel: ipt_ISG: Network hash table (8192 Kbytes of 1048576 buckets, using /20 prefixes)
Oct  1 11:01:01 shaper kernel: ipt_ISG: Loaded (built on 2010-07-31 11:38:19)
Oct  1 11:06:48 shaper ISG[2689]: Refreshing traffic classification table 
Oct  1 11:06:48 shaper ISG[2689]: 13 prefixes loaded to TC table 
Oct  1 11:06:48 shaper kernel: ipt_ISG: Listener daemon with pid 2692 registered
Oct  1 11:06:48 shaper ISG[2692]: ISG job initialization done for NAS '127.0.0.1', entering main loop 
Oct  1 11:07:31 shaper ISG[2692]: Session '91.xx.xx.194' on 'Virtual1' accepted by '127.0.0.1:1812'

 

[root@shaper bin]# iptables -L FORWARD -vn
Chain FORWARD (policy ACCEPT 17M packets, 12G bytes)
pkts bytes target     prot opt in     out     source               destination         
  579 47662 ISG        all  --  *      *       91.xx.xx.194       0.0.0.0/0           ISG initiator src mode
  174 14544 ISG        all  --  *      *       91.xx.xx.194       0.0.0.0/0           ISG

Далее

[root@shaper bin]# ./ISG.pl 
User IP-address NAT IP-address  Port number   Uniq. Identifier Durat.  Octets-in  Octets-out Rate-in    Rate-out   Service name     Flags
91.xx.xx.194  0.0.0.0         Virtual1      9C6E660DCEF9CA66 639        14544         0              0            0             Undefined        A    
[root@shaper bin]#

 

В tc.conf создан класс ALL_INET 0.0.0.0/0

В config.pl

## Format for download and upload rates: "rate;normal burst" (in bit/s)
## Use zero values (0;0) for no rate limit
$cfg{srv}{GOROD_MIR}{download_rate} = "400000;256000";
$cfg{srv}{GOROD_MIR}{upload_rate}   = "400000;256000";
$cfg{srv}{GOROD_MIR}{no_accounting} = 1;
$cfg{srv}{GOROD_MIR}{traffic_classes} = [ "ALL_INET" ];

 

Радиус говорит

Fri Oct  1 11:25:31 2010
    User-Name = "91.xx.xx.194"
    Calling-Station-Id = "91.xx.xx.194"
    Service-Type = Framed-User
    NAS-IP-Address = 127.0.0.1
    NAS-Identifier = "127.0.0.1"
    Called-Station-Id = "127.0.0.1"
    NAS-Port = 1
    NAS-Port-Type = Virtual
    Acct-Status-Type = Interim-Update
    Acct-Authentic = RADIUS
    Acct-Session-Id = "9C6E660DCEF9CA66"
    Acct-Session-Time = 1080
    Acct-Input-Packets = 174
    Acct-Output-Packets = 0
    Acct-Input-Octets = 14544
    Acct-Output-Octets = 0
    Acct-Input-Gigawords = 0
    Acct-Output-Gigawords = 0
    Cisco-AVPair = "client-mac-address=001e.58d6.b001"
    Cisco-Control-Info = "I0;14544"
    Cisco-Control-Info = "O0;0"
    Acct-Unique-Session-Id = "8381968b8c623c0a"
    Timestamp = 1285921531
    Request-Authenticator = Verified

 

Но самой авторизации нет, сквозь бридж ничего не проходит.

Подскажите где искать ??? В логах тишина ...

Share this post


Link to post
Share on other sites
579 47662 ISG all -- * * 91.xx.xx.194 0.0.0.0/0 ISG initiator src mode

174 14544 ISG all -- * * 91.xx.xx.194 0.0.0.0/0 ISG

Здесь ошибка. Во второй строке адрес должен быть в dst.

Share this post


Link to post
Share on other sites
579 47662 ISG all -- * * 91.xx.xx.194 0.0.0.0/0 ISG initiator src mode

174 14544 ISG all -- * * 91.xx.xx.194 0.0.0.0/0 ISG

Здесь ошибка. Во второй строке адрес должен быть в dst.

Спасибо огромное, невнимательность меня погубит...

Share this post


Link to post
Share on other sites

Рано обрадовался.. Полисер не отработал

## Format for download and upload rates: "rate;normal burst" (in bit/s)
## Use zero values (0;0) for no rate limit
$cfg{srv}{GOROD_MIR}{download_rate} = "400000;256000";
$cfg{srv}{GOROD_MIR}{upload_rate}   = "400000;256000";
$cfg{srv}{GOROD_MIR}{no_accounting} = 1;
$cfg{srv}{GOROD_MIR}{traffic_classes} = [ "ALL_INET" ];

 

В radius в файле users

91.xx.xx.194 Cleartext-Password := "91.xx.xx.194"
    Auth-Type := Local,
    Cisco-Account-Info = AGOROD_MIR

А пишет

[root@shaper etc]# ../bin/ISG.pl 
User IP-address NAT IP-address  Port number   Uniq. Identifier Durat.  Octets-in  Octets-out Rate-in    Rate-out   Service name     Flags
91.xx.xx.194  0.0.0.0         Virtual1      FDFD112D87AF5361 625     22281068   58144024   0          0          Undefined        A    
[root@shaper etc]#

 

И попутно вопрос почему service name - undefined ?

Rate-in, Rate-out по нулям ...

 

Пытаюсь выставить вручную для данной сессии..

/usr/local/bin/ISG.pl change_rate Virtual1 1070 1070

[root@shaper etc]# /usr/local/bin/ISG.pl

User IP-address NAT IP-address  Port number   Uniq. Identifier Durat.  Octets-in  Octets-out Rate-in    Rate-out   Service name     Flags
91.хх.хх.194  0.0.0.0         Virtual1      31B62DBB2EA35543 2221      23422086   68515968   1070000    1070000    Undefined        A    
[root@shaper etc]#

Выставляет, но скорость все равно не ограничивается ...

Edited by kww

Share this post


Link to post
Share on other sites
kww, ISG.pl без параметров выдает список сессий. Чтобы посмотреть список сервисов для данной сессии, нужно сделать ISG.pl show_services Virtual1. В Вашем случае сессия никак не ограничена. Хотя внутри сервиса скорость должна ограничиваться, иначе бы у Вас вообще трафик не ходил.
Edited by Умник

Share this post


Link to post
Share on other sites
kww, ISG.pl без параметров выдает список сессий. Чтобы посмотреть список сервисов для данной сессии, нужно сделать ISG.pl show_services Virtual1. В Вашем случае сессия никак не ограничена. Хотя внутри сервиса скорость должна ограничиваться, иначе бы у Вас вообще трафик не ходил.

смотрим

 

[root@shaper lisg]# ISG.pl show_services Virtual1
User IP-address NAT IP-address  Port number   Uniq. Identifier Durat.  Octets-in  Octets-out Rate-in    Rate-out   Service name     Flags
91.xx.xx.194  0.0.0.0         Virtual1      5AD7D29E85B02C13 13587   24014766   194332552  400000     400000     GOROD_MIR        SOU  
[root@shaper lisg]# ISG.pl show_services Virtual1

 

В каких единицах Rate-in Rate-out ?? У меня скорость на входе 20 мбит на ширину всего канала получается ((

Share this post


Link to post
Share on other sites

kww, интересно. Значение скорости - в битах. А счетчик (octets-in/out) выдает верное значение? По-идее после остановки сессии, выполнения iptables -Z, и перезапуска сессии счетчики:

 

1) В ISG-правилах iptables

2) Выдаваемые ISG.pl

3) Реальный объем, который замерен на тестовом клиенте (91.xx.xx.194)

 

должны примерно совпадать. Это так?

Share this post


Link to post
Share on other sites
kww, интересно. Значение скорости - в битах. А счетчик (octets-in/out) выдает верное значение? По-идее после остановки сессии, выполнения iptables -Z, и перезапуска сессии счетчики:

 

1) В ISG-правилах iptables

2) Выдаваемые ISG.pl

3) Реальный объем, который замерен на тестовом клиенте (91.xx.xx.194)

 

должны примерно совпадать. Это так?

Счетчик выдает похожее на правду, завтра замерю поподробнее, но после сброса сессии обьемы были похожи.

Смущает другое, все это крутиться на бридже, может мешать ? но iptables c FORWARD то отрабатывают..

 

br0       Link encap:Ethernet  HWaddr 00:1B:21:55:AC:00
          inet6 addr: fe80::21b:21ff:fe55:ac00/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2667 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:122682 (119.8 KiB)  TX bytes:468 (468.0 b)

eth1    Link encap:Ethernet  HWaddr 00:1B:21:55:AC:00
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21b:21ff:fe55:ac00/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1263792936 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1317200840 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:632314125201 (588.8 GiB)  TX bytes:1175701009456 (1.0 TiB)

eth2      Link encap:Ethernet  HWaddr 00:1B:21:55:AC:01
          inet addr:10.0.0.2  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21b:21ff:fe55:ac01/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1317197854 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1263763455 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1176435433179 (1.0 TiB)  TX bytes:630721809458 (587.4 GiB)

Edited by kww

Share this post


Link to post
Share on other sites

Смущает другое, все это крутиться на бридже, может мешать ?

Нет, это мешать не должно раз трафик все равно проходит через FORWARD. Возможно проблема в ядре 2.6.18 - там еще вроде бы никто не тестировал полисинг. Я проверю.

Edited by Умник

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now