Вы Гость ( Вход | Регистрация ) политика конфиденциальности

ISG в Linux
  • (49 Страниц)
  • +
  • 1
  • 2
  • 3
  • »
опции темы

Пользователь офлайн Умник
07 декабря 2009 - 20:13
Сообщение #1

Звание: Аспирант
Группа: Активный участник
Сообщений: 556
Регистрация: 21 августа 05
Кому-нибудь интересен сабж?

Что реализовано: TAL (Transparent auto-login с автостартом/стопом сессии) - аналог "ip subscriber routed", traffic policing, интерфейс - RADIUS (Cisco AV-Pair правда не эмулировал)... О туннелях (PPPoE, PPTP, L2TP) речи не идет. Делалось для классического IPoE. Работает в production - в онлайне до 4k сессий, трафик ~120 pps.
Если кому интересно, спрашивайте, что нужно (нужно - именно на практике, то есть обязательно, потому что все не реализуешь). Если все будет хорошо, можно будет привести в порядок, доделать фичи и выложить как open source. :)

UPD: http://bitbucket.org/sysoleg/lisg/

Сообщение отредактировал Умник: 19 апреля 2013 - 17:05

 
Пользователь офлайн zander
07 декабря 2009 - 20:31
Сообщение #2

Звание: Студент
Группа: Активный участник
Сообщений: 414
Регистрация: 23 марта 06
Город: Север
Можно подробнее ? как дела с аккаунтингом ? реализовано на ядерном уровне или в юзер-спейсе ?
 
Пользователь офлайн Умник
07 декабря 2009 - 21:32
Сообщение #3

Звание: Аспирант
Группа: Активный участник
Сообщений: 556
Регистрация: 21 августа 05
zander, RADIUS-аккаунтинг есть конечно же. Подсчет трафика и полисинг выполняется в ядре, все остальные функции (взаимодействие с RADIUS-сервером) - в юзерспейсе (демон на Perl).

Сообщение отредактировал Умник: 07 декабря 2009 - 21:32

 
Пользователь офлайн DemYaN
07 декабря 2009 - 21:48
Сообщение #4

Звание: Студент
Группа: Активный участник
Сообщений: 228
Регистрация: 26 сентября 05
Город: Украина
Сабж весьма интересен!
Подсчет трафика в ядре чем реализован? Полисинг или шейп? Для управления qidsc'ами демон использует tc или через netlink/libnl? Как осуществляется снупинг трафика для старта сессии?

UPD старт по DHCPDISCOVER/DHCPREQUEST ?

Сообщение отредактировал DemYaN: 07 декабря 2009 - 22:15

 
Пользователь офлайн shicoy
07 декабря 2009 - 22:00
Сообщение #5

Звание: Доцент
Группа: VIP
Сообщений: 1 716
Регистрация: 18 октября 05
Город: Cheboksary, Etherway
Изменение параметров сессии на лету через CoA?
 
Пользователь офлайн Умник
07 декабря 2009 - 23:06
Сообщение #6

Звание: Аспирант
Группа: Активный участник
Сообщений: 556
Регистрация: 21 августа 05

Цитата

Подсчет трафика в ядре чем реализован? Полисинг или шейп? Для управления qidsc'ами демон использует tc или через netlink/libnl?

Подсчет трафика и полисинг в целях оптимизации реализован средствами модуля ядра. Поэтому qdisc и tc не используется. Полисинг сделан в соответствии с RFC 2697 (http://www.faqs.org/rfcs/rfc2697.html). Только цветов не три, а два (красный и зеленый), то есть желтый приравнен к красному (для задач полисинга трафика обычных юзеров три цвета не требуется).

Цитата

Как осуществляется снупинг трафика для старта сессии?

Kernel space реализован средствами модуля Netfilter, старт сессии (то есть отправка запроса на RADIUS) происходит по unclassified source IP-address. Смысл такой:

iptables -A FORWARD -s 10.123.0.0/16 -j ISG --session-init "inet"
iptables -A FORWARD -d 10.123.0.0/16 -j ISG

Первое правило - для "инициализации" сессий и подсчета/полисинга трафика от юзеров.
Второе правило - для подсчета/полисинга трафка на юзеров.

Каждого юзера из 10.123.0.0/16 в iptables добавлять естественно не нужно. Вся "магия" - внутри модуля. :) На RADIUS все уходит в нормальном виде - Packets/Octets In/Out для каждого аутентифицированного юзера.

Старт - исключительно по unclassified source IP, потому что подразумевалось, что пользователь не подключен напрямую к BRAS, и BRAS не выступает в качестве DHCP-релея для юзера. Впрочем, если это необходимо, можно подумать как реализовать. Для этого я и создал тему. :)

Цитата

Изменение параметров сессии на лету через CoA?
Изменение параметров сессии налету возможно, а вот CoA-интерфейса нет.

Какие функции CoA обычно юзаются провайдерами?
 
Пользователь офлайн shicoy
07 декабря 2009 - 23:14
Сообщение #7

Звание: Доцент
Группа: VIP
Сообщений: 1 716
Регистрация: 18 октября 05
Город: Cheboksary, Etherway
CoA для изменения профиля на лету (включение "турбо", смена тарифа и т.д.)
Каким устанавливается время жизни сессии? при отсутствии пакетов во стороны source IP абонента.

Вообще тема интересная, наверное уже можна начинать с примеров, совместно будет допиливать.
 
Пользователь офлайн shicoy
07 декабря 2009 - 23:24
Сообщение #8

Звание: Доцент
Группа: VIP
Сообщений: 1 716
Регистрация: 18 октября 05
Город: Cheboksary, Etherway
управление модулем я так понимаю осуществляется через sysctrl? а связь с RADIUS через perl конструкцию?
 
Пользователь офлайн shicoy
07 декабря 2009 - 23:35
Сообщение #9

Звание: Доцент
Группа: VIP
Сообщений: 1 716
Регистрация: 18 октября 05
Город: Cheboksary, Etherway
Так же наверное многим было бы интересно классификации трафика по разным зонам (направление и/или протокол), причем в зависимости от source ip.

Например "местный" трафик идет на 100Мбит, внешний на 10Мбит, для абонента с source IP = 1.1.1.2
и
для source IP 1.1.1.3 "местный" на 50Мбит и внешний на 3Мбит.
 
Пользователь офлайн alks
08 декабря 2009 - 00:42
Сообщение #10

Звание: Профессор
Группа: VIP
Сообщений: 3 661
Регистрация: 19 июля 06
Интересная тема
1. ip portbundle L4redirect
2. Cisco AV-Pair для совместимости isg-radius-billing
3. препейд есть ?
4. vrf
vrf red - > nat
vrf green - > Inet
 
Пользователь офлайн DemYaN
08 декабря 2009 - 01:22
Сообщение #11

Звание: Студент
Группа: Активный участник
Сообщений: 228
Регистрация: 26 сентября 05
Город: Украина

Просмотр сообщенияalks (08 декабря 2009 - 00:42) писал:

4. vrf
в linux нет стандартных средств для полноценного vrf, а linux-vrf заглох

Сообщение отредактировал DemYaN: 08 декабря 2009 - 01:23

 
Пользователь офлайн Умник
08 декабря 2009 - 11:49
Сообщение #12

Звание: Аспирант
Группа: Активный участник
Сообщений: 556
Регистрация: 21 августа 05

Цитата

Каким устанавливается время жизни сессии?
Это настраивается. Если от src IP определенное количество секунд не было трафика, то сессия STOP-ится. Также есть возможность виртуально рестартить сессию каждые N секунд (например, раз в сутки), чтобы в биллинге не было длинных (неделя, месяц) сессий.

Цитата

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

Цитата

управление модулем я так понимаю осуществляется через sysctrl? а связь с RADIUS через perl конструкцию?
Демон, написанный на Perl, управляет модулем через Netlink (но это уже особенности реализации - не суть важно), а также взаимодействует с RADIUS-сервером для аутентификации и аккаунтинга пользователей.

Цитата

Так же наверное многим было бы интересно классификации трафика по разным зонам (направление и/или протокол)
Нужно разобраться как это сделано в Cisco ISG. :)

Цитата

ip portbundle L4redirect
L4redirect сделать несложно, он определенно будет. Может быть не в начальном alpha-релизе, но будет.

Цитата

Cisco AV-Pair для совместимости isg-radius-billing
Имеет смысл реализовать наиболее часто использумеые провайдерами фишки ISG. В этой теме пытаюсь выяснить, что это за фишки.

Цитата

препейд есть ?
Это фиксированные лимиты трафика, после которых услуга отключается? Нет, сейчас нет. Если многим нужно - можно и это сделать.

Сообщение отредактировал Умник: 08 декабря 2009 - 11:51

 
Пользователь офлайн shicoy
08 декабря 2009 - 13:39
Сообщение #13

Звание: Доцент
Группа: VIP
Сообщений: 1 716
Регистрация: 18 октября 05
Город: Cheboksary, Etherway
ну собственно нужно:
- поддержка Cisco AV-pair для совместимости
- классификация трафика по зонам (примеры можно найти тут http://wiki.sirmax.noname.com.ua/)
- препейд трафик
- L4 redirect конечно же
- Изменение профайла сессии "на лету"
ждем первых опытных образцов =)

Сообщение отредактировал shicoy: 08 декабря 2009 - 13:52

 
Пользователь офлайн shicoy
08 декабря 2009 - 13:57
Сообщение #14

Звание: Доцент
Группа: VIP
Сообщений: 1 716
Регистрация: 18 октября 05
Город: Cheboksary, Etherway
Так же интересно что происходит с не авторизованными абонентами?
Вообще в идеале хотелось бы видеть такую схему:

Если авторизован нормально, то пускаем в сеть и т.д.
Если авторизован с отрицательным балансом, то заворачиваем куда-то (например на страничку пополения баланса)
Если авторизован с пометкой "плохой", то заворачиваем куда-то (например на страничку предупреждения об вирусах)
Если неавторизован, то заворачиваем куда-то (например на страничку с предупреждением)
и т.д.
 
Пользователь офлайн Умник
08 декабря 2009 - 14:19
Сообщение #15

Звание: Аспирант
Группа: Активный участник
Сообщений: 556
Регистрация: 21 августа 05

Цитата

Если авторизован с пометкой "плохой", то заворачиваем куда-то
А что в данном случае является "пометкой"?
 
Пользователь офлайн shicoy
08 декабря 2009 - 14:32
Сообщение #16

Звание: Доцент
Группа: VIP
Сообщений: 1 716
Регистрация: 18 октября 05
Город: Cheboksary, Etherway
Radius AVPair, что-то вроде

ip:traffic-class=input access-group name REDIRECT_PORTAL
ip:traffic-class=output access-group name REDIRECT_PORTAL

т.е. ISG получив такую AVPair на сессию будет заворачивать трафик этой сессии на портал.

В презентации есть примеры:
http://www.ciscoexpo.ru/moscow/2008/downlo...SG_segusaro.pdf

Более точно наверное смогу сказать цисководы.

А основанием для выдачи пометки будет служить ответ биллинга через RADIUS в выдачей нужной AVPair
Но это уже частности, главно имху реализовать через AVPair редирект трафика в нужном направлении.
 
Пользователь офлайн Умник
15 декабря 2009 - 13:14
Сообщение #17

Звание: Аспирант
Группа: Активный участник
Сообщений: 556
Регистрация: 21 августа 05
Ну что ж, попробуем :) pre-alpha релиз можно скачать здесь:

http://www.progtech.ru/~oleg/lISG/

Тестируйте, пишите отзывы. :)
 
Пользователь офлайн shicoy
15 декабря 2009 - 13:18
Сообщение #18

Звание: Доцент
Группа: VIP
Сообщений: 1 716
Регистрация: 18 октября 05
Город: Cheboksary, Etherway
Класс, как раз на неделе перед праздниками ничего с продакшином делать нельзя, вот и будем тестить.
 
Пользователь офлайн Умник
15 декабря 2009 - 13:28
Сообщение #19

Звание: Аспирант
Группа: Активный участник
Сообщений: 556
Регистрация: 21 августа 05
alks, где можно посмотреть на открытую реализацию хорошего (или хотя бы какого) "isg-radius-billing"?
 
Пользователь офлайн Умник
17 декабря 2009 - 22:26
Сообщение #20

Звание: Аспирант
Группа: Активный участник
Сообщений: 556
Регистрация: 21 августа 05
http://www.progtech.ru/~oleg/lISG/

* Исправлена мелкая ошибка, вызывающая ненужные warnings для переменных из файла config.pl.
 
  • (49 Страниц)
  • +
  • 1
  • 2
  • 3
  • »
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей