forum.bitel.ru
http://forum.bitel.ru/

ipn + Cisco шлюз
http://forum.bitel.ru/viewtopic.php?f=7&t=2646
Страница 1 из 1

Автор:  a.vozny [ 28 июл 2009, 20:03 ]
Заголовок сообщения:  ipn + Cisco шлюз

подскажите последовательность настройки скриптового шлюза cisco

как описано взамен стандартного , тоесть как я понял все остальное делается по документации из http://www.bgbilling.ru/v4.6/doc/ch05s11s09.html

вот сам скрипт
http://wiki.bgbilling.ru/index.php/%D0% ... %BE_telnet


создаю тип шлюза


конфигурация
user_rule.editor.class=bitel.billing.module.services.ipn.editor.CiscoContractRuleEditor
gate_manager.class=bitel.billing.server.ipn.CiscoGateWorker
use.script=1


комманды

[DEFAULT]
<LOOP>
permit ip host {A} any
</LOOP>
[/DEFAULT]


правило
пустое правило

в скрипт закинул скрипт




далее создаю шлюз
конфигурация

login=userbill
acl.10.name=test
acl.10.from.pos=1000
acl.10.to.pos=100000
timeout=100

ip xx.xx.xx.xx порт 23
ключевое слово указал пароль для юзера





на cisco создан пользователь userbill priv 15 и aaa exec default
и создан access-list extendet test

изменил user и password promt на login/password

подцепляю в договоре ,, выбираю шлюз пишет не доступен

и потом подвисает , ждет наверное ответа ,

указал timeout=100 висит все равно падлец

Автор:  stark [ 29 июл 2009, 18:53 ]
Заголовок сообщения: 

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

Автор:  ilinav [ 21 сен 2012, 16:47 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

Приветствую.

Та же задача работать с шлюзом по telnet.

Настройки аналогичные.
Ошибка в договоре - Шлюз недоступен.

Из server.log:

09-21/14:38:38 INFO [Thread-21] CiscoGateWorker - Running script
09-21/14:38:38 INFO [Thread-21] LoggingPrintStream - before connect
09-21/14:38:38 INFO [Thread-21] LoggingPrintStream - after connect
09-21/14:38:38 INFO [Thread-21] LoggingPrintStream - bill
Password:
09-21/14:38:39 ERROR [Thread-21] CiscoGateWorker - Eval error2: Attempt to resolve method: parseIntString() on undefined variable or class name: Utils
Attempt to resolve method: parseIntString() on undefined variable or class name: Utils : at Line: 237 : in file: inline evaluation of: ``import java.util.HashMap; import java.util.HashSet; import java.util.Map; import . . . '' : Utils .parseIntString ( m .group ( 1 ) )

at bsh.UtilEvalError.toEvalError(UtilEvalError.java:85)
at bsh.UtilEvalError.toEvalError(UtilEvalError.java:90)
at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:99)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at bsh.BSHAssignment.eval(BSHAssignment.java:77)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BSHBlock.eval(BSHBlock.java:47)
at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BSHBlock.eval(BSHBlock.java:47)
at bsh.BSHWhileStatement.eval(BSHWhileStatement.java:72)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BshMethod.invokeImpl(BshMethod.java:362)
at bsh.BshMethod.invoke(BshMethod.java:258)
at bsh.BshMethod.invoke(BshMethod.java:186)
at bsh.Name.invokeLocalMethod(Name.java:917)
at bsh.Name.invokeMethod(Name.java:804)
at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BSHBlock.eval(BSHBlock.java:47)
at bsh.BSHTryStatement.eval(BSHTryStatement.java:86)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BshMethod.invokeImpl(BshMethod.java:362)
at bsh.BshMethod.invoke(BshMethod.java:258)
at bsh.BshMethod.invoke(BshMethod.java:161)
at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:302)
at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:258)
at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:129)
at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:91)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - java.lang.RuntimeException: Attempt to resolve method: parseIntString() on undefined variable or class name: Utils : at Line: 237 : in file: inline evaluation of: ``import java.util.HashMap; import java.util.HashSet; import java.util.Map; import . . . '' : Utils .parseIntString ( m .group ( 1 ) )

09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:272)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:129)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:91)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - Caused by: Attempt to resolve method: parseIntString() on undefined variable or class name: Utils : at Line: 237 : in file: inline evaluation of: ``import java.util.HashMap; import java.util.HashSet; import java.util.Map; import . . . '' : Utils .parseIntString ( m .group ( 1 ) )

09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.UtilEvalError.toEvalError(UtilEvalError.java:85)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.UtilEvalError.toEvalError(UtilEvalError.java:90)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:99)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHAssignment.eval(BSHAssignment.java:77)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:81)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:47)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:81)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:47)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHWhileStatement.eval(BSHWhileStatement.java:72)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:81)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BshMethod.invokeImpl(BshMethod.java:362)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BshMethod.invoke(BshMethod.java:258)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BshMethod.invoke(BshMethod.java:186)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.Name.invokeLocalMethod(Name.java:917)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.Name.invokeMethod(Name.java:804)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:81)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:47)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHTryStatement.eval(BSHTryStatement.java:86)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BSHBlock.eval(BSHBlock.java:81)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BshMethod.invokeImpl(BshMethod.java:362)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BshMethod.invoke(BshMethod.java:258)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bsh.BshMethod.invoke(BshMethod.java:161)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:302)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:258)
09-21/14:38:39 ERROR [Thread-21] LoggingPrintStream - ... 2 more
09-21/14:38:39 ERROR [Thread-21] CiscoGateWorker - Gate unaccesible - 172.16.222.1
09-21/14:38:39 ERROR [Thread-21] CiscoGateWorker - -------------------------
09-21/14:38:39 ERROR [Thread-21] CiscoGateWorker - error: Attempt to resolve method: parseIntString() on undefined variable or class name: Utils : at Line: 237 : in file: inline evaluation of: ``import java.util.HashMap; import java.util.HashSet; import java.util.Map; import . . . '' : Utils .parseIntString ( m .group ( 1 ) )

java.lang.RuntimeException: Attempt to resolve method: parseIntString() on undefined variable or class name: Utils : at Line: 237 : in file: inline evaluation of: ``import java.util.HashMap; import java.util.HashSet; import java.util.Map; import . . . '' : Utils .parseIntString ( m .group ( 1 ) )

at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:272)
at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:129)
at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:91)
Caused by: Attempt to resolve method: parseIntString() on undefined variable or class name: Utils : at Line: 237 : in file: inline evaluation of: ``import java.util.HashMap; import java.util.HashSet; import java.util.Map; import . . . '' : Utils .parseIntString ( m .group ( 1 ) )

at bsh.UtilEvalError.toEvalError(UtilEvalError.java:85)
at bsh.UtilEvalError.toEvalError(UtilEvalError.java:90)
at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:99)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at bsh.BSHAssignment.eval(BSHAssignment.java:77)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BSHBlock.eval(BSHBlock.java:47)
at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BSHBlock.eval(BSHBlock.java:47)
at bsh.BSHWhileStatement.eval(BSHWhileStatement.java:72)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BshMethod.invokeImpl(BshMethod.java:362)
at bsh.BshMethod.invoke(BshMethod.java:258)
at bsh.BshMethod.invoke(BshMethod.java:186)
at bsh.Name.invokeLocalMethod(Name.java:917)
at bsh.Name.invokeMethod(Name.java:804)
at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BSHBlock.eval(BSHBlock.java:47)
at bsh.BSHTryStatement.eval(BSHTryStatement.java:86)
at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
at bsh.BSHBlock.eval(BSHBlock.java:81)
at bsh.BshMethod.invokeImpl(BshMethod.java:362)
at bsh.BshMethod.invoke(BshMethod.java:258)
at bsh.BshMethod.invoke(BshMethod.java:161)
at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:302)
at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:258)
... 2 more

Хелп.

Автор:  Phricker [ 21 сен 2012, 17:09 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

Код:
Attempt to resolve method: parseIntString() on undefined variable or class name: Utils

Автор:  ilinav [ 24 сен 2012, 13:19 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

Спасибо, эту ошибку я тоже заметил. Ссылается на строку с этим кодом: rule = Utils.parseIntString( m.group( 1 ) );
Но у меня была надежда, что скрипт из Вики будет работать и я подружу циску и биллинг без больших проблем.
Теперь у меня предчувствие, что придётся учить язык и разбираться с кодом. Блин, время.

Автор:  Phricker [ 24 сен 2012, 13:28 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

Помоему оно. Работает в 5.2
Единственное поменял log.debug на log.info чтобы можно было смотреть что посылается на циску в режиме info (в дебаге уж слишком много всего сыпалось)
Код:
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
import bitel.billing.common.module.ipn.CiscoRuleOptions;
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.AclOptions;
import bitel.billing.server.ipn.bean.ManadUtils;
import bitel.billing.server.util.DefaultServerSetup;
import ru.bitel.common.Utils;
import bitel.billing.server.util.telnet.TelnetSession;
 
    doSync()
    {
        host = gate.getHost();
        port = gate.getPort();
        gid = gate.getId();
 
        gateSetup = new DefaultServerSetup( gate.getConfig(), "\r\n" );       
 
        login = gateSetup.getStringValue( "login", "root" );
        pswd = gate.getKeyword();
 
        if( log.isInfoEnabled() )
        {
            log.info( gid + " gate: " + host + ":" + port + " login: " + login + " pswd: " + pswd );
        }
 
        //SSHSession session = null;
        session = null;
 
 
        try
        {
 
           session = new TelnetSession( host, port );
 
            session.setLoginPromptSequence( ":" );
           System.out.println( "before connect" );       
            session.connect();
           System.out.println( "after connect" );          
            session.doCommand( login );
            session.setLoginPromptSequence( "#" );
            session.doCommand( pswd );
 
            session.doCommand( "terminal length 0" );
 
            result = new StringBuffer();
 
 
            list = ( session.doCommand( "show access-list" ) );
            result.append( list );
 
            if( log.isInfoEnabled() )
            {
                log.info( gid +" AccessList taking.." );
                log.info( result );
            }
 
            // код ACL - стуктура с описанием
            aclMap = AclOptions.getAclMapById( gateSetup );
 
            // имя ACL - стуктура с описанием
           aclByNameMap = new HashMap();
            for( AclOptions option : aclMap.values() )
            {
                aclByNameMap.put( option.name, option );
            }           
 
            result.append( session.doCommand( "configure terminal" ) );
 
            //  проход по ACL списку с отметкой какие договора открыты           
            markOpenFromRules( list, aclByNameMap );           
 
            // подготовка списка корректирующих команд
            buildCommandsLists( aclMap );
 
 
            for( AclOptions options : aclMap.values() )
            {
                if( options.commands.size() > 0 )
                {
                    //  TODO: extended или нет - надо смотреть в конфиге
                   result.append( session.doCommand( "ip access-list extended " + options.name ) );
 
                    if( log.isInfoEnabled() )
                    {
                        log.info( gid + " ACL " + options.name  );
                    }
 
                    for( String command : options.commands )
                    {
                        if( log.isInfoEnabled() )
                        {
                            log.info( gid + " " + command  );
                        }
                        result.append( session.doCommand( command ) );
                    }                     
                }
            }
 
            //выход из configure
            result.append( session.doCommand( "exit" ) );
           session.doCommandAsync( "exit" );   
 
 
            if (log.isInfoEnabled())
            {
               log.info( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" );
               log.info( result.toString() );
               log.info( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" );
            }
 
            // пауза пока считает команду exit
            Thread.sleep( 100 );
        }
        catch ( Exception e )
        {
           throw new RuntimeException ( e );
        }
        finally
        {
            if( session != null )
            {
                session.disconnect();
            }
        }
    }
 
    buildCommandsLists( aclMap )
    {
        for( status : statusList )
        {
            ruleOptions = CiscoRuleOptions.extractParams( status.rule.getRuleText() );
            options = aclMap.get( ruleOptions.aclId );
 
            // флаг того то правило есть на шлюзе
            flag = false;
 
            // правило для этого договора есть на шлюзе
            if ( options.openRulesFrom.containsKey( ruleOptions.fromPos ) )
            {
                //  если правило есть а юзер заблокирован - удаляем правило
                if ( status.status > 0 )
                {
                    if( options != null )
                    {
                        rules = options.openRulesFrom.get( ruleOptions.fromPos );
 
                        if( rules != null )
                        {
                            for( int rule : rules )
                            {
                                options.commands.add( "no " + rule );
                            }                               
                        }
                    }                   
                }                       
 
                flag = true;
                options.openRulesFrom.remove( ruleOptions.fromPos );
            }
 
            // правила нет, а юзер открыт - добавляем правило
            if ( !flag &&
                status.status == IPNContractStatus.STATUS_OPEN )
            {
                rule = CiscoRuleOptions.clearFromParams( status.rule.getRuleText() );
 
                acl = aclMap.get( ruleOptions.aclId );
                if( acl != null )
                {
                    //  типизированное правило
                    if( status.ruleType != null )
                    {                                            
                       String ruleText = ManadUtils.getRule( status.gateType, status.ruleType );
                        rule = ManadUtils.generateRule( ruleText, rule, null, status.ruleType  );
                     //ipPattern = Pattern.compile( "access list\\s+([\\w\\-]+)" );
                    }               
 
                    int rulePos = ruleOptions.fromPos;
 
                    StringTokenizer st = new StringTokenizer( rule, "\r\n" );
                    while( st.hasMoreTokens() )
                    {
                        String line = st.nextToken().trim();
                        acl.commands.add( (rulePos++) + " " + line );
                    }
                }
            }           
        }
    }
 
    markOpenFromRules( String result, aclByNameMap )
    {
        gid = gate.getId();
       line = null;           
        currentAclOptions = null;       
 
        st = new StringTokenizer( result, "\r\n" );
 
       accessPattern = Pattern.compile( "access list\\s+([\\w\\-]+)" );
        rulePattern = Pattern.compile( "^(\\d+)\\s+((permit)|(deny))" );
 
        while( st.hasMoreTokens() )
        {
            line = st.nextToken().trim();
 
            m = accessPattern.matcher( line );
            if( m.find() )
            {
                currentAcl = m.group( 1 );
                currentAclOptions = aclByNameMap.get( currentAcl );
 
                if( log.isInfoEnabled() )
                {
                    log.info( gid + " ACL " + currentAcl + " not in billing control.." );
                }
 
                continue;
            }
 
            if( currentAclOptions == null )
            {
                continue;
            }
 
            m = rulePattern.matcher( line );
            if( m.find() )
            {
                rule = Utils.parseInt( m.group( 1 ) );
                if( rule < currentAclOptions.fromPos ||
                    rule > currentAclOptions.toPos )
                {
                    if( log.isInfoEnabled() )
                    {
                        log.info( gid + " Skip rule " + line );
                    }
                }
                else
                {
                    ruleFrom =
                        ((rule - currentAclOptions.fromPos) / currentAclOptions.onContact) * currentAclOptions.onContact
                        + currentAclOptions.fromPos;
                    rules = currentAclOptions.openRulesFrom.get( ruleFrom );
                    if( rules == null )
                    {
                        rules = new HashSet();
                        currentAclOptions.openRulesFrom.put( ruleFrom, rules );                       
                    }
 
                    rules.add( rule );
 
                    if( log.isInfoEnabled() )
                    {
                        log.info( gid + " Contact open from rule: " + ruleFrom );
                    }
                }
            }
        }
    }

Автор:  ilinav [ 24 сен 2012, 16:21 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

Спасибо.
Скрипт почти заработал. По телнету логинится на ура. Только в ACL адреса юзеров не добавляются.
В логах
09-24/14:19:27 INFO [Thread-35] CiscoGateWorker - 1 ACL bill not in billing control..
09-24/14:19:27 INFO [Thread-35] CiscoGateWorker - 1 Skip rule 10 permit ip any 192.168.0.0 0.0.255.255
09-24/14:19:27 INFO [Thread-35] CiscoGateWorker - 1 Skip rule 20 permit ip any 172.16.0.0 0.0.255.255
09-24/14:19:27 INFO [Thread-35] CiscoGateWorker - 1 Skip rule 30 permit ip any 10.0.0.0 0.255.255.255
09-24/14:19:27 INFO [Thread-35] CiscoGateWorker - 1 Skip rule 2147483647 deny ip any any

В настройках шлюза acl.1.name=bill

Автор:  Phricker [ 24 сен 2012, 16:23 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

мейби прав нету для пользователя под которым логинитесь

Автор:  ilinav [ 24 сен 2012, 16:28 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

Есть.

С хоста биллинга:

[root@localhost log]# telnet 172.16.222.1
Trying 172.16.222.1...
Connected to 172.16.222.1.
Escape character is '^]'.


User Access Verification

Username: bill
Password:

Cat4507R_PRM_1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Cat4507R_PRM_1(config)#ip access-list extended bill
Cat4507R_PRM_1(config-ext-nacl)#500 permit ip host 1.1.1.1 any
Cat4507R_PRM_1(config-ext-nacl)#no 500 permit ip host 1.1.1.1 any
Cat4507R_PRM_1(config-ext-nacl)#^Z
Cat4507R_PRM_1#sh access-lists bill
Extended IP access list bill
10 permit ip any 192.168.0.0 0.0.255.255
20 permit ip any 172.16.0.0 0.0.255.255
30 permit ip any 10.0.0.0 0.255.255.255
2147483647 deny ip any any

Автор:  stark [ 26 сен 2012, 16:24 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

а какой номер стоит в шлюзе в договоре ?

Автор:  ilinav [ 28 сен 2012, 18:11 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

Заработало.

Если Ip-адреса добавлять в договор как сети, то не работает. Если как диапазоны - работает.

Автор:  stark [ 03 окт 2012, 14:15 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

ilinav писал(а):
Заработало.

Если Ip-адреса добавлять в договор как сети, то не работает. Если как диапазоны - работает.

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

Автор:  ilinav [ 09 окт 2012, 12:52 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

По ограничению скорости на циске как я понимаю готовых решений нет. В вики и на форуме только микротик и линукс.

Автор:  ilinav [ 07 фев 2013, 16:21 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

Кусок скрипта рабочий. Скорость режется при проверке шлюза. Class-map ессно уже существует.

for ( UserStatus status : statusList )
{
cid = status.contractId;
// Скорость из типа правила, применённого на шлюзе
String speed = status.ruleType.getData();
// Имя юзера для Class-map из коментария договора
contract = new ContractManager(con);
Contract ct = contract.getContractByID(cid);
user = ct.getComment();

var speed_int = Integer.parseInt(speed);
var burst = speed_int * 3 / 16;

session.doCommandAsync( "policy-map rate-limit" );
Thread.sleep( 100 );
//Если скорость 0 (по трафику), удаляем юзера из политики
if ( speed.equals("0") ) {
session.doCommandAsync( "no class " + user );
Thread.sleep( 100 );

} else {

session.doCommandAsync( "class " + user );
Thread.sleep( 100 );
session.doCommandAsync( "police " + speed + " " + burst + " conform-action transmit exceed-action drop" );
Thread.sleep( 100 );
}
session.doCommandAsync( "exit" );
Thread.sleep( 100 );
session.doCommandAsync( "exit" );
Thread.sleep( 100 );
}

Автор:  barguzin2 [ 15 фев 2013, 22:33 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

и сколь юзеров и какой поток таким образом полисим ?

Автор:  barguzin2 [ 15 фев 2013, 22:40 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

А вообще на цыске удобно создавать динамические ACL, там не надо следить на seq number и шлюз реализуется путем подключения к цыске по телнет/ссх и подачи для каждого адреса всего одной команды включения или отключения (access-template или clear access-template соответственно).

Автор:  ilinav [ 18 фев 2013, 11:08 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

barguzin2 писал(а):
и сколь юзеров и какой поток таким образом полисим ?


Не больше 80. Все юрики и у каждого от одного ip до двух сеток /24.

Автор:  nur16 [ 16 мар 2013, 02:45 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

А можно вас попросить конфиг циски? И что за циска?
У нас проблема именно с конфой циски, какой выбрать
метод. Спасибо заранее.

Автор:  ilinav [ 18 мар 2013, 11:13 ]
Заголовок сообщения:  Re: ipn + Cisco шлюз

Catalyst 4507

Cat4507R_PRM_1#sh access-lists bill
Extended IP access list bill
10 permit ip any 192.168.0.0 0.0.255.255 (18749813 matches)
20 permit ip any 172.16.0.0 0.0.255.255 (18779334 matches)
30 permit ip any 10.0.0.0 0.255.255.255 (145826 matches)
1000 permit ip host 192.168.30.30 any (134177325 matches)
1001 permit ip host 192.168.30.31 any
1002 permit ip host 192.168.30.32 any (5991618 matches)
...
2147483645 deny ip any any (4568122 matches)

Cat4507R_PRM_1#sh policy-map rate-limit
Policy Map rate-limit
Class Primer1
police 3000000 bps 562500 byte conform-action transmit exceed-action drop
Class Primer2
police 3000000 bps 562500 byte conform-action transmit exceed-action drop

Cat4507R_PRM_1#sh class-map Primer1
Class Map match-any Primer1 (id 2)

Match access-group 120 #Ага, именованные ACL не применяются

Cat4507R_PRM_1#sh run int vlan 223
Building configuration...

Current configuration : 184 bytes
!
interface Vlan223
ip address 172.16.200.1 255.255.255.248
ip access-group bill out
service-policy input rate-limit
service-policy output rate-limit
end

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/