forum.bitel.ru http://forum.bitel.ru/ |
|
У кого-нибудь настроен шлюз Mikrotik на модуле IPN? http://forum.bitel.ru/viewtopic.php?f=7&t=7941 |
Страница 1 из 1 |
Автор: | mash55 [ 09 апр 2013, 17:21 ] |
Заголовок сообщения: | У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
Не могу разобраться с настройкой шлюза IPN типа Mikrotik. В Типы шлюзов --> Mikrotik --> Конфигурация ввел Код: user_rule.editor.class=bitel.billing.module.services.ipn.editor.MikrotikContractRuleEditor gate_manager.class=bitel.billing.server.ipn.MikrotikGateWorker На вкладке Шлюзы ввел данные для подключения по SSH (22 порт). В конфигурации: Код: login=xxx timeout=2000 При попытке закрыть/открыть шлюз у клиента - в комментарии пишет "Шлюз недоступен". Пробовал использовать подключение через telnet (класс MikrotikTelnetGateWorker и порт 23), сниффером вижу обмен (биллинг передает логин и пароль, логин и пароль верные), но результат тот же. Помогите! |
Автор: | stark [ 09 апр 2013, 17:36 ] |
Заголовок сообщения: | Re: У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
mash55 писал(а): Не могу разобраться с настройкой шлюза IPN типа Mikrotik. В Типы шлюзов --> Mikrotik --> Конфигурация ввел Код: user_rule.editor.class=bitel.billing.module.services.ipn.editor.MikrotikContractRuleEditor gate_manager.class=bitel.billing.server.ipn.MikrotikGateWorker На вкладке Шлюзы ввел данные для подключения по SSH (22 порт). В конфигурации: Код: login=xxx timeout=2000 При попытке закрыть/открыть шлюз у клиента - в комментарии пишет "Шлюз недоступен". Покажите ошибку из лога сервера . |
Автор: | mash55 [ 10 апр 2013, 09:23 ] |
Заголовок сообщения: | Re: У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
Код: 04-10/10:24:36 INFO [http-8080-1] Setup - Load config for mid=3
04-10/10:24:38 INFO [http-8080-1] Setup - Load config for mid=1 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - java.lang.RuntimeException: java.util.concurrent.TimeoutException 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - at bitel.billing.server.ipn.MikrotikGateWorker.doSync(MikrotikGateWorker.java:43) 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:147) 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107) 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - Caused by: java.util.concurrent.TimeoutException 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - at bitel.billing.server.util.terminal.TerminalManager.readFromInput(TerminalManager.java:81) 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - at bitel.billing.server.util.terminal.AbstractTerminalSession.connect(AbstractTerminalSession.java:61) 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - at bitel.billing.server.ipn.MikrotikGateWorker.doSync(MikrotikGateWorker.java:38) 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - ... 2 more 04-10/10:24:48 ERROR [Thread-15] MikrotikGateWorker - Gate unaccesible - 172.17.1.1 04-10/10:24:48 ERROR [Thread-15] MikrotikGateWorker - ------------------------- 04-10/10:24:48 ERROR [Thread-15] MikrotikGateWorker - error: java.util.concurrent.TimeoutException java.lang.RuntimeException: java.util.concurrent.TimeoutException at bitel.billing.server.ipn.MikrotikGateWorker.doSync(MikrotikGateWorker.java:43) at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:147) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107) Caused by: java.util.concurrent.TimeoutException at bitel.billing.server.util.terminal.TerminalManager.readFromInput(TerminalManager.java:81) at bitel.billing.server.util.terminal.AbstractTerminalSession.connect(AbstractTerminalSession.java:61) at bitel.billing.server.ipn.MikrotikGateWorker.doSync(MikrotikGateWorker.java:38) ... 2 more |
Автор: | skyb [ 10 апр 2013, 09:53 ] |
Заголовок сообщения: | Re: У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
mash55 писал(а): Код: 04-10/10:24:36 INFO [http-8080-1] Setup - Load config for mid=3 04-10/10:24:38 INFO [http-8080-1] Setup - Load config for mid=1 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - java.lang.RuntimeException: java.util.concurrent.TimeoutException 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - at bitel.billing.server.ipn.MikrotikGateWorker.doSync(MikrotikGateWorker.java:43) 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:147) 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107) 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - Caused by: java.util.concurrent.TimeoutException 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - at bitel.billing.server.util.terminal.TerminalManager.readFromInput(TerminalManager.java:81) 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - at bitel.billing.server.util.terminal.AbstractTerminalSession.connect(AbstractTerminalSession.java:61) 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - at bitel.billing.server.ipn.MikrotikGateWorker.doSync(MikrotikGateWorker.java:38) 04-10/10:24:48 ERROR [Thread-15] LoggingPrintStream - ... 2 more 04-10/10:24:48 ERROR [Thread-15] MikrotikGateWorker - Gate unaccesible - 172.17.1.1 04-10/10:24:48 ERROR [Thread-15] MikrotikGateWorker - ------------------------- 04-10/10:24:48 ERROR [Thread-15] MikrotikGateWorker - error: java.util.concurrent.TimeoutException java.lang.RuntimeException: java.util.concurrent.TimeoutException at bitel.billing.server.ipn.MikrotikGateWorker.doSync(MikrotikGateWorker.java:43) at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:147) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107) Caused by: java.util.concurrent.TimeoutException at bitel.billing.server.util.terminal.TerminalManager.readFromInput(TerminalManager.java:81) at bitel.billing.server.util.terminal.AbstractTerminalSession.connect(AbstractTerminalSession.java:61) at bitel.billing.server.ipn.MikrotikGateWorker.doSync(MikrotikGateWorker.java:38) ... 2 more Доступ с биллинга на шлюз точно есть? пишет же в логах что не доступен |
Автор: | mash55 [ 10 апр 2013, 11:06 ] |
Заголовок сообщения: | Re: У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
skyb писал(а): Доступ с биллинга на шлюз точно есть? пишет же в логах что не доступен Да, с сервера биллинга захожу на 172.17.1.1 и по SSH, и по telnet |
Автор: | stark [ 10 апр 2013, 11:15 ] |
Заголовок сообщения: | Re: У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
У вас какая версия билинга? Шлюз повисает при установке соединения , скорее всего приходят в концt не те символы, которые ожидаются и он ждет пока не наступит timeout. Могло в какой-то версии mikrotik что-то поменяться . У вас логин как описан для шлюза? в нем есть спецсимволы типа "admin+ct"? |
Автор: | mash55 [ 10 апр 2013, 11:40 ] |
Заголовок сообщения: | Re: У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
stark писал(а): У вас какая версия билинга? Код: Клиент: вер. 5.1 сборка 659 от 23.04.2012 12:43:57 os: Windows XP; java: Java HotSpot(TM) Client VM, v.1.6.0_22 card вер. 5.1 сборка 172 от 21.01.2012 01:57:32 ipn вер. 5.1 сборка 252 от 18.04.2012 18:24:50 npay вер. 5.1 сборка 206 от 28.03.2012 09:16:57 reports вер. 5.1 сборка 180 от 11.03.2012 16:46:16 trayinfo вер. 5.1 сборка 147 от 21.01.2012 01:57:54 Могу попробовать поставить 5.2 на тестовую машину, но мне кажется, это не поможет. Mikrotik: Код: MikroTik RouterOS 5.16 (c) 1999-2012 спец.символов в логине нет. Код: login=bgbilling
timeout=2000 |
Автор: | stark [ 10 апр 2013, 11:49 ] |
Заголовок сообщения: | Re: У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
mash55 писал(а): stark писал(а): У вас какая версия билинга? Код: Клиент: вер. 5.1 сборка 659 от 23.04.2012 12:43:57 os: Windows XP; java: Java HotSpot(TM) Client VM, v.1.6.0_22 card вер. 5.1 сборка 172 от 21.01.2012 01:57:32 ipn вер. 5.1 сборка 252 от 18.04.2012 18:24:50 npay вер. 5.1 сборка 206 от 28.03.2012 09:16:57 reports вер. 5.1 сборка 180 от 11.03.2012 16:46:16 trayinfo вер. 5.1 сборка 147 от 21.01.2012 01:57:54 Странно . у вас как будто более старый код. Там в 5.1 недавно добавлена информация отладочная(в 5.2 нет пока ) . Должно в логи выводить "timeout wait exceeded." Обновите 5.1 . |
Автор: | mash55 [ 10 апр 2013, 13:18 ] |
Заголовок сообщения: | Re: У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
обновил до текущей Код: 04-10/13:14:53 INFO [bitel.billing.server.contract.action.ActionContractInfo] Setup - Load config for mid=3
04-10/13:14:55 INFO [bitel.billing.server.ipn.action.ActionAddressContractInfo] Setup - Load config for mid=1 04-10/13:15:21 ERROR [Thread-16] TerminalManager - timeout wait exceeded....Last buffer= MMM MMM KKK TTTTTTTTTTT KKK MMMM MMMM KKK TTTTTTTTTTT KKK MMM MMMM MMM III KKK KKK RRRRRR OOOOOO TTT III KKK KKK MMM MM MMM III KKKKK RRR RRR OOO OOO TTT III KKKKK MMM MMM III KKK KKK RRRRRR OOO OOO TTT III KKK KKK MMM MMM III KKK KKK RRR RRR OOOOOO TTT III KKK KKK MikroTik RouterOS 5.16 (c) 1999-2012 http://www.mikrotik.com/ n 04-10/13:15:21 ERROR [Thread-16] LoggingPrintStream - java.lang.RuntimeException: java.util.concurrent.TimeoutException 04-10/13:15:21 ERROR [Thread-16] LoggingPrintStream - at bitel.billing.server.ipn.MikrotikGateWorker.doSync(MikrotikGateWorker.java:43) 04-10/13:15:21 ERROR [Thread-16] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:154) 04-10/13:15:21 ERROR [Thread-16] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:110) 04-10/13:15:21 ERROR [Thread-16] LoggingPrintStream - Caused by: java.util.concurrent.TimeoutException 04-10/13:15:21 ERROR [Thread-16] LoggingPrintStream - at bitel.billing.server.util.terminal.TerminalManager.readFromInput(TerminalManager.java:89) 04-10/13:15:21 ERROR [Thread-16] LoggingPrintStream - at bitel.billing.server.util.terminal.AbstractTerminalSession.connect(AbstractTerminalSession.java:61) 04-10/13:15:21 ERROR [Thread-16] LoggingPrintStream - at bitel.billing.server.ipn.MikrotikGateWorker.doSync(MikrotikGateWorker.java:38) 04-10/13:15:21 ERROR [Thread-16] LoggingPrintStream - ... 2 more 04-10/13:15:21 ERROR [Thread-16] MikrotikGateWorker - Gate unaccesible - 172.17.1.1 04-10/13:15:21 ERROR [Thread-16] MikrotikGateWorker - ------------------------- 04-10/13:15:21 ERROR [Thread-16] MikrotikGateWorker - error: java.util.concurrent.TimeoutException java.lang.RuntimeException: java.util.concurrent.TimeoutException at bitel.billing.server.ipn.MikrotikGateWorker.doSync(MikrotikGateWorker.java:43) at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:154) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:110) Caused by: java.util.concurrent.TimeoutException at bitel.billing.server.util.terminal.TerminalManager.readFromInput(TerminalManager.java:89) at bitel.billing.server.util.terminal.AbstractTerminalSession.connect(AbstractTerminalSession.java:61) at bitel.billing.server.ipn.MikrotikGateWorker.doSync(MikrotikGateWorker.java:38) ... 2 more |
Автор: | stark [ 10 апр 2013, 14:22 ] |
Заголовок сообщения: | Re: У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
залогинтесь вручную и покажите весь вывод консоли вплоть до символа приглашения |
Автор: | mash55 [ 10 апр 2013, 14:42 ] |
Заголовок сообщения: | Re: У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
вручную: Код: # ssh bgbilling@172.17.1.1 bgbilling@172.17.1.1's password: MMM MMM KKK TTTTTTTTTTT KKK MMMM MMMM KKK TTTTTTTTTTT KKK MMM MMMM MMM III KKK KKK RRRRRR OOOOOO TTT III KKK KKK MMM MM MMM III KKKKK RRR RRR OOO OOO TTT III KKKKK MMM MMM III KKK KKK RRRRRR OOO OOO TTT III KKK KKK MMM MMM III KKK KKK RRR RRR OOOOOO TTT III KKK KKK MikroTik RouterOS 5.16 (c) 1999-2012 http://www.mikrotik.com/ [bgbilling@MikroTik] > надпись bgbilling@MikroTik в консоли цветная. |
Автор: | mash55 [ 11 апр 2013, 10:27 ] |
Заголовок сообщения: | Re: У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
сделал управление шлюзом через скрипт viewtopic.php?f=19&t=6107 Правда, автор там так и не поправил скрипт по Вашей рекомендации, а моих познаний в Java хватило только на замену Код: login = gateSetup.getStringValue( "login", "root" ); на Код: login = gateSetup.get( "login", "root" ); ![]() Получается, что стандартные средства со шлюзами не работают, всем приходится писать свои скрипты? |
Автор: | stark [ 23 апр 2013, 12:28 ] |
Заголовок сообщения: | Re: У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
Я попробовал с помощью ssh на их демо версии demo.mt.lv .Все работает . Надо было попробовать увеличить timeout, возможно он долго у вас выводит приветствие. |
Автор: | ok-2004 [ 23 апр 2013, 15:19 ] |
Заголовок сообщения: | Re: У кого-нибудь настроен шлюз Mikrotik на модуле IPN? |
1: Код: user_rule.editor.class=bitel.billing.module.services.ipn.editor.MikrotikContractRuleEditor gate_manager.class=bitel.billing.server.ipn.MikrotikGateWorker use.script=1 2: Код: [OPEN] <LOOP> /ip firewall address-list add address={A} list=ACCESS_LIST comment=!!{CID}!!; /ip firewall address-list add address={A} list=${speed} comment=!!{CID}!!; </LOOP> <LOOP_NET> /ip firewall address-list add address= {IP}/{MASK_BIT} list=ACCESS_LIST comment=!!{CID}!!; /ip firewall address-list add address= {IP}/{MASK_BIT} list=${speed} comment=!!{CID}!!; </LOOP_NET> [/OPEN] [CLOSE] /ip firewall address-list remove [/ip firewall address-list find comment="!!{CID}!!"]; [/CLOSE] [DELETE] /ip firewall address-list remove [/ip firewall address-list find comment="!!{CID}!!"]; [/DELETE] [/DEFAULT] 3: Код: import java.util.*; import java.util.regex.*; import ru.bitel.bgbilling.common.*; import bitel.billing.common.module.ipn.*; import bitel.billing.server.ipn.bean.*; import bitel.billing.server.ipn.*; import bitel.billing.server.util.ssh.*; import bitel.billing.server.util.*; import bitel.billing.server.util.ssh.SSHSession; import ru.bitel.bgbilling.modules.ipn.server.bean.command.GateCommandUtil; import bitel.billing.common.module.ipn.IPNContractStatus; protected void doSync() { host = gate.getHost(); port = gate.getPort(); gateSetup = new DefaultServerSetup( gate.getConfig(), "\r\n" ); login = gateSetup.getStringValue( "login", "root" ); pswd = gate.getKeyword(); session = null; try { session = new SSHSessionExec( host, port, login, pswd ); address_list = session.command( "ip firewall address-list print without-paging where list=ACCESS_LIST" ); new_address_list = null; for ( UserStatus status : statusList ) { cid = status.contractId; ruleType = status.ruleType; rule_id = 0; if (ruleType != null) { rule_id = ruleType.getId(); }; rules = null; if (address_list.indexOf( "!!" + cid + "!!" ) >= 0) { if ( status.status > 0 ) { if ( status.status == IPNContractStatus.STATUS_REMOVED ) { rules = getDeleteRules( status ); } else { rules = getCloseRules( status ); }; }; } else if ( status.status == IPNContractStatus.STATUS_OPEN ) { rules = getOpenRules( status ); }; if (rules != null){ for ( String rule : rules ) { p = Pattern.compile("rule_id"); m = p.matcher(rule); if (new_address_list == null) { new_address_list = ""; }; new_address_list = new_address_list + m.replaceAll("rule_id="+rule_id) + "\n"; }; }; } if (new_address_list != null){ result = session.command(new_address_list); }; } finally { if ( session != null ) { session.disconnect(); } } } private getOpenRules( status ) { return getRules( status, "\\[OPEN\\](.*)\\[/OPEN\\]" ); } private getCloseRules( status ) { return getRules( status, "\\[CLOSE\\](.*)\\[/CLOSE\\]" ); } private getDeleteRules( status ) { return getRules( status, "\\[DELETE\\](.*)\\[/DELETE\\]" ); } private getRules( status, template ) { rule = status.rule.getRuleText(); if ( status.ruleType != null ) { rule = generateRule( rule, status.gateType, status.ruleType, status.contractId ); } pattern = Pattern.compile( template, Pattern.DOTALL ); m = pattern.matcher( rule ); if ( m.find() ) { rule = m.group( 1 ); } rule.replaceAll( "\r", "" ); return rule.split( "\n" ); } private generateRule( addresses, gateType, ruleType, cid ) { String rule; replacements = new HashMap(); replacements.put( "\\{CID\\}", String.valueOf( cid ) ); ruleText = GateCommandUtil.getRule( gateType, ruleType ); rule = GateCommandUtil.generateRule( ruleText, addresses, replacements, ruleType ); return rule; } 4: Код: /queue type add kind=pcq name=2m pcq-classifier=dst-address pcq-dst-address-mask=29 pcq-rate=2048k pcq-src-address-mask=29 add kind=pcq name=4m pcq-classifier=dst-address pcq-dst-address-mask=29 pcq-rate=4196k pcq-src-address-mask=29 add kind=pcq name=6m pcq-classifier=dst-address pcq-dst-address-mask=29 pcq-rate=6200k pcq-src-address-mask=29 add kind=pcq name=12m pcq-classifier=dst-address pcq-dst-address-mask=29 pcq-rate=12200k pcq-src-address-mask=29 add kind=pcq name=unlim pcq-classifier=dst-address pcq-dst-address-mask=29 pcq-rate=100M pcq-src-address-mask=29 /queue tree add name=2m packet-mark=2m parent=total queue=2m add name=4m packet-mark=4m parent=total queue=4m add name=6m packet-mark=6m parent=total queue=6m add name=12m packet-mark=12m parent=total queue=12m add name=un packet-mark=unlim parent=total queue=unlim /ip firewall filter add chain=forward dst-address-list=ACCESS_LIST add chain=forward src-address-list=ACCESS_LIST add action=drop chain=forward /ip firewall mangle add action=mark-packet chain=forward dst-address-list=2m in-interface=ether3 new-packet-mark=2m passthrough=no add action=mark-packet chain=forward dst-address-list=4m in-interface=ether3 new-packet-mark=4m passthrough=no add action=mark-packet chain=forward dst-address-list=6m in-interface=ether3 new-packet-mark=6m passthrough=no add action=mark-packet chain=forward dst-address-list=12m in-interface=ether3 new-packet-mark=12m passthrough=no add action=mark-packet chain=forward dst-address-list=unlim in-interface=ether3 new-packet-mark=unlim passthrough=no 5: Код: cat /etc/crontab: 40 1 * * * root /root/select_13 45 * * * root /usr/sbin/zvonok_jene.sh cat select_13: #!/bin/bash find /root/data/ -mtime +10 -type f -exec rm -rf {} \; d=`date +%M%H%d%m%g` mysql -uroot -p:jfgDctvBlbjnfv -B -N -e "select cid,rtid,INET_NTOA(SUBSTRING( rule_txt,2,10)) from ipn_user_gate_1 where fwid="10";" bgbilling > /root/data/$d.0_10 if [ -s /root/data/$d.0_10 ] then echo "/ip firewall address-list remove [/ip firewall address-list find list=unlim]" > /root/rules_10.rsc echo "/ip firewall address-list remove [/ip firewall address-list find list=2m]" >> /root/rules_10.rsc echo "/ip firewall address-list remove [/ip firewall address-list find list=4m]" >> /root/rules_10.rsc echo "/ip firewall address-list remove [/ip firewall address-list find list=6m]" >> /root/rules_10.rsc echo "/ip firewall address-list remove [/ip firewall address-list find list=12m]" >> /root/rules_10.rsc while read line do cid=`echo "${line}"|awk '{print $1}'` rule_num=`echo "${line}"|awk '{print $2}'` ip=`echo "${line}"|awk '{print $3}'` rule_name=`grep -w ${rule_num} /root/rules|awk '{print $2}'` if [ x$rule_name = x ] then rule_name=unlim fi echo "/ip firewall address-list add address=$ip/29 list=$rule_name comment=!!$cid!!" >> /root/rules_10.rsc done < /root/data/$d.0_10 echo "/file remove [ /file find name=\"rules_10.rsc\" ];" >> /root/rules_10.rsc ncftpput -u admin -p :jfgDctvBlbjnfv 192.168.0.255 / /root/rules_10.rsc sleep 1 /root/s.200 else exit fi cat rules: 1 unlim 5 2m 6 4m 7 6m 8 12m cat s.200: #!/bin/sh export SSH_ASKPASS="/root/p.sh" export DISPLAY=":0" setsid ssh admin@192.168.0.255 "import rules_10.rsc" cat p.sh: #!/bin/bash echo ":jfgDctvBlbjnfv" Тока прежде чем "сссашиться" на микротик из скриптов и БЖБ - надо не забыть обменяться с ним ( RSA( DSA)) ключами из командной строки.... |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |