The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Как установить telnet-сессию с коммутатором EdgeCore из скрипта
Есть известная "проблема": из скрипта (php, perl, python и т.п.) средствами
самого языка установить telnet-соединение с коммутаторами EdgeCore не
получается. Сразу после соединения свитч присылает бинарный "мусор", потом
коннект просто висит и отваливается по таймауту. Т.е. даже строки приглашения
от коммутатора получить не удается. В то же время тот же самый скрипт может
прекрасно работать по телнету с D-Link'ами.

Происходит это потому что edgecorе'ам надо согласовывать параметры терминала
при поднятии телнет-сессии. Т.е. сначала (сразу после коннекта на 23-й порт)
передать свитчу желаемые параметры сессии - и только после этого он передаст
окно приглашения и с ним можно будет работать.

Пример рабочей последовательности параметров:

   0xFF 0xFD 0x03 0xFF 0xFB 0x18 0xFF 0xFB 0x1F 0xFF 0xFB 0x20 0xFF 0xFB 0x21 0xFF 0xFB 0x22 0xFF 0xFB 0x27 0xFF 0xFD 0x05 

   0xFF 0xFA 0x18 0x00 0x58 0x54 0x45 0x52 0x4D 0xFF 0xF0 

   0xFF 0xFD 0x01 0xFF 0xFC 0x01

Что интересно - в таком виде отлично работается и с edgecore'ами, и с
d-link'ами. Хотя для d-link'ов такая "инициализация" и необязательна.
 
16.07.2011 , Автор: Андрей Сергиенко , Источник: http://storinka.com.ua/telnet-edgec...
Раздел:    Корень / Администратору / Система / Поддержка аппаратного обеспечения

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Аноним, 08:28, 18/07/2011 [ответить] [смотреть все]
  • +/
    Мда Не пробовали настроить в telnet-библиотеке передачу параметров терминала дл... весь текст скрыт [показать]
     
  • 1.2, ег, 16:48, 18/07/2011 [ответить] [смотреть все]  
  • +/
    use Net::Telnet::Cisco;

        my $session = new Net::Telnet(
            Telnetmode => 1,
            Errmode => 'return',
            Timeout => 20
         );

    Работает с edge-core'ами и не надо городить огород.

     
  • 1.4, erazer, 00:09, 20/07/2011 [ответить] [смотреть все]  
  • +/
    для пассажиров бронетехники: не приходило в голову, что либа не всегда уместна бывает и реализация может быть на сокетах?
     
     
  • 2.5, Аноним, 14:17, 20/07/2011 [^] [ответить] [смотреть все]  
  • +/
    для пассажиров если беретесь реализовывать Telnet протокол RFC 854 и проч... весь текст скрыт [показать]
     
     
  • 3.8, erazer, 17:47, 20/07/2011 [^] [ответить] [смотреть все]  
  • +/
    именно о том что там есть свой протокол, на который есть RFC, речь в общем-то и идет. а либу притянуть, как уже было сказано, бывает не всегда возможно - в таком случае оптимальнее написать упрощенную реализацию на сокетах.
     
     
  • 4.14, Аноним, 08:12, 26/07/2011 [^] [ответить] [смотреть все]  
  • +/
    Процитируйте в оригинальной новости слова где говорится что это TELNET protocol ... весь текст скрыт [показать]
     
  • 1.6, Аноним, 14:19, 20/07/2011 [ответить] [смотреть все]  
  • +/
    что интересно автор не взял на себя труд разобраться в стандарте на Telnet прото... весь текст скрыт [показать]
     
     
  • 2.9, erazer, 17:51, 20/07/2011 [^] [ответить] [смотреть все]  
  • +/

    > что интересно автор не взял на себя труд разобраться в стандарте на
    > Telnet протокол - побыстрому продампил и объявил себя героем. А стоило
    > бы стандарты почитать.

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

    цель была: имеющимися малыми средствами решить задачу. задача решена, цель достигнута.

    кому интересны подробности - тот уже может почитать RFC и пойти дальше, если ему это надо.

     
     
  • 3.12, ram_scan, 11:31, 25/07/2011 [^] [ответить] [смотреть все]  
  • +/
    > автор не объявлял себя героем. автору нужно было решить конкретную задачу -
    > он ее решил. написать собсвтенную полноценную реализацию telnet задачи не стояло.

    Автор анально удалил зубы мудрости, чего всем и посоветовал.

    Собсно подобные анальные манипуляции - каприз автора. Но вот советовать всем энто дело - как минимум аполитично. Как заметили уже вышеотписавшиеся товарищи проблема решается чтением соответствующего RFC.

     
  • 3.13, Аноним, 08:08, 26/07/2011 [^] [ответить] [смотреть все]  
  • +/
    как миниум стоило разобраться что означают эти последовательности, дать ссылку н... весь текст скрыт [показать]
     
  • 1.7, biz, 16:31, 20/07/2011 [ответить] [смотреть все]  
  • +/
    А зачем telnet, если есть SNMP ? Используя telnet достаточно плотно - можно свич повесить - проверено.
     
     
  • 2.10, erazer, 17:52, 20/07/2011 [^] [ответить] [смотреть все]  
  • +/
    > А зачем telnet, если есть SNMP ? Используя telnet достаточно плотно -
    > можно свич повесить - проверено.

    фак... потому что вот была необходимость именно по телнету это сделать. кроме того, есть устройства, в которых snmp отсутстует.

     
  • 2.11, Turbid, 18:10, 22/07/2011 [^] [ответить] [смотреть все]  
  • +/
    через SNMP D-Link'и тоже раньше прекрасно вешались
     
     
  • 3.15, anon8, 07:06, 27/07/2011 [^] [ответить] [смотреть все]  
  • +/
    надо начинать с того, что D-Link вообще не железо, так - мусор один. Впрочем как и китайские едж-коры.
     
     
  • 4.16, an, 08:40, 27/07/2011 [^] [ответить] [смотреть все]  
  • +/
    на этом "не железе" замечательно работают многие провайдеры.
    например билайн (экс корбина) давший интернет и телевидение куче клиентов,
    подключал и до сих пор подключает их через D-link. И все довольны.
    Просто каждому железу - свое место.

     
  • 1.17, zzyyzz, 19:49, 08/01/2012 [ответить] [смотреть все]  
  • +/
    Проверено, работает на Edge-Core ES3528M
    $t = new Net::Telnet (Timeout => 10,Prompt => '/#/');
    $t->open("192.168.0.5");
    $t->waitfor('/Username:.*$/');
    $t->print("admin");
    $t->waitfor('/Password:.*$/');
    $t->print("12345");
    $t->waitfor('/#.*$/');
    $t->print("sh sys");
    $t->getline(timeout=>10);
    @lines = $t->cmd($cmd);
    print "<TR><TD><PRE>@lines</PRE></TD></TR>";
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList