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/ |