BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 26 июн 2025, 18:33

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Ресурсы VLAN
СообщениеДобавлено: 14 апр 2010, 10:10 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Есть оборудование - EdgeCore
настройки шлюза
Конфигурация
Код:
user_rule.editor.class=bitel.billing.module.services.ipn.editor.ManadContractRuleEditor
gate_manager.class=bitel.billing.server.ipn.ManadGateWorker
use.script=1

Команды
Код:
[DEFAULT]


[OPEN]
 <LOOP_PORT>
int eth 1/{PORT}
   no switchport native vlan
   switchport allowed vlan remove 13
   switchport allowed vlan add {VLAN}
   switchport allowed vlan remove 1
   switchport mode access 
 </LOOP_PORT>
[/OPEN]

[CLOSE]
 <LOOP_PORT>
 int eth 1/{PORT}
   no switchport native vlan
   switchport allowed vlan remove {VLAN}
   switchport allowed vlan add 13
   switchport native vlan 13
   switchport allowed vlan remove 1
   switchport mode access   
 </LOOP_PORT>
[/CLOSE]

[/DEFAULT]


Сам скрипт-
Код:
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.StringTokenizer;
 
import bitel.billing.common.module.ipn.IPNContractStatus;
import bitel.billing.server.ipn.GateWorker;
import bitel.billing.server.ipn.UserStatus;
import bitel.billing.server.ipn.bean.*;
import ru.bitel.bgbilling.server.util.DefaultSetup;
import bitel.billing.server.util.Utils;
import bitel.billing.server.util.telnet.OperationTimedoutException;
import bitel.billing.server.util.telnet.TelnetSession;
import ru.bitel.bgbilling.common.DefaultSetup;
import bitel.billing.common.IPUtils;
import bitel.billing.server.util.Utils;
import bitel.billing.server.util.telnet.OperationTimedoutException;
import bitel.billing.server.util.telnet.TelnetSession;
import bitel.billing.server.util.telnet.ansi.TelnetAnsiSession;
import ru.bitel.bgbilling.modules.ipn.server.bean.GatePortManager;
import java.sql.*;
 
 
//includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/manad" );
 
protected void doSync()
{
   log.info( "start of cisco........................................................");
   host = gate.getHost();
   port = gate.getPort();
 

   DefaultSetup gateSetup = new DefaultSetup( gate.getConfig(), "\r\n" );       

   pswd = gate.getKeyword();      
    login = gateSetup.getStringValue( "login");
    timeout = gateSetup.getIntValue( "timeout", 2000 );      
   

   result = new StringBuffer();


   if( log.isDebugEnabled() )
   {
       log.debug( gate.getId() + " gate: " + host + ":" + port  + " login: " + login + " passwd: " +        pswd );
   }


   log.debug("before connect");
   TelnetAnsiSession session = new TelnetAnsiSession( host, port);      
   session.setTimeout( timeout );
    session.setSocketTimeTimeout( timeout );   
   session.setLoginPromptSequence( ": " );                  
   session.connect();
   log.debug("after connect");

   result.append( session.doCommand( login ) );
   log.debug("after login");
   session.setLoginPromptSequence( "#" );                  
   result.append( session.doCommand( pswd ) );
   log.debug("after pswd");
   
   log.debug( "execute commands" );
   doCommands( session, result, gateSetup );
   
   //выход из режима config
   result.append( session.doCommand( "exit" ) );

   session.doCommandAsync( "exit" );


   log.info("!!!!!!!!!!!!!!!!start of edgecore!!!!!!!!!!!!!!!!");
   log.info( result );
   log.info("!!!!!!!!!!!!!!! end of edgecore !!!!!!!!!!!!!!!!!");      

   log.debug( "ok" );
 
 
   log.info( "end of cisco........................................................");
}
 
 
private void doCommands( TelnetAnsiSession session, StringBuffer result, gateSetup) throws IOException, OperationTimedoutException
{      
   result.append( session.doCommand( "terminal length 0" ) );   
   
   onList = gateSetup.getStringValue( "on.list", "on");
   offList = gateSetup.getStringValue( "off.list", "off" );
   
   portResult = getPortResult( session );

   speedResult = getSpeedResult( session );


   result.append( session.doCommand( "config" ) );
   log.debug("after config");
   
 
   log.info( "!!!!!!!!!!!!!!!!!!!!!!!!!!portResult!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" );   
   log.info( portResult );   
   log.info( "!!!!!!!!!!!!!!!!!!!!!!!!!! end portResult!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" );   

   log.info( "!!!!!!!!!!!!!!!!!!!!!!!!!!speedResult!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" );   
   log.info( speedResult );   
   log.info( "!!!!!!!!!!!!!!!!!!!!!!!!!! end speedResult!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" );   

   GatePortManager man = new GatePortManager( con, mid );
 
   for( UserStatus status : statusList )
   {
      gateId  = gate.getId();
      log.info("gateId=" + gateId);
      ports = man.getGatePorts( status.contractId, gateId );
      boolean allInOpened = true;
      //если хотя бы один порт не открыт, то считает что не открыт      
      for ( port : ports )
      {
         allInOpened = portExist(port, portResult, onList);
         if ( !allInOpened )
         {
            break;         
         }      
      }   

      boolean allInClosed = true;
      for ( port : ports )
      {
         allInClosed = portExist(port, portResult, offList );
         if ( !allInClosed )
         {
            break;         
         }      
      }   

      boolean allSpeedCorrect = true;
      speedCur = getCurrentSpeed( gateSetup, status.contractId );

      log.debug( "speedCur=" + speedCur );

      for ( port : ports )
      {
         
         speed = getSpeed( port, speedResult, offList );
         if (! speed.equals( speedCur ) )
         {
            allSpeedCorrect = false;
            break;
         }
      }

      log.debug( "allInOpened=" + allInOpened );
      log.debug( "allInClosed=" + allInClosed );   
      log.debug( "allSpeedCorrect=" + allSpeedCorrect );   
      
      List rules = null;
      if (status.status == IPNContractStatus.STATUS_OPEN && !allInOpened  )
      {
         rules = getOpenRules( status, ports );
      }          
      else if (status.status != IPNContractStatus.STATUS_OPEN && !allInClosed )
      {
         rules = getCloseRules( status, ports );
      }
       
      //sendRules( rules, session, result);
      if (rules != null )
      {
         for ( String rule : rules )
         {               
            log.debug  ("command=" + rule );
            result.append(  session.doCommand( rule ) );            
         }
      }


      if ( !allSpeedCorrect )
      {
         log.debug( "correcting speed..." );
         for ( port : ports )
         {
            result.append(  session.doCommand( "int e 1/" + port ) );            
            result.append(  session.doCommand( "speed-duplex " +  speedCur ) );            
            result.append(  session.doCommand( "exit" ) );            
         }
      }
      
   }      
}
 
getOpenRules( status, ports )
{
    return getRules( status, "\\[OPEN\\](.*)\\[/OPEN\\]", ports );
}
 
getCloseRules( status, ports )
{
    return getRules( status, "\\[CLOSE\\](.*)\\[/CLOSE\\]", ports );
}
 
 
getRules(  status, template, ports )
{
   // пользовательское правило, без типа - то все оставляем как есть
   rule = status.rule.getRuleText();
   log.info("rule=" + rule);
 
   //типизированное правило
   if( status.ruleType != null )
 
   {   
       rule = generateRule( rule, status.gateType, status.ruleType, ports );
   }
 
   log.info("rule=" + rule);
 
   pattern = Pattern.compile( template, Pattern.DOTALL );
   m = pattern.matcher( rule );
   if (m.find())
   {
       rule = m.group( 1 );
   }      
 
   rule.replaceAll( "\r", "" );
 
 
   parts  = rule.split( "\n" );
 
   result = new ArrayList();
   for ( String part : parts )
   {
      if ( !Utils.isEmptyString( part ))
      {
         result.add( part );
      }
   }
 
   return result;
}      
 
generateRule( addresses, gateType, ruleType, ports )
{      
   ruleText = ManadUtils.getRule( gateType, ruleType );

   replacements =  new HashMap();
 
   loops = ManadUtils.getAddresLoops( addresses );

   String [] ports_ = new String[ports.size()];
   for ( int i = 0; i < ports_.length; i++)
   {
      ports_[i] = String.valueOf( ports.get(i) );
   }
 
   //адреса
   p = new LoopPattern();      
   p.setLoopPatern( "LOOP_PORT" );
   p.setReplace( "\\{PORT\\}" );
   p.setObjects( ports_ );      
   loops.add( p );
 
    return ManadUtils.generateRule( ruleText, replacements, ruleType, loops );      
}
 
 
private portExist ( port, buffer, list )
{
   Pattern pattern = Pattern.compile( ".*Interface ethernet 1/" + port +"\r\n IP access-group " + list + " in" );
   Matcher m = pattern.matcher( buffer );
   found = m.find();
   log.debug( found ? "port found" : "port not found" );
 
   return found;
}

 
private String getSpeed ( port, buffer, list )
{
   speed = "";   
   Pattern pattern = Pattern.compile( ".*Eth 1/ " + port + "\\s+.+\\s+\\d+\\s+\\d+\\s+(.+?)\\s+" );
   Matcher m = pattern.matcher( buffer );
   log.debug( "getting speed.." );
   if ( m.find() )
   {
      speed = m.group( 1 );   
      log.debug( "speed=" + speed + ";port=" + port );
   }
   return speed;
}
 
private getPortResult( session )
{
   return session.doCommand( "show ip access-group");
}
 
private getSpeedResult( session )
{
   return session.doCommand( "show interface brief");
}


private getCurrentSpeed( gateSetup, cid )
{
   
   lowSpeed = gateSetup.getStringValue( "speed.low", "10full");
   highSpeed = gateSetup.getStringValue( "speed.high", "100full");
   mid =    gateSetup.getIntValue( "npay.mid", 4 );
   sid =    gateSetup.getIntValue( "npay.sid", 11 );   

   String result = lowSpeed;
   
   String query =  "Select * from npay_service_object_" + mid + " WHERE cid = " + cid + " AND sid = " + sid;
   PreparedStatement ps = con.prepareStatement( query );
   ResultSet rs = ps.executeQuery();
   if ( rs. next() )
   {
      result = highSpeed;
   }
   
   return result;   
}


Как тут добавить возможность того чтоб при назначении VLAN в договоре он определялся в командах
тут
Код:
switchport allowed vlan add {VLAN}


Вложения:
VLAN.png
VLAN.png [ 4.72 КБ | Просмотров: 56742 ]

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 15 апр 2010, 15:16 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
а чем вам не нравится делать это в командах в тегах [OPEN][/OPEN] ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 15 апр 2010, 15:56 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
stark писал(а):
а чем вам не нравится делать это в командах в тегах [OPEN][/OPEN] ?

На самом деле в биллинге нет возможности выделения одного вилана на несколько договоров. Пришлось руками все прописывать %)

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 21 апр 2010, 13:00 
меня тоже интересует этот вопрос, появится ли возможность выделения влана на несколько договоров, насколько я понимаю, то в пределах разных шлюзов cisco это возможно, или я ошибаюсь. Интересует возможность выделения влана из диапазона для шлюза (cisco, zyxel)
Сейчас получаю влан из параметров договора, что не совсем удобно, нужно отслеживать при заполнении, вероятность ошибки велика.
Код:
getVlan( cid , pid )
{
   int result = 1102;
   String query =  "select val from contract_parameter_type_1 where cid=" + cid + " and pid= " + pid;
   PreparedStatement ps = con.prepareStatement( query );
   ResultSet rs = ps.executeQuery();
   rs.first();
   if ( rs. isFirst() )
   {
      result = rs.getInt(1);
   }
   return result;   
}


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 22 апр 2010, 13:12 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
зачем нужны vlan на несколько договоров? . В текущей схеме vlan заводится для схемы vlan на пользоваетля. Вам нужжно именно для конретного пользователя имеющего несколь договоров заводить один общий vlan чтобы он сидел в одном vlan на несколких шлюзах cisco? Или вы хотите просто коммутатор доступа ( zyxel ) зауснуть в один vlan ? тогда вам вообще не надо заводить vlan . Просто пропишите его в конфигурации шлюза и все ...Для чего вам vlan и пределах чего он должен быть уникален ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 22 апр 2010, 13:31 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
На 300 шлюзов делать 300 отдельных конфигураций О_О (хотя мне так и пришлось делать), а так можно просто было переменной сделать

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 22 апр 2010, 13:41 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
skyb писал(а):
На 300 шлюзов делать 300 отдельных конфигураций О_О (хотя мне так и пришлось делать), а так можно просто было переменной сделать


не понял ..Т.е. вы все равно должны зайти в шлюз и указать vlan ?

Или как вы себе это представляете ? ..Вы хотите чтобы vlan на коммутатор выделялся автоматом ..Т.е уникальный vlan в приделах cisco ( пул из 300 штук ) , из него бралcz автоматом первый свободный и выделялся на шлюз доступа zyxel . так ? я как и спросил что вы хотите ..потому как mrustik-у, напрмер, вроде как нужно не это, насколько я понял ..т.е тут уже как минимум 2 схемы выделения vlan просят . я правильно понимаю ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 22 апр 2010, 13:46 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Топикпастер я :)
Охото так что бы было как с портами, тоесть указываеш его в 10 договорах и в соответствии с ними уже работать :)

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 22 апр 2010, 13:56 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
skyb писал(а):
Топикпастер я :)
Охото так что бы было как с портами, тоесть указываеш его в 10 договорах и в соответствии с ними уже работать :)


Т.е вам нужно убрать автоматическое выделение и проверку на униакальность чтобы вы забивали на договоре что хотите . Это судя по ваше фразе :
Цитата:
На самом деле в биллинге нет возможности выделения одного вилана на несколько договоров


У вас уже есть параметр договора как предложил mrustik . в чем отличие ? сформулируете что что вы хотите ..

Я чисто интуитивно догадыааюсь что вам нужен vlan на шлюз, тогда и в договоре вообще ничего указывать не надо .Но это мои домыслы, т.к с просьбой подобной схемы я сталкивался .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 22 апр 2010, 15:43 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Ну давайте с примерами я объясню

В договоре есть параметр vlan, как на скрине, и он висит на каком то шлюзе. Хотелось бы чтобы в скрипте для шлюзов он подставлялся в какую либо переменную {vlan} и брался в зависимости от учетки к которой он присвоен. А то просто получается что я сделал команды [open] [/open] и там руками вбивал нужный vlan


Вложения:
vlan.png
vlan.png [ 15.57 КБ | Просмотров: 56678 ]

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 23 апр 2010, 10:45 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
skyb писал(а):
Ну давайте с примерами я объясню

В договоре есть параметр vlan, как на скрине, и он висит на каком то шлюзе. Хотелось бы чтобы в скрипте для шлюзов он подставлялся в какую либо переменную {vlan} и брался в зависимости от учетки к которой он присвоен. А то просто получается что я сделал команды [open] [/open] и там руками вбивал нужный vlan


Мы с вами о разных вещах говорим . На договоре можно завести vlan .. И он подставится в тег {VID} для шлюзов (cisco2 и zyxel). Но там есть проверка на уникальность vlan - вы не можете завести любой .Т.е вам получается нужно дать возмождно заводить любой vlan . Т.е добавить опцию, которая отключет проверку . и все .. В 5.1 можно выодить номер vlan вручную , но там, кажется , все равно есть проверка . Т.е нужно просто опциональное отключение проверки.

Я попытался узнать - зачем вам нужен любой vlan на договоре без всяких проверок на уникальность , может быть есть какой-то принцип(может его вообще надо не на догоре заводить , а на шлюзе например) .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 23 апр 2010, 10:49 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Да было бы не плохо отключить проверку уникальности, например в настройках ipn, или ещё гденить. На шлюзе его заводить - тоесть, несовсем понял.
А когда 5.1 выйдет?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 23 апр 2010, 11:13 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
Один влан на несколько договоров может понадобиться при оказании услуги передачи данных. Один влан и несколько точек подключения, каждая со своим субдоговором.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 28 апр 2010, 16:11 
stark писал(а):
зачем нужны vlan на несколько договоров? . В текущей схеме vlan заводится для схемы vlan на пользоваетля. Вам нужжно именно для конретного пользователя имеющего несколь договоров заводить один общий vlan чтобы он сидел в одном vlan на несколких шлюзах cisco? Или вы хотите просто коммутатор доступа ( zyxel ) зауснуть в один vlan ? тогда вам вообще не надо заводить vlan . Просто пропишите его в конфигурации шлюза и все ...Для чего вам vlan и пределах чего он должен быть уникален ?


у меня 10000 договоров, как я их в 4096 вланов засунуть????
Выделяю вланы на район (шлюз сиска), там они уникальны, но в биллинге у меня 8 районов, соответственно 8 договоров с одинаковыми вланами.


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 28 апр 2010, 16:24 
Уникальность влана в районе проверяю обязательно, сейчас требуют, чтобы автоматом влан выделялся. Пишу скрипт.


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 28 апр 2010, 16:49 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
mrustik писал(а):
stark писал(а):
зачем нужны vlan на несколько договоров? . В текущей схеме vlan заводится для схемы vlan на пользоваетля. Вам нужжно именно для конретного пользователя имеющего несколь договоров заводить один общий vlan чтобы он сидел в одном vlan на несколких шлюзах cisco? Или вы хотите просто коммутатор доступа ( zyxel ) зауснуть в один vlan ? тогда вам вообще не надо заводить vlan . Просто пропишите его в конфигурации шлюза и все ...Для чего вам vlan и пределах чего он должен быть уникален ?


у меня 10000 договоров, как я их в 4096 вланов засунуть????
Выделяю вланы на район (шлюз сиска), там они уникальны, но в биллинге у меня 8 районов, соответственно 8 договоров с одинаковыми вланами.


Можно как вариант завести 8 шлюзов cisco2 в биллинге, в приделах каждого vlan будет уникальным .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 29 апр 2010, 05:04 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
mrustik писал(а):
Уникальность влана в районе проверяю обязательно, сейчас требуют, чтобы автоматом влан выделялся. Пишу скрипт.

А можно подробней, интересно же :)

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 29 апр 2010, 20:46 
stark писал(а):
Можно как вариант завести 8 шлюзов cisco2 в биллинге, в приделах каждого vlan будет уникальным .

я так и предполагал, завел 8 шлюзов сиско. Я задавал вопрос по поводу уникальности влан в пределах одного шлюза, но поддверждения не получил.


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 13 май 2010, 14:49 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
mrustik писал(а):
stark писал(а):
Можно как вариант завести 8 шлюзов cisco2 в биллинге, в приделах каждого vlan будет уникальным .

я так и предполагал, завел 8 шлюзов сиско. Я задавал вопрос по поводу уникальности влан в пределах одного шлюза, но поддверждения не получил.


не вижу вопроса ..Если выделять vlan , то внутри одного шлюба он будет уникальным . Т.е для каждого договора - уникальный vlan внутри шлюза .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 01 июн 2010, 11:56 
skyb писал(а):
А можно подробней, интересно же :)


Проверка уникальности влан в квартале(кольцо) после ввода VLAN, ставится на событие "Перед изменением параметра договора"
Код:
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.script.event.*;
import java.util.*;

VLAN_PARAM_ID = 33; //код параметра VLAN в договоре
paramId = event.getParamId();
if( paramId == VLAN_PARAM_ID )
{
   VLAN = event.getValue();
//Определяем квартал (кольцо), к которому принадлежит договор
   ps = con.prepareStatement( "SELECT house.quarterid FROM contract_parameter_type_2 as address "+
             "LEFT JOIN address_house as house ON house.id=address.hid "+
            "WHERE address.cid=? AND address.pid=24;");
   ps.setInt(1, event.getContractID());
   rs = ps.executeQuery();
   if(rs.next()){
      quarterId = rs.getInt( 1 );
//      print("quarterId = " + quarterId);
//Если введенный влан в этом кольце
      ps = con.prepareStatement( "SELECT contract.title, vlan.val FROM contract "+
             "LEFT JOIN contract_parameter_type_2 as address ON contract.id=address.cid AND address.pid=24 "+
             "LEFT JOIN contract_parameter_type_1 as vlan ON contract.id=vlan.cid AND vlan.pid=33 "+
             "LEFT JOIN address_house as house ON house.id=address.hid "+
             "WHERE  house.quarterid=? AND vlan.val=? AND contract.status != 3;");
      ps.setInt(1, quarterId);
      ps.setString(2, VLAN);
      rs = ps.executeQuery();
      if(rs.next()){
           event.setError( "VLAN - " + VLAN + " присвоен договору №" +rs.getString( 1 ));
           return;
      }
   }
}

Новый влан в квартале(кольцо), ставится на событие "Изменен параметр договора", после ввода адреса в договоре в лог пишется свободный влан, можно сразу в договор писать, или выводить информационное окно, но как вывести пока не разобрался до конца.
Код:
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.script.event.*;
import java.util.*;
 
VLAN_PARAM_ID = 33; //код параметра VLAN в договоре
ADRESS_PARAM_ID = 24; // код параметра адрес в договоре
paramId = event.getParamId();
if( paramId == ADRESS_PARAM_ID )
{
   ps = con.prepareStatement( "SELECT house.quarterid FROM contract_parameter_type_2 as address "+
             "LEFT JOIN address_house as house ON house.id=address.hid "+
            "WHERE address.cid=? AND address.pid=24;");
   ps.setInt(1, event.getContractID());
   rs = ps.executeQuery();
   if(rs.next()){
      quarterId = rs.getInt( 1 );
//      print("quarterId = " + quarterId);
//Если введенный влан в этом кольце
      ps = con.prepareStatement( "SELECT vlan.val FROM contract "+
             "LEFT JOIN contract_parameter_type_2 as address ON contract.id=address.cid AND address.pid=24 "+
             "LEFT JOIN contract_parameter_type_1 as vlan ON contract.id=vlan.cid AND vlan.pid=33 "+
             "LEFT JOIN address_house as house ON house.id=address.hid "+
             "WHERE  house.quarterid=? AND contract.status != 3 ORDER BY vlan.val;");
      ps.setInt(1, quarterId);
      rs = ps.executeQuery();
//      print("VLAN = " + VLAN);
//      print("ContractID = " + event.getContractID());
      VLAN = 1100; //использую диапазон влан 1100-1850
      while(rs.next()){
//         print( "VLAN = " + rs.getString( 1 ));
         if ( rs.getString( 1 ) != null ){
            if ( VLAN != rs.getInt( 1 )){
//              event.setError( "VLAN - " + String.valueOf(VLAN) + " свободен");
               print ( "VLAN - " + String.valueOf(VLAN) + " свободен");
                  return;
            }
            VLAN = VLAN + 1;
            if ( VLAN > 1850 ){
//              event.setError( "нет свободных VLAN ");
               print( "нет свободных VLAN ");
                  return;
            }
         }
      }
   }
}


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 15 июн 2011, 19:29 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Апну тему . В связи с разработкой модуля inet и добавления в нем возможности в нем задавать vlan, хотел бы подытожить схемы использования vlan.

1. Vlan на пользователя, vlan уникален в приделах кого-то шлюза в цепочке (например cisco) . C этим ясно . В inet для этого будет заводится категория vlan - в ней конкретные диапазоны, и категория будет привязаться на шлюз.

2. vlan уникальный в приделах какой-то группы , например район как у mrustik в этой теме . В inet тоже возможно , будет заводится общая категория и она будет прописываться на все шлюзы этого района.

3. нужно ли такое ?
vdd писал(а):
Один влан на несколько договоров может понадобиться при оказании услуги передачи данных. Один влан и несколько точек подключения, каждая со своим субдоговором.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 15 июн 2011, 20:50 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 08 мар 2007, 20:44
Сообщения: 1570
Откуда: Челябинск
Карма: 18
будет ли поддерживаться такая схема как у нас:
vlan на префикс (или диапазон) без использования субдоговоров?

_________________
Интернет и телефония оптом со склада, или в розницу


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 16 июн 2011, 03:23 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
stark писал(а):
3. нужно ли такое ?
vdd писал(а):
Один влан на несколько договоров может понадобиться при оказании услуги передачи данных. Один влан и несколько точек подключения, каждая со своим субдоговором.

Да, потому что продавать телефонию допустим - необходимо отдельный влан

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 16 июн 2011, 08:04 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
да, нужно
схема с P2P, P2MP L2 VPN с одним Vlan id сквозным на разных шлюзах
но при этом разные шлюзы, что укладывается в схему 1 и 2
(c)devs


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 16 июн 2011, 12:41 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
max писал(а):
будет ли поддерживаться такая схема как у нас:
vlan на префикс (или диапазон) без использования субдоговоров?


Что значит префикс ? Диапазон чего ? Подробнее можно ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 16 июн 2011, 12:54 
3. Есть необходимость диапазона вланов, которые не привязываются к группе, а прокинуты по всему городу для какого-то договора, соответственно id должны быть уникальны в этом диапазоне.
Тоже заводил доп параметр договора и проверяю уникальность.


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 17 июн 2011, 19:38 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 08 мар 2007, 20:44
Сообщения: 1570
Откуда: Челябинск
Карма: 18
stark писал(а):
max писал(а):
будет ли поддерживаться такая схема как у нас:
vlan на префикс (или диапазон) без использования субдоговоров?


Что значит префикс ? Диапазон чего ? Подробнее можно ?

Префикс=подсеть
Диапазон IP адресов в модуле IPn.
У нас используется схема Vlan per User.
Представьте что у клиента две точки, и обе на безлимите, мы в таком случае обходимся без субдоговоров, но с одним шлюзом! А вилан получается присваивается шлюзу, а не подсети....

_________________
Интернет и телефония оптом со склада, или в розницу


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 20 июн 2011, 12:28 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
max писал(а):
stark писал(а):
max писал(а):
будет ли поддерживаться такая схема как у нас:
vlan на префикс (или диапазон) без использования субдоговоров?


Что значит префикс ? Диапазон чего ? Подробнее можно ?

Префикс=подсеть
Диапазон IP адресов в модуле IPn.
У нас используется схема Vlan per User.
Представьте что у клиента две точки, и обе на безлимите, мы в таком случае обходимся без субдоговоров, но с одним шлюзом! А вилан получается присваивается шлюзу, а не подсети....


Не понял . Вы обходитесь одном договором и одним шлюзом ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 20 июн 2011, 13:04 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Хм, это тогда получается vlan per two users :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ресурсы VLAN
СообщениеДобавлено: 21 июн 2011, 20:04 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 08 мар 2007, 20:44
Сообщения: 1570
Откуда: Челябинск
Карма: 18
stark писал(а):
max писал(а):
stark писал(а):
max писал(а):
будет ли поддерживаться такая схема как у нас:
vlan на префикс (или диапазон) без использования субдоговоров?


Что значит префикс ? Диапазон чего ? Подробнее можно ?

Префикс=подсеть
Диапазон IP адресов в модуле IPn.
У нас используется схема Vlan per User.
Представьте что у клиента две точки, и обе на безлимите, мы в таком случае обходимся без субдоговоров, но с одним шлюзом! А вилан получается присваивается шлюзу, а не подсети....


Не понял . Вы обходитесь одном договором и одним шлюзом ?

да
Смотрите. Есть один физический шлюз например цыска 6509.
Есть клиент который имеет две точки обе на безлимите.
В первой безлимит 1 мбит во второй 10 мбит
Так как это безлимит не имеет смысл городить субдоговора.
Мы просто забиваем ему два префикса (сети) в модуле ipn
но!
вилана тоже треба два! а не один.
А та как шлюз физически один, то получается что незя привизать префикс клиента к вилану чего бы очень хотелось!

_________________
Интернет и телефония оптом со склада, или в розницу


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.066s | 66 Queries | GZIP : On ]