У сетевых инженеров часто возникает задача выполнить ряд одинаковых действий, на большом количестве оборудования. Основным способом это быстро сделать — является запись действий в блокнот и copy/past на каждое устройство. Существует способ ускорить этот и так быстрый процесс, используя ПО SecureCRT и функционал Command window. Который позволяет посылать команды на несколько устройств одновременно.
Для чего нужна эта статья. Эта статья из цикла Fast Start и направлена на экономию времени сетевым инженерам, при настройке оборудования (одной задачи) на нескольких устройствах. Используется ПО SecureCRT и встроенный функционал Command window.
В процессе настройки сетевого оборудования, часто возникают задачи выполнения простых и идентичных действий на большом множестве устройств. Для выполнения этих задач можно использовать стандартный метод: Блокнот + Copy/Paste. А можно использовать встроенный функционал SecureCRT – command window – специальное окно, в котором можно отредактировать команду, перед тем как посылать на оборудование. И дополнительный функционал: посылать команду не только в текущую сессию, но и в несколько открытых сессий.
Использование Command window:
Вызов command window происходит через меню: SecureCRT Menu => View => Command window. Либо SecureCRT Menu => View => Chat window.
Режимы работы могут быть:
Режим редактирования – позволяет отредактировать команду до пересылки на устройство.
Режим реального времени – любое нажатие на клавишу автоматически пересылается на устройство – будь то пробел или нажатие на клавишу (буквенную или Enter).
Настройка пересылки команд имеет следующие режимы работы:
Официально опции звучат так:
Настройка режима реального времени включается с помощью контекстно-зависимого меню в окне Command window. (Правой кнопкой мыши на окне Command Window – всплывает контекстно-зависимое меню выбираем пункт меню «Send Characters Immediately»)
Настройка пересылки команд также вызывается с помощью контекстно-зависимого меню в окне Command window. (Правой кнопкой мыши на окне Command Window – всплывает контекстно-зависимое меню выбираем пункт «Send Commands To» выбираем подпункт меню { «All sessions» | «Selected tab» | «Active session» )
Очень часто для работы требуется выполнить простые команды одновременно на нескольких устройствах. Для этого очень удобно (т. к. быстро) использовать Command window для пересылки данных одновременно на несколько устройств.
Для настройки нескольких устройств:
Обычно это стандартный набор команд:
Пример:
Реальный пример: Одновременная настройка 15 коммутаторов. Необходимо на 15 новых коммутаторах настроить snmp v3, порты с 1 по 44 в Access + storm-control. c 45 по 48 – под принтеры. Проще всего (=быстрее всего) показалось использовать связку:
SecureCRT command window all sessions + interface range gi0/0/1 to gi0/0/46.
Второй реальный пример: При работах на оборудовании по RFC: «Пункт 1. Создать Backup конфигураций»: быстро открыть необходимые сессии (в SecureCRT это действительно делается быстро) и на диапазоне устройств от одного вендора выполнить стандартный набор команд.
Выделяем сессии, к которым хотим подключиться одновременно и нажимаем Enter.
Посылаем команды одновременно на все устройства:
Просьба не пугаться – режим изображения Tile – для наглядности отобразить, что команды ввелись на всех активных сессиях (работать в таком виде неудобно, но наглядно):
Чтобы не пугать, перевел режим отображения как Tabs (стандартный режим работы)
Для чего может использоваться и реально используется ввод в режиме реального времени? Ответ: когда настраиваются идентичные параметры, но с небольшим различием. Пример hostname, ip адреса на интерфейсе.
Как это выглядит в реальности:
1. Открываются сессии, где необходимо вводить почти одинаковые параметры.
2. Настраивается режим работы command window: «Send Characters Immediately» + «Send commands to: All Sessions».
3. В command window вводятся данные:
4. Курсор переноситься с помощью мышки из Command window в окно сессии и для каждого устройства в сессии настраивается необходимый адрес:
5. Курсор переноситься с помощью мышки в Command window и дописывается суффикс:
Маленькая хитрость. Чтобы проверить корректность правописания – сначала я проверяю правописание в одной сессии. После проверки команда посылается во все сессии.
Всегда необходимо быть осторожным.
В некоторых случаях быстрее отключиться от всех сессий. Подключиться только к настраиваемым сессиям. Ввести команды в Command windows. После подключиться ко всем остальным сессиям. Подключение в SecureCRT очень быстрое. И переподключение не вызывает проблем.
Очень часто после ввода групповых команд проверяется работа в каждой сессии (с помощью комбинации [ctrl+tab] переключаемся по всем окнам и сравниваем результат выполнения команды в каждом окне). Проверяем корректность выполнения всех команд, ошибки которые могли возникнуть в какой-то одной сессии. Пример: при подключении к 3-м маршрутизаторам Huawei один из них по умолчанию подключился в пользовательский режим. Для работы в общем потоке перевел режим настройки в привилегированный режим.
Для чего нужна эта статья. Эта статья из цикла Fast Start и направлена на экономию времени сетевым инженерам, при настройке оборудования (одной задачи) на нескольких устройствах. Используется ПО SecureCRT и встроенный функционал Command window.
Содержание
Введение.
В процессе настройки сетевого оборудования, часто возникают задачи выполнения простых и идентичных действий на большом множестве устройств. Для выполнения этих задач можно использовать стандартный метод: Блокнот + Copy/Paste. А можно использовать встроенный функционал SecureCRT – command window – специальное окно, в котором можно отредактировать команду, перед тем как посылать на оборудование. И дополнительный функционал: посылать команду не только в текущую сессию, но и в несколько открытых сессий.
Использование Command window:
- Вызов Command window, настройка режимов работы
- Использование Command window для одновременной настройки нескольких устройств
- Использование Command window для одновременной настройки нескольких устройств в режиме реального времени.
Вызов Command window, настройка режимов работы
Вызов command window происходит через меню: SecureCRT Menu => View => Command window. Либо SecureCRT Menu => View => Chat window.
Режимы работы могут быть:
- Режим редактирования
- Режим реального времени («Send Characters Immediately»)
Режим редактирования – позволяет отредактировать команду до пересылки на устройство.
Режим реального времени – любое нажатие на клавишу автоматически пересылается на устройство – будь то пробел или нажатие на клавишу (буквенную или Enter).
Настройка пересылки команд имеет следующие режимы работы:
- Пересылать в активную сессию (только в текущую).
- Во все сессии.
- В выбранную группу (tab) или группы.
Официально опции звучат так:
Active Session — Send commands only to the active session. This is the default.
All Sessions — Send commands to all your open sessions at once.
Selected Tab Group(s) — Send commands to one or more tab groups. This setting is automatically selected when you right-click on a tab and enable Send Commands to This Group. When commands are being sent to selected tab groups, the tabs of the sessions that commands will be sent to contain an asterisk in front of the session name.
Visible Sessions — Send commands to all visible tabbed sessions. When there are multiple tab groups, commands will be sent to the currently active session in each tab group.
Настройка режима реального времени включается с помощью контекстно-зависимого меню в окне Command window. (Правой кнопкой мыши на окне Command Window – всплывает контекстно-зависимое меню выбираем пункт меню «Send Characters Immediately»)
Настройка пересылки команд также вызывается с помощью контекстно-зависимого меню в окне Command window. (Правой кнопкой мыши на окне Command Window – всплывает контекстно-зависимое меню выбираем пункт «Send Commands To» выбираем подпункт меню { «All sessions» | «Selected tab» | «Active session» )
Использование Command window для одновременной настройки нескольких устройств
Очень часто для работы требуется выполнить простые команды одновременно на нескольких устройствах. Для этого очень удобно (т. к. быстро) использовать Command window для пересылки данных одновременно на несколько устройств.
Для настройки нескольких устройств:
- Подключаемся ко всем однотипным устройствам.
- В меню SecureCRT вызываем Command window
- В контекстном меню Command window выбираем All sessions.
- Вводим команды единым скопом или по одной. (Единым скопом команды вводятся через Control+Enter. – перевод строки без пересылки на оборудование.)
Обычно это стандартный набор команд:
screen-len 0 tem
dis cu
save
y
q
Пример:
Реальный пример: Одновременная настройка 15 коммутаторов. Необходимо на 15 новых коммутаторах настроить snmp v3, порты с 1 по 44 в Access + storm-control. c 45 по 48 – под принтеры. Проще всего (=быстрее всего) показалось использовать связку:
SecureCRT command window all sessions + interface range gi0/0/1 to gi0/0/46.
Второй реальный пример: При работах на оборудовании по RFC: «Пункт 1. Создать Backup конфигураций»: быстро открыть необходимые сессии (в SecureCRT это действительно делается быстро) и на диапазоне устройств от одного вендора выполнить стандартный набор команд.
Быстрое подключение к нескольким сессиям
Выделяем сессии, к которым хотим подключиться одновременно и нажимаем Enter.
Посылаем команды одновременно на все устройства:
ter len 0
show ip int br
Просьба не пугаться – режим изображения Tile – для наглядности отобразить, что команды ввелись на всех активных сессиях (работать в таком виде неудобно, но наглядно):
Чтобы не пугать, перевел режим отображения как Tabs (стандартный режим работы)
Использование Command window для одновременной настройки нескольких устройств в режиме реального времени.
Для чего может использоваться и реально используется ввод в режиме реального времени? Ответ: когда настраиваются идентичные параметры, но с небольшим различием. Пример hostname, ip адреса на интерфейсе.
Как это выглядит в реальности:
1. Открываются сессии, где необходимо вводить почти одинаковые параметры.
2. Настраивается режим работы command window: «Send Characters Immediately» + «Send commands to: All Sessions».
3. В command window вводятся данные:
interface gi0/0/0.10
dot1q termination vid 10
ip address 172.31.255.
4. Курсор переноситься с помощью мышки из Command window в окно сессии и для каждого устройства в сессии настраивается необходимый адрес:
R1 – 1
R2 – 2
R3 – 3
5. Курсор переноситься с помощью мышки в Command window и дописывается суффикс:
255.255.255.0
quit
dis ip int br
Маленькая хитрость. Чтобы проверить корректность правописания – сначала я проверяю правописание в одной сессии. После проверки команда посылается во все сессии.
Заключение
Всегда необходимо быть осторожным.
В некоторых случаях быстрее отключиться от всех сессий. Подключиться только к настраиваемым сессиям. Ввести команды в Command windows. После подключиться ко всем остальным сессиям. Подключение в SecureCRT очень быстрое. И переподключение не вызывает проблем.
Очень часто после ввода групповых команд проверяется работа в каждой сессии (с помощью комбинации [ctrl+tab] переключаемся по всем окнам и сравниваем результат выполнения команды в каждом окне). Проверяем корректность выполнения всех команд, ошибки которые могли возникнуть в какой-то одной сессии. Пример: при подключении к 3-м маршрутизаторам Huawei один из них по умолчанию подключился в пользовательский режим. Для работы в общем потоке перевел режим настройки в привилегированный режим.
О SecureCRT:
Платное ПО: от 99$ (самая маленькая цена только на SecureCRT на один год)
Официальный сайт
1 раз покупается лицензия на ПО, с поддержкой (для обновления), потом ПО используется с этой лицензией неограниченное время.
Примечание 1: В статье используются Screen-shot от SecureCRT версии 6.1 — на Windows используется лицензия на версию 6.7 от 20 октября 2011 года. В версии 6.1 функционал Command window, указан как «Chat window».
Работает на операционных системах Mac OS X и Windows.
Есть поддержка скриптов
Есть Command Window (эта статья)
Serial/Telnet/SSH1/SSH2/Shell Операционной системы
Официальный сайт
1 раз покупается лицензия на ПО, с поддержкой (для обновления), потом ПО используется с этой лицензией неограниченное время.
Примечание 1: В статье используются Screen-shot от SecureCRT версии 6.1 — на Windows используется лицензия на версию 6.7 от 20 октября 2011 года. В версии 6.1 функционал Command window, указан как «Chat window».
Работает на операционных системах Mac OS X и Windows.
Есть поддержка скриптов
Есть Command Window (эта статья)
Serial/Telnet/SSH1/SSH2/Shell Операционной системы
in_heb
>Основным способом это быстро сделать — является запись действий в блокнот и copy/past на каждое устройство.
как там в криокамере? expect был написан 30 лет назад (1990 год) и это не говоря про инструменты массового деплоя (в том числе подходящих для внесения изменения в конфигурацию) типа ansible
Artemiysp Автор
Спасибо за комментарий!
В связи с тем, что основная задача этой статьи показать как быстро это сделать. Т. е. на каждое действие необходимо дать инструкцию как это сделать (по возможности скриншоты).
Для использования Ansible необходимо выполнить несколько действий:
1. Установить на оборудование публичные ключи:
Первый шаг я уже сделал. Аутентификация на сетевом оборудовании через SSH с помощью публичных ключей
1а. Альтернатива по авторизации по публичным ключам является использование пароля. По умолчанию на MAC OS X с использованием пароля для аутентификации есть проблемы. Т. е. в статью необходимо добавить как решить проблему аутентификации на MAC OS X с помощью пароля (при установке Ansible на MAC OS X с «0»).
2. Необходимо описать для каждой операционной системы: Windows 10, MAC OS X как установить Ansible.
2а. Для операционной системы Windows 10 необходимо показать скриншоты как установить Linux для Windows для запуска Ansible.
3. Создать файл инвентори.
4. Создать Playbook.
Реальный пример из моей практики:
Меня послали в командировку за Урал: для заказчика настроить 15 новых коммутаторов. Коммутаторы поедут потом на удаленные площадки заказчика. Это были разовые работы по контракту.
Для ускорения работы:
— На коммутаторы с Default конфигурацией я создал скрипт — который настраивает через консольный порт коммутаторы с 0. Я перетыкал консольный кабель в следующий коммуатор запускал скрипт. Ожидал окончания выполнения скрипта. Перетыкал консольный кабель в следующий коммутатор. Запускал скрипт повторно.
— Для донастройки оборудования: (версию SNMPv3 и имя пользователя/пароль, пароль для шифрования мне предоставили гораздо позже) я использовал Command window, т. к. писать одноразовые Playbook которые никогда больше не пригодятся не выгодно по времени. (Задача решить проблему максимально быстро.)
Я приехал на площадку к заказчику со своим ноутбуком. И развертывать системы Deploy у меня не было ресурсов.
Ожидаю, что вы ознакомитесь с моей следующей статьей как начать использовать скрипты в SecureCRT — это статья начального уровня в которой показано как именно начать использовать и первые скрипты — очень простые.
«При написании скрипта и выполнении, должно непременно выполняться правило: Время написания скрипта и выполнения скрипта ни когда не должно быть больше, времени теоретически затраченного на выполнения этой же работы вручную (copy/paste из блокнота). Т. е. использование скрипта должно экономить время, а не тратить время на отладку скрипта.»
in_heb
В любом случае, откройте для себе expect, это и есть максимально быстрое решение, если вы вдруг не знакомы с этим мощнейшим и одновременно простейшим инструментом
Artemiysp Автор
Это уже есть. Но при развертывании с «0» — когда у вас есть только ваш ноутбук. 15 комплектов нового оборудования, с default конфигурацией, и подключение с помощью консольного кабеля.
То это действие трудно автоматизировать с помощью Ansible.
И применение Ansible требует создавать с «0» файл inventory.ini
А также писать с «0» playbook.
Основная проблема, что оборудование не однотипное и задачи никогда не повторяются:
Cisco VXLAN, Huawei TRILL, Cisco BGP peer, Huawei VXLAN, Cisco VPC, Huawei M-LAG (v-stp, root), Huawei Stack, Cisco ASA VPN, Huawei VPN (router), Huawei VPN (firewall USG), IOS update.
Автоматизация в каждом таком случае будет одноразовая. И иногда быстрее вбить команды скопом, чем писать с нуля PlayBook для каждого вендора.
in_heb
так используйте expect без ansible
Artemiysp Автор
Большое спасибо за комментарий!
Я постараюсь для Вас выложить статью «Автоматизация ввода в SecureCRT с помощью скриптов» как можно быстрее.
Там рассказано про аналог Expect — только с помощью ПО SecureCRT и скриптов на Python и VBS.
Я постараюсь, чтобы Ваше ожидание не было долгим.
vanyas
Зачем это здесь? Можно еще начать тут писать статьи про то, как открыть файл в блокноте через меню File->Open…
Ну и не понятно зачем в MacOS вообще SecureCRT, если есть iTerm2
Artemiysp Автор
Спасибо за вопрос.
Преимущества SecureCRT по сравнению с iTerm2.
1. При настройке сети, количество сессий куда требуется открывать доступ очень часто достаточно большое. Пример: У нас в сети используется 4 Spine коммутатора и около 20 Leaf коммутаторов. Чтобы не запоминать адреса каждого из этих коммутаторов в SecureCRT можно сохранить сессии к каждому устройству. Кроме этого сессии можно компоновать в папки. Пример: У меня сохранены 8 папок. 2 Папки — это сеть моего предприятия. Одна папка — это сетевое оборудование production. Вторая папка — это сетевого оборудование стендовое. Еще 6 это заказчики.
В продуктивной папке все сессии разделены на 3 папки: Оборудование VXLAN сети пользовательской, Оборудование VXLAN серверной сети, Оборудование доступа. В каждой папке от 10 и более устройств.
2. В SecureCRT и Putty есть очень полезный функционал. Функционал называется логирование по умолчанию. Т. е. при любом подключении используя Putty или SecureCRT в специальной папке сразу создается файл с именем сессии IP адресом, и временем создания файла. По умолчанию действия при открытии любой сессии (SSH или Serial) логируются в файл на диске (и любой вывод и ввод данных в сессии записывается в этот файл). Тип добавления Append — чтобы все записи за день с оборудования хранились в одном файле.
Это удобно для backup конфигурации устройств с помощью: terminal length 0/show running-config, screen-length 0 tem/display current-configuration
3. SecureCRT может быть запущен на Microsoft Windows. (Также как и Putty.)
Почему так подробно — это связано с тем, что многие могли просто не обращать на данный функционал внимания.
vanyas
1. У меня в сети больше 1000 сетевых устройств, вы будете всю тысячу руками вбивать в SecureCRT и по папкам раскладывать? Гораздо удобнее просто набрать в терминале «ssh hostname». Чтобы не запоминать адреса, есть DNS и внятные hostname.
2. iTerm прекрасно логирует, сам этим пользуюсь.
3. Про винду речи не шло
Ну и не забываем про цену SecureCRT
Artemiysp Автор
Спасибо за ответ.
Вопрос 1:
а. Проблема 1 в том, что заказчиков разное количество. И как сделать непересекающееся поле имен.
б. Проблема 2 в том, что заказчиков нельзя заставить переделать все Hostname под единый стандарт одновременно. У заказчиков действует правило: У нас все это давно работало. Менять Hostname мы не собираемся для Вашего удобства.
в. Проблема в DNS адресах. Основная проблема в том, что IP адреса у устройств — это частные IP адреса и у каждого заказчика свои собственные IP адреса.
г. Заставить заказчика вносить сетевое оборудование в DNS заставить проблематично. Т. к. заказчики не видят смысла добавлять сетевое оборудование в DNS. Т. к. оборудование не предназначено для предоставления публичных сервисов пользователям. Т. к. IP адреса для управления обычно назначаются вручную, то и заводить в DNS их необходимо вручную.
д. Встает вопрос удаления записей для заказчиков которые расторгли договор на поддержку.
е. Встает вопрос в какой DNS заводить оборудование заказчиков, во внутренний DNS — тогда он должен быть доступен через VPN. Но может случиться, что в таком случае при подключенном VPN мы можем потерять доступ к самому оборудованию. Или делать отдельный VPN — для DNS в который мы занесли оборудование заказчика.
Вопрос 2:
Я имел ввиду, что у меня, т. к. количество устройств очень разное, логирование происходит в автоматическом режиме и разделенное по дням и именам оборудования. Так к примеру я делаю backup конфигурации — с помощью command window одновременно на оборудовании которое настраиваю вывожу всю конфигурацию. И эта конфигурация сохраняется у меня в Log записях в автоматическом режиме.
Вопрос 3. Пункт про Windows включен последним пунктом в спойлер о SecureCRT.
Вопрос 4. Цена SecureCRT включена в последний пункт — спойлер о SecureCRT. Я в статье указал, что минимальная цена 99$.
P. S. С этим связан очередной казус — в статье на Windows скриншот со старой версией SecureCRT — поэтому окно Command window — там указано как Chat window. Это связано с имеющиейся лицензией на SecureCRT на версию 6.7. — Она оказалась на виртуалке с Windows.
P. S. О том как делать Alias для SSH в Mac OS X и по возможности привязывать к нему публичный ключ и/или имя пользователя — я отобразил в статье «Аутентификация на сетевом оборудовании через SSH с помощью публичных ключей:»Как упростить работу с SSH на MAC OS X""
Karroplan
у почти всего современного сетевого оборудования есть какой-либо вариант zero touch provisioning. железки cisco умеют, например, с tftp конфиг получить. соответственно, берем библиотеку на питоне tftp-сервер, прикручиваем сбоку шаблоны jinja и начинаем отдавать шаблонизированный конфиг. то есть — садимся, заранее пишем шаблон, потом файлы конкретных параметров, выткаем ноут в первый свитч и идем курить. возвращаемся, втыкаем гирляндой еще 15 свитчей — и идем смотреть кино.
networklore.com/ztp-tutorial
Artemiysp Автор
Спасибо за ответ.
Основная задача, это минимизации времени которое инженер тратит на выполнение работы.
Т.е. Суммарное время работы инженером по задаче должно быть минимальное.
В некоторых случаях очень сложно использовать Ansible или Zero touch provisioning для миграции сервисов (маршрутизации и VLAN) с 4-х старых коммутаторов Cisco на 4 новых коммутатора Cisco. Иногда требуется вводить данные в режиме реального времени, чтобы видеть результат.
В прошлом году мне попалась такая задача, и я не уверен что любые средства автоматизации смогли бы её решить в 1 Playbook или Zero touch provisioning.
Т. е. 4 коммутатора Cisco с сервисами (MPLS L3 VPN + MPLS XConnect + PIM DM + IP helper + VSS + VPLS каналы без Multicast с EIRGP neighbor (static unicast peer) + OSPF minimal hello timer + MSTP.) на коммутаторы Cisco 93180-EX с VXLAN лицензией.
И мне очень трудно представить какую конфигурацию необходимо на коммутаторы залить в таком случае.
Основная проблема, что данные по настройкам у Вас появляются постепенно.
Поэтому приходиться выбирать решение, которое позволяет выполнить действия максимально быстро.
Я первичные настройки выполнил с помощью скрипта. Донастройку по вновь открывшимся данным производил с помощью command window (за 15 секунд открыл 15 сессий, потом ввел набор команд по новому функционалу, отправил на оборудование.) и снова шел к заказчику выяснять какой функционал который заказчик хотел и подразумевал, но не сказал необходимо настроить.