faq обучение настройка
Текущее время: Пн июл 28, 2025 19:40

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
СообщениеДобавлено: Вт июн 28, 2011 20:42 
Не в сети

Зарегистрирован: Ср июл 29, 2009 13:26
Сообщений: 544
Откуда: Фурманов
Требуется удалённо переконфигурить некоторое кол-во DIR-100, прошитых в "свитч", Ver 2.01_sw.
Однако из скрипта на девайс даже не удается залогинится. В логе
Код:
Error2 negotiated with client
.
Аналогичным скриптом без проблем "общаемся" с DES-3526, DES-3200-10, DES-2108. Здесь же не доходит даже до логина..
Вот скрипт(версия без команд конфигурирования, специально из веб предварительно установлен пароль):
Код:
#!/usr/bin/perl
use Net::Telnet ();
#
$host = '192.168.0.1';
$login = 'admin';
$pass = 'admin';
$file = '/command/dir-100/telnet.log';
#
$t = new Net::Telnet(Timeout => 10, Telnetmode => 0, Errmode => "return", Input_log => $file);
#
$t->open(Host => $host);
#
$t->waitfor('/login:/i');
$t->print($login);
$t->waitfor('/Password:/i');
$t->print($pass);
$t->waitfor('/CMD>/i');
#
$t->print('cfg');
$t->waitfor('/CFG>/i');
#
$t->print('prof show');
#
$t->print('quit');
#
@ls = $t->getlines;
print @ls;
#

Результат выше.. Пыталсяя использовать вместо waitfor login и cmd - ни какой разницы..
Не пойму, в чём скрипт не может "договориться" с девайсом.. :roll:


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июн 28, 2011 22:24 
Не в сети

Зарегистрирован: Вс мар 28, 2010 10:57
Сообщений: 81
Может

Код:
$t->waitfor('/CMD\>/i');
$t->waitfor('/CFG\>/i');


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июн 28, 2011 22:32 
Не в сети

Зарегистрирован: Ср июл 29, 2009 13:26
Сообщений: 544
Откуда: Фурманов
Lord3D писал(а):
Может

Код:
$t->waitfor('/CMD\>/i');
$t->waitfor('/CFG\>/i');

Так не доходит до этого.. Вываливается по таймауту на этапе логина..


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июн 28, 2011 22:46 
Не в сети

Зарегистрирован: Вс мар 28, 2010 10:57
Сообщений: 81
Уже понял. Проверил, правда на
Код:
$telnet->waitfor ('/login:$/');

отвечает
Код:
pattern match timed-out at ./dir100.pl line 7


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июн 28, 2011 23:37 
Не в сети

Зарегистрирован: Ср июл 29, 2009 13:26
Сообщений: 544
Откуда: Фурманов
По-видимому баг прошивки.. Я заливал последнюю с фтп - zdemo_dir100_V201_sw_b05.bin.
Ждём официальных комментариев..


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июн 28, 2011 23:48 
Не в сети

Зарегистрирован: Вс мар 28, 2010 10:57
Сообщений: 81
Вряд ли баг прошивки, скорее приглашение содержит какой-то символ, который мы не видим


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июн 29, 2011 07:49 
Не в сети

Зарегистрирован: Вс дек 21, 2008 18:53
Сообщений: 1308
Причина может быть в том, telnet-соединение и raw-соединение не совсем одно и тоже. Есть здесь две кошки SCE, так вот одна понимает "тупой коннект" на 23-й порт, а другая ждет согласования типа терминала и т.д., соответственно скрипт, вываливающий данные, не ожидая приглашения, не отрабатывает корректно. Это стало неожиданным сюрпризом, должен сказать.

_________________
D-Link Switches: Tips & Tricks


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июн 29, 2011 08:57 
Не в сети

Зарегистрирован: Ср июл 29, 2009 13:26
Сообщений: 544
Откуда: Фурманов
xcme, а решение есть? Для Net::Telnet в частности.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июн 29, 2011 09:36 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Вт янв 18, 2011 13:29
Сообщений: 8999
Поддержка telnet в DIR-100 официально не документирована.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июн 29, 2011 09:55 
Не в сети

Зарегистрирован: Ср июл 29, 2009 13:26
Сообщений: 544
Откуда: Фурманов
Artem Kolpakov писал(а):
Поддержка telnet в DIR-100 официально не документирована.

И? Дружно идём в лес?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июн 29, 2011 10:04 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Вт янв 18, 2011 13:29
Сообщений: 8999
KovAl59 писал(а):
Ждём официальных комментариев..

Artem Kolpakov писал(а):
Поддержка telnet в DIR-100 официально не документирована.


Это был официальный комментарий.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июн 29, 2011 11:36 
Не в сети

Зарегистрирован: Ср июл 29, 2009 13:26
Сообщений: 544
Откуда: Фурманов
Artem Kolpakov писал(а):
KovAl59 писал(а):
Ждём официальных комментариев..

Artem Kolpakov писал(а):
Поддержка telnet в DIR-100 официально не документирована.


Это был официальный комментарий.

Это понятно. А перспективы? Как обычно для дешёвого оборудования, никаких?
Если "да", то можно хотя бы узнать варианты решения проблемы на клиентской стороне?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июл 05, 2011 11:48 
Не в сети

Зарегистрирован: Ср июл 29, 2009 13:26
Сообщений: 544
Откуда: Фурманов
Причину проблемы ориентировочно нашел - несогласованность "переговоров" свитча и терминала.
Вот запись "переговоров" с *nix терминала, где всё работает (192.168.5.10 - свитч, 10.254.213.1 - терминал)
Код:
1.   10.254.213.1 [telnet WILL AUTHENTICATION, DO ENCRYPT, WILL ENCRYPT, DO SUPPRESS GO AHEAD, WILL TERMINAL TYPE, WILL NAWS, WILL TSPEED, WILL LFLOW, WILL LINEMODE, WILL NEW-ENVIRON]
2.   192.168.5.10 [telnet DO TERMINAL TYPE]                                             (ff fd 18)
3.   192.168.5.10 [telnet WILL ECHO]                                                    (ff fb 01)
4.   10.254.213.1 [telnet DO ECHO]                                                      (ff fd 01)
5.   192.168.5.10 [telnet WILL SUPPRESS GO AHEAD]                                       (ff fb 03)
6.   192.168.5.10 [telnet SB TERMINAL TYPE SEND SE]                                     (ff fa 18 01 ff f0) запрос типа терминала
7.   10.254.213.1 [telnet SB TERMINAL TYPE IS 0x58 0x54 0x45 0x52 0x4d SE]    (XTERM)   (ff fa 18 00 58 54 45 52 4d ff f0)
8.   192.168.5.10 [telnet DONT NAWS]
9.   192.168.5.10 [telnet DONT TSPEED]
10.   192.168.5.10 [telnet DONT LFLOW]
11.   192.168.5.10 [telnet DONT LINEMODE]
12.   192.168.5.10 [telnet DONT NEW-ENVIRON]
13.   192.168.5.10 [telnet WONT STATUS]
14.   дальше вывод *** и прочей инфы от свитча, заканчивая login:(пробел)


А вот запись "переговоров" с Net::Telnet
Код:
1.   192.168.5.10 [telnet DO TERMINAL TYPE]
2.   10.254.213.1 [telnet WILL TERMINAL TYPE]
3.   192.168.5.10 [telnet WILL ECHO]
4.   10.254.213.1 [telnet DONT ECHO]
5.   192.168.5.10 [telnet WILL SUPPRESS GO AHEAD]
6.   10.254.213.1 [telnet DONT SUPPRESS GO AHEAD]
7.   192.168.5.10 [telnet SB TERMINAL TYPE SEND SE]
8.   10.254.213.1 [telnet SB TERMINAL TYPE IS 0x58 0x54 0x45 0x52 0x4d SE]
9.   дальше вывод *** и прочей инфы от свитча, заканчивая login:(пробел)

Предполагаю что проблема либо здесь -
Код:
192.168.5.10 [telnet WILL SUPPRESS GO AHEAD]
10.254.213.1 [telnet DONT SUPPRESS GO AHEAD]
, либо здесь -
Код:
192.168.5.10 [telnet WILL ECHO]
10.254.213.1 [telnet DONT ECHO]
, либо в отсутствии этой "строки"
Код:
10.254.213.1 [telnet WILL AUTHENTICATION, DO ENCRYPT, WILL ENCRYPT, DO SUPPRESS GO AHEAD, WILL TERMINAL TYPE, WILL NAWS, WILL TSPEED, WILL LFLOW, WILL LINEMODE, WILL NEW-ENVIRON]

Вот дамп лога
Код:
< 0x00000: 0d 0a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  ..**************
< 0x00010: 2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  ****************
< 0x00020: 2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  ****************
< 0x00030: 2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  ****************
< 0x00040: 2a 2a 2a 2a  2a 2a 0d 0a                            ******..

< 0x00000: 44 2d 4c 69  6e 6b 20 44  49 52 2d 31  30 30 20 56  D-Link DIR-100 V
< 0x00010: 65 72 20 32  2e 30 31 5f  73 77 20 46  72 69 20 4f  er 2.01_sw Fri O
< 0x00020: 63 74 20 30  32 20 31 31  3a 30 31 3a  30 34 20 32  ct 02 11:01:04 2
< 0x00030: 30 30 39                                            009

< 0x00000: 0d 0a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  ..**************
< 0x00010: 2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  ****************
< 0x00020: 2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  ****************
< 0x00030: 2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  2a 2a 2a 2a  ****************
< 0x00040: 2a 2a 2a 2a  2a 2a 0d 0a                            ******..

< 0x00000: 6c 6f 67 69  6e 3a 20                               login:

> 0x00000: 61 64 6d 69  6e 0d 0a                               admin..

< 0x00000: 00 00 00                                            ...

< 0x00000: 61 64 6d                                            adm

< 0x00000: 00 00 00                                            ...

< 0x00000: 69 6e 0d                                            in.

< 0x00000: 00 00 00                                            ...

< 0x00000: 0a                                                  .

> 0x00000: 61 64 6d 69  6e 0d 0a                               admin..

< 0x00000: 00 00 00                                            ...

< 0x00000: 61 64 6d                                            adm

< 0x00000: 00 00 00                                            ...

< 0x00000: 69 6e 0d                                            in.

< 0x00000: 00 00 00                                            ...

< 0x00000: 0a                                                  .

> 0x00000: 63 66 67 0d  0a                                     cfg..
< 0x00000: 00 00 00                                            ...

< 0x00000: 63 66 67                                            cfg

< 0x00000: 00 00 00                                            ...

< 0x00000: 0d 0a 50 61  73 73 77 6f  72 64 3a 20               ..Password:

> 0x00000: 70 72 6f 66  20 73 68 6f  77 0d 0a                  prof show..

< 0x00000: 00 00 00                                            ...

< 0x00000: 2a 2a 2a                                            ***

< 0x00000: 00 00 00                                            ...

< 0x00000: 2a 2a 2a                                            ***

< 0x00000: 00 00 00                                            ...

< 0x00000: 2a 2a 2a                                            ***

< 0x00000: 00 00 00                                            ...

< 0x00000: 0d 0a 4c 6f  67 69 6e 20  69 6e 63 6f  72 72 65 63  ..Login incorrec
< 0x00010: 74 0d 0a                                            t..

< 0x00000: 0d 0a 6c 6f  67 69 6e 3a  20                        ..login:

> 0x00000: 71 75 69 74  0d 0a                                  quit..
(пытаюсь залогиниться, перейти в "cfg" и выполнить "prof show"). Как видно из лога, проблема на этапе авторизации.
Как "научить" Net::Telnet делать то что нужно, не знаю.. Пытаюсь решить с помощью Net::Telnet::Options, но пока никак не могу въехать, как из скрипта установить требуемые параметры сессии.. :(


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс июл 10, 2011 14:31 
Не в сети

Зарегистрирован: Ср июл 29, 2009 13:26
Сообщений: 544
Откуда: Фурманов
Artem Kolpakov писал(а):
Поддержка telnet в DIR-100 официально не документирована.

Но однако он (telnet) есть там!
Прямо как в кинофильме "ДМБ" получается:
Цитата:
"Ты суслика видишь? — Нет. — И я нет. А он есть!"
:)
И он не только "есть", он еще и функционирует (из консоли). Значит есть возможность заставить работать и из скрипта.
Собственно мне не требуется официальная поддержка, нужны всего лишь "неофициальные рекомендации". Такое возможно?

P.S. Собственно задачу решил, но иным путем - скармливанием свитчу заранее подготовленного конфига с помощью php curl. Но для этого пришлось чуть-чуть "хакнуть" веб-админку. Некрасиво как-то получается.. Хочется сделать все "по закону". ;)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

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


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB