forum.bitel.ru http://forum.bitel.ru/ |
|
BGBilling и Cisco ISG http://forum.bitel.ru/viewtopic.php?f=22&t=2342 |
Страница 1 из 1 |
Автор: | tee [ 24 май 2009, 13:58 ] |
Заголовок сообщения: | BGBilling и Cisco ISG |
Хочу попробовать использовать BGbilling c Cisco ISG почитал описание и отзывы, биллинг мне понравился, но вот не знаю будет ли работать в нужной конфигурации. Не хочется использовать разного рода туннели (PPPoE, PPtP), но очень хочется нормально резать скорость и управлять всем централизованно. BG не поддерживает профили сервисов и аккаунгинг по сервисам, это я уже понял из документации, но может выдавать фактически любые атрибуты в "AUTH ACCEPT", а аккаутинг по сервисам мне и не нужен, сервис один - доступ в Интернет. Что планируется, (абоненты подключены по L3, VLAN на пользователя) 1) авторизация по DHCP DISCOVER - оборудование доступа или агрегации добавляет OPT.82 в DHCP запросы ISG собирает из субопций имя пользователя для авторизации и отправляет его в атрибуте "Username" в "AUTH REQ" 2) в случае ответа "AUTH REJ" на сессию навешивается только сервис разрешающий доступ к странице http://<адрес сервера биллинга>:8080/bgbilling/webexecuter и сервис перенаправляющий туда все HTTP запросы 3) в случае ответа "AUTH ACCEPT" в зависимости от тарифа пользователю выдаются атрибуты ограничивающие скорость, атрибуты берутся из свойств тарифа который назначен пользователю. 4) пакеты "ACCOUNTING" в не зависимости от доп. атрибутов типа Cisco-Service-Info и т.д. принимаются, (какие еще доп. атрибуты будут пока не знаю) принадлежность пакета к сессии определяется полем NAS-Port, там будет уникальный код сессии 5) nas.inspector реализован в виде внешнего скрипта в котором клиент freeradius'а вызывается с нужными параметрами и дергает ISG по CoA (ну или по SNMP но кажется в ISG нет SESSION MIB - это нужно проверить) 6) хотелось бы прицепить CoA чтобы BG пинал ISG, ессли абонент хочет заблокировать/разблокировать доступ в Интернет из своего интерфейса, но это опция Реализуемо ли это в BG (4.5/4.6) ? |
Автор: | tee [ 27 май 2009, 12:37 ] |
Заголовок сообщения: | |
как сделать группу атрибутов например с cisco-SSG-Account-Info cisco-SSG-Account-Info=QU;128000;16000;32000;D;128000;16000;32000 там используются разделители ";" параметров, которые конфликтуют с резделителем списка атрибутов хотя попробую определить сервис локально на NAS'е и отдать A<service-name> |
Автор: | Администратор [ 27 май 2009, 16:05 ] |
Заголовок сообщения: | |
Поддержку значений атрибутов с ; сделаем для 4.6 в ближайшее время. |
Автор: | tee [ 06 июн 2009, 09:55 ] |
Заголовок сообщения: | |
Неделя тяжелого велосипедостроения показала что это реализовать трудно. В итоге я присмотрелся более внимательно к модулю IPN, посмотрел на примеры скриптов на BeanShell в wiki и за пару дней реализовал почти весь основной функционал немного подточив эти скрипты под себя. Неплохобы какойнибудь класс чтобы парсил цискины конфиги, шлюзы типа Cisco2 при синхронизации дергают все объекты конфига подряд а хотелось бы только те состояние которых нужно актуализировать, при масштабных изменениях могут быть лаги. Чтото вроде такого Cisco-Reconfig |
Автор: | Администратор [ 08 июн 2009, 10:44 ] |
Заголовок сообщения: | |
Вы бы хоть описали поподробнее, что вы сделали в итоге. Хоть понятно было бы, какого вида конфиги и как парсить нужно. |
Автор: | stark [ 08 июн 2009, 11:20 ] |
Заголовок сообщения: | |
tee писал(а): Неплохобы какойнибудь класс чтобы парсил цискины конфиги, шлюзы типа Cisco2 при синхронизации дергают все объекты конфига подряд а хотелось бы только те состояние которых нужно актуализировать, при масштабных изменениях могут быть лаги. Чтото вроде такого Cisco-Reconfig не совсем понял, вы хотете чтобы шлюз прежде чем применял правила , вначале делал проверку нужно ли их применять ? ..У меня есть несколько примеров шлюзов где есть подобная проверка для циско .для каждого шлюза вызывается вначале show access-lists..и потом для каждого договора на этом шлюзе проверяется есть ли его ip в show access-lists (и наоброт если нет) и если ситуация неправильная , то она исправляется ..Т.е посылаются только изменения .. Т.е в большистве случаев вызываестя просто show access-lists и не посылается больше ни одной команды(если ничего не изменилось) . шлюзы могу в wiki выложить |
Автор: | max [ 08 июн 2009, 11:40 ] |
Заголовок сообщения: | |
stark писал(а): шлюзы могу в wiki выложить |
Автор: | tee [ 08 июн 2009, 17:28 ] |
Заголовок сообщения: | |
Администратор писал(а): Вы бы хоть описали поподробнее, что вы сделали в итоге. Хоть понятно было бы, какого вида конфиги и как парсить нужно.
если в трех словах, центральный роутер - отдает нетфлоу и режет скорость, для него на базе Cisco2 реализовано такое поведение кое что еще попрвлю но примерно так Код: [DEFAULT]
[REMOVEULIM] policy-map QOS-NET-IN no class CM-{CID} exit policy-map QOS-NET-OUT no class CM-{CID} exit no class-map match-any CM-{CID} no ip access-list extended ACL-{CID}-OUT no ip access-list extended ACL-{CID}-IN <LOOP> no ip route {A} Null0 </LOOP> [/REMOVEULIM] [OPENULIM] ip access-list extended ACL-{CID}-OUT <LOOP> permit ip host {A} any </LOOP> exit ip access-list extended ACL-{CID}-IN <LOOP> permit ip any host {A} </LOOP> exit class-map match-any CM-{CID} match access-group name ACL-{CID}-OUT match access-group name ACL-{CID}-IN exit policy-map QOS-NET-IN class CM-{CID} bandwidth ${BW} exit exit policy-map QOS-NET-OUT class CM-{CID} bandwidth ${BW} exit exit [/OPENULIM] [CLOSEULIM] policy-map QOS-NET-IN no class CM-{CID} exit policy-map QOS-NET-OUT no class CM-{CID} exit no class-map match-any CM-{CID} no ip access-list extended ACL-{CID}-OUT no ip access-list extended ACL-{CID}-IN <LOOP> ip route {A} Null0 </LOOP> [/CLOSEULIM] [REMOVETRAF] <LOOP> no ip route {A} Null0 </LOOP> [/REMOVETRAF] [OPENTRAF] <LOOP> no ip route {A} Null0 </LOOP> [/OPENTRAF] [CLOSETRAF] <LOOP> ip route {A} Null0 </LOOP> [/CLOSETRAF] [/DEFAULT] *ULIM - это безлимитные тарифы для которых нужно резать скорость *TRAF - тарифы по объему Скорость выбирается типом правила, по нему же определяется к какой группе тарифов принадлежит договор. пара полису мапов режет скорость, ip route {A} Null0 нужно чтобы на закрытый договор не шел трафик У этого шлюза есть чилд тоже на базе Cisco2, это L3 свич (С3550) почти стандартное поведение, только по закрытию делает интерфейсу не shutdown а прицепляет акцесс лист который дает доступ только к веб интерфейсу пользователя на биллинге. У L3 свича тоже есть чилд, это L2 свич с 802.1q где нужно просто создавать и удалять виланы и добавлять их к портам как таггдед или антаггед пока не готово но сделаю на базе скрипта из вики. примерно так, когда будет окончательно готово, выложу полностью |
Автор: | tee [ 08 июн 2009, 17:37 ] |
Заголовок сообщения: | |
stark писал(а): tee писал(а): Неплохобы какойнибудь класс чтобы парсил цискины конфиги, шлюзы типа Cisco2 при синхронизации дергают все объекты конфига подряд а хотелось бы только те состояние которых нужно актуализировать, при масштабных изменениях могут быть лаги. Чтото вроде такого Cisco-Reconfig не совсем понял, вы хотете чтобы шлюз прежде чем применял правила , вначале делал проверку нужно ли их применять ? ..У меня есть несколько примеров шлюзов где есть подобная проверка для циско .для каждого шлюза вызывается вначале show access-lists..и потом для каждого договора на этом шлюзе проверяется есть ли его ip в show access-lists (и наоброт если нет) и если ситуация неправильная , то она исправляется ..Т.е посылаются только изменения .. Т.е в большистве случаев вызываестя просто show access-lists и не посылается больше ни одной команды(если ничего не изменилось) . шлюзы могу в wiki выложить да именно , перед применением правила проверять нужно ли вносить изменения в конфигурацию еще бы парсить не только результаты show access-lists а результаты show run, чтобы контролировать подобным образом интерфейсы и полиси. |
Автор: | Jimson [ 08 июн 2009, 19:50 ] |
Заголовок сообщения: | |
stark писал(а): У меня есть несколько примеров шлюзов где есть подобная проверка для циско .для каждого шлюза вызывается вначале show access-lists..и потом для каждого договора на этом шлюзе проверяется есть ли его ip в show access-lists (и наоброт если нет) и если ситуация неправильная , то она исправляется ..Т.е посылаются только изменения .. Т.е в большистве случаев вызываестя просто show access-lists и не посылается больше ни одной команды(если ничего не изменилось) . шлюзы могу в wiki выложить
так вроде они и выложены: Код: // проход по ACL списку с отметкой какие договора открыты
markOpenFromRules( list, aclByNameMap ); System.out.println("33333333333333333333333"); // подготовка списка корректирующих команд buildCommandsLists( aclMap ); или есть другие версии ? если да, то интересно посмотреть |
Автор: | Jimson [ 08 июн 2009, 19:56 ] |
Заголовок сообщения: | |
tee писал(а): Неплохобы какойнибудь класс чтобы парсил цискины конфиги, шлюзы типа Cisco2 при синхронизации
как бы это сформулировать.... ) у вас ведь не может быть одного и того же куска конфига который каким либо способом участвует в правилах "ограничения" договора, так ? как бы шлюз работает по системе: если состояние договора "изменилось", то что то сделать в конфиге (добавить правила или удалить их) вот это самое "изменилось" можно узнать "погрепав" конфиг на кючевое слово, в примерах Cisco/Cisco2 это греп по ACL-ям, в вашем случае можно, как пример, погрепать определения класс-мапов что бы получить информацию о том по каким договорам в конфиге есть правила или я не так понял задачу ? |
Автор: | stark [ 09 июн 2009, 13:23 ] |
Заголовок сообщения: | |
1. http://wiki.bgbilling.ru/index.php/%D0% ... %D0%BC_ssh 2. http://wiki.bgbilling.ru/index.php/%D0% ... %BC_telnet в обоих шлюзах есть проверка acl. во втором кроме проверки acl есть еще и проверка vlan |
Автор: | tee [ 14 июн 2009, 13:34 ] |
Заголовок сообщения: | |
Jimson писал(а): tee писал(а): Неплохобы какойнибудь класс чтобы парсил цискины конфиги, шлюзы типа Cisco2 при синхронизации как бы это сформулировать.... ) у вас ведь не может быть одного и того же куска конфига который каким либо способом участвует в правилах "ограничения" договора, так ? как бы шлюз работает по системе: если состояние договора "изменилось", то что то сделать в конфиге (добавить правила или удалить их) вот это самое "изменилось" можно узнать "погрепав" конфиг на кючевое слово, в примерах Cisco/Cisco2 это греп по ACL-ям, в вашем случае можно, как пример, погрепать определения класс-мапов что бы получить информацию о том по каким договорам в конфиге есть правила или я не так понял задачу ? да, как то так и буду делать |
Автор: | tee [ 14 июн 2009, 14:07 ] |
Заголовок сообщения: | |
На остнове этого примера для Dlink Пытаюсь сделать свой шлюз для Dlink L2 свича (Dlink DES-3028) при этом когда делаю этот шлюз дочерним к шлюзу Cisco2 шлюз Cisco2 и вышестоящий шлюз Cisco вместо IP адресов получают 0.0.0.0 подозреваю что дело в том что функция в коде для Dlink Код: rule = status.rule.getRuleText();
в этом случае возвращает строку 10.100.101.79:6#174351695; IP - 10.100.101.79 PORT - 6 хотя в примерах скриптов видно что порядок должен быть другим Или я ошибаюсь ? PS Сервер 4.6 сборка 475 IPN 4.6 сборка 183 |
Автор: | stark [ 15 июн 2009, 17:32 ] |
Заголовок сообщения: | |
tee писал(а): в этом случае возвращает строку
10.100.101.79:6#174351695; IP - 10.100.101.79 PORT - 6 хотя в примерах скриптов видно что порядок должен быть другим 10.100.101.79:6 - ip и порт указанный на вклдке привзяка . 174351695 - это ip выбранный справа. это десятиричная запись адреса 10.100.101.79. у вас они совпадают с тем, который указан для порта, а может и не совпадать ..вот так а вообще привзязка несколько нечетко сделана ..там фактичскеи есть только привязка ip-mac , она передется на dhcp(если его использовать) . а порты живут своей жизнью в цикле LOOP и не привязаны к ip если писать команды, т.к обвчно в командах используется только диапазон портов. т.е свзяь ip-порт есть в данных шлюза , но как связь не используется .. |
Автор: | tee [ 15 июн 2009, 19:17 ] |
Заголовок сообщения: | |
stark писал(а): 10.100.101.79:6 - ip и порт указанный на вклдке привзяка . 174351695 - это ip выбранный справа. это десятиричная запись адреса 10.100.101.79. у вас они совпадают с тем, который указан для порта, а может и не совпадать ..вот так а вообще привзязка несколько нечетко сделана ..там фактичскеи есть только привязка ip-mac , она передется на dhcp(если его использовать) . а порты живут своей жизнью в цикле LOOP и не привязаны к ip если писать команды, т.к обвчно в командах используется только диапазон портов. т.е свзяь ip-порт есть в данных шлюза , но как связь не используется .. Спасибо становится понятней, то что возвращается функцией Код: status.rule.getRuleText(); должно интерпретироватся скриптами самостоятельно и только вытащив оттуда адреса и порты можно вызывать в скрипте Код: ManadUtils.generateRule(....) Реализации шлюзов Cisco2 на bsh ожидают что status.rule.getRuleText(); вернет адрес в десятичном формате как например "174351695" а редактор свича Код: user_rule.editor.class=bitel.billing.module.services.ipn.editor.vlan.CiscoSSHSwitchRuleEditor
встовляют в строку свой адрес и порт в формате ip.ip.ip.ip:port поэтому когда я добавляю этого потомка вышестоящие шлюзы типа Cisco2 на bsh перестают работать |
Автор: | tee [ 15 июн 2009, 19:23 ] |
Заголовок сообщения: | |
однако остается непонятной функция из прмера Код: getPorts( ports )
{ portList = new ArrayList<String>(); parts = ports.split( ";" ); for (String part : parts ) { parts2 = part.split( ":" ); if ( parts2.length < 2) { continue; } port = parts2 [1]; portList.add( port ); } ports_[] = new String [portList.size()]; for (int i = 0; i < ports_.length; i++) { ports_[i] = portList.get( i ); } return ports_; } судя по коду там еще есть какието параметры разделенные ";" и вообще интересно вот такого типа формат "10.100.101.79:6#174351695;" он не поменяется ? нехочется получить нерабочие скрипты после обновления |
Автор: | stark [ 15 июн 2009, 19:41 ] |
Заголовок сообщения: | |
там есть еще mac в общем случае..и в 4.6 еще добавились сети ..но совместимость осталась ..вот сейчас такой формат : 80.78.119.2:1:00-1f-c6-ac-c2-87;80.78.119.3:2:00-1f-c6-ac-c2-88;80.78.119.4:3#3232282636,3232282637;3232282672/30 ip1:port1:mac1;ip2:port2:mac2#ip1_, ip2_,ip3_;ip_net_1/mask1,ip_net_2/mask2 |
Автор: | tee [ 15 июн 2009, 19:44 ] |
Заголовок сообщения: | |
stark писал(а): там есть еще mac в общем случае..и в 4.6 еще добавились сети ..но совместимость осталась ..вот сейчас такой формат :
80.78.119.2:1:00-1f-c6-ac-c2-87;80.78.119.3:2:00-1f-c6-ac-c2-88;80.78.119.4:3#3232282636,3232282637;3232282672/30 ip1:port1:mac1;ip2:port2:mac2#ip1_, ip2_,ip3_;ip_net_1/mask1,ip_net_2/mask2 Спасибо ! |
Автор: | tee [ 18 июн 2009, 09:52 ] |
Заголовок сообщения: | |
Отсюда QoS Frequently Asked Questions Цитата: Q. How many classes does a Quality of Service (QoS) policy support?
A. In Cisco IOS versions earlier than 12.2 you could define a maximum of only 256 classes, and you could define up to 256 classes within each policy if the same classes are reused for different policies. If you have two policies, the total number of classes from both policies should not exceed 256. If a policy includes Class-Based Weighted Fair Queueing (CBWFQ) (meaning it contains a bandwidth [or priority] statement within any of the classes), the total number of classes supported is 64. In Cisco IOS versions 12.2(12),12.2(12)T, and 12.2(12)S, this limitation of 256 global class-maps was changed, and it is now possible to configure up to 1024 global class-maps and to use 256 class-maps inside the same policy-map. Вот засада всего 64 очереди CBWFQ. Значит прийдется отказатся от MQC и городить rate-limit ..... |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |