Упражнения. Питание. Диеты. Тренировки. Спорт

Выполнение удаленных команд на CISCO ­ Дневник ­ Максим Боголепов. Курс молодого бойца cisco: искусство владения консолью

», которое позволяет автоматизировать действия. В этой инструкции мы расскажем, как создать свои «Быстрые команды», чтобы приложения самостоятельно взаимодействовали между собой и выполняли действия.

«Команды» работают на базе приложения Workflow, которое Apple купила в начале 2017 года. Благодаря этому, принцип создания команд остался прежним.

Для примера я буду использовать две команды. Первая - «Сохранить фото в Dropbox». Это команда запускает приложение «Фото», в котором надо выбрать фотографии, а затем папку в Dropbox, куда они будут загружены. Это простая команда, которая показывает принцип взаимодействия с приложениями.

Вторая - «Поиск песни в Genius» - более сложная команда, в которой много действий и связок. После активации команды, система узнает, какой трек воспроизводится в Apple Music и найдет его на сайте Genius.

Если не хочется создавать команды, их можно скачать:

Начнем с первой. Для начала нужно скачать Dropbox, если он не установлен на смартфоне. Вместо Dropbox можно использовать другой сервис, главное, чтобы он работал с «Командами».

Как создать команду «Сохранить фото в Dropbox»


В настройках команды можно изменить ее название, значок и добавить фразу для активации через Siri. Также команда запускается через виджет «Быстрых команд» или в библиотеке приложения «Команды».

Как создать команду «Поиск песни в Genius»


Так же, как и с предыдущей командой, можно изменить настройки, добавить фразу для Siri и протестировать ее.

Введение: многие начинающие настройщики сетевого железа боятся консоли (CLI, Command Line Interface) как огня. Ещё бы: ни тебе всплывающих подсказок по наведенному мышиному курсору, ни тебе красивых картинок, а лишь непонятные буквы на черном (зеленом, белом) фоне. Боязно…

Однако, консоль является мощнейшим инструментом, не овладев которым называть себя настройщком cisco нельзя.

При помощи консоли можно:
1. Задать начальную конфигурацию.
2. Восстановить потерянные пароли (для разных железок по-разному. Но поиском на сайте cisco.com легко найти процесс по ключевым словам “password-recovery (название железки)”)
3. Настроить нестандартные топологии
4. Включить скрытые возможности
5. Проверить правильность настроек командами show
6. Отладить процесс командами debug

Помните: при помощи консоли можно всё, при помощи GUI – не всё, а только то, что запрограммировали и разрешили.

Как же овладеть искусством быстрой настройки через консоль?

Безусловно, требуется много тренироваться:) Однако, есть несколько хитростей, которые облегчат работу и могут пригодиться в реальной жизни для быстрой локализации и решения проблем или сдачи экзамена CCIE:)

Хитрость 1: Запомните горячие сочетания клавиш. Самые часто используемые ctrl+a (начало строки), ctrl+e (конец строки), ctrl+z (выход из режима настройки)

Хитрость 2: На маршрутизаторах и коммутаторах пользуйтесь командой do для вызова команд show из режима настройки.
Примеры: (config)# do show ip route
(config-if)# do show ip int f0/0
Это сильно экономит время, т.к. не приходится выходить из режима настройки и возвращаться обратно в него. Т.к. консольные команды древовидные, то беготня по режимам реально отнимает время и силы.

Важно : Есть тонкость: при использовании команды do не работает подсказка по вопросу, кнопка табуляции и проверка синтаксиса на ошибку. Поэтому, если Вы точно не знаете, какую команду show хотите ввести, всё-таки придётся выйти из режима настройки

Хитрость 3: Используйте выборку из конфига или вывода других команд просмотра. Для этого есть служебные команды после символа “|” (“grep”)
Примеры: sh run | include ip route
Sh ip route | include 192.168.0.0
Sh run | begin router ospf 1

Хитрость 4: Используйте блокнот или другой текстовый редактор, чтобы создавать шаблон конфига, а потом вливайте его копи-пастом в консоль. Перевод каретки циской распознаётся как ввод команды. Не забывайте после последней команды нажать кнопку ввод:)

Хитрость 5: Используйте стрелки «вверх» и «вниз» (или команды ctrl+p , ctrl+n ) для вызова ранее введенных команд. Размер буфера команд настраивается.

Хитрость 6: Не забывайте, что разные команды возможно вводить из разных режимов: из режима непривилегированного пользователя можно мало и только посмотреть, из привилегированного – посмотреть, включить debug , из режима настройки – настроить параметры или перейти в подрежимы. Не забывайте, что знак «?» введенный без пробела, подскажет возможные продолжения команды, а знак «?», введенный через пробел – возможные дальнейшие ключевые слова

Хитрость 7: Учите команды и активно их сокращайте! Помните, что если сокращение однозначно, его циска распознает.
Пример (сравните):
Ip nat inside source list NAT interface GigabitEthernet0/0 overload
Ip nat in so l NAT int G0/0 o

Для ускорения обучению используйте кнопочку табуляции: если начало команды уже однозначно, циска продолжит команду автоматически.

Хитрость 8: Строчки из конфига (running или startup) являются командами. Можно подглядеть в конфиг и стереть неугодную команду, поставив перед ней ключевое слово no

В-общем, как и везде: упорство и труд всё перетрут!

Дерзайте и пусть всё получится:)

СУВЖ, Сергей Фёдоров, инструктор cisco

Поскольку операционная система Cisco IOS очень мощная и гибкая, её конфигурирование может стать достаточно трудоёмким процессом, поэтому знать основные команды крайне необходимо. В этой статье мы рассмотрим 10 основных команд, которые могут пригодиться во время выполнения настройки или диагностики устройств.

10 команд, которые должен знать каждый пользователь Cisco IOS

№1: “?”

На первый взгляд использование? для вызова помощи кажется достаточно простым. Однако Cisco IOS кардинально отличается от других операционных систем в плане использования команды помощи. Поскольку Cisco IOS - это операционная система с командным интерфейсом, существуют тысячи команд для настройки и управления, а использование? поможет сэкономить немало времени.

Эту команду можно применять различными способами. Во-первых, используйте?, если не знаете какую команду написать. Например, вы можете написать? в командной строке для вывода всех возможных команд.

Также можно использовать?, если вы не знаете аргумент какой-либо команды. Например, можно ввести show ip ? Если команде не нужно никаких аргументов, роутер предложит только CR (возврат каретки).

Наконец, можно использовать? для просмотра всех команд, начинающихся с определённой буквы. Например, show c ? покажет все команды, начинающиеся с буквы c .

2: show running-configuration

Команда show running - config показывает текущую конфигурацию устройства. Running-configuration - это конфигурация, загруженная в данный момент в оперативную память роутера. Когда вы вносите изменения в оборудование, как раз эта конфигурация изменяется.

Важно помнить, что конфигурация не сохраняется пока не выполнить copy running - configuration startup - configuration . Команду show running-config можно сокращать до sh run .

№3: copy running-configuration startup-configuration

Эта команда сохранит текущие модификации в настройках (running-configuration, которая хранится в RAM), в энергонезависимую RAM (NVRAM). Если внезапно исчезнет электропитание, то данные в NVRAM сохранятся. Другими словами, если вы внесёте изменения в конфигурацию роутера или перезагрузите его, не используя перед этим данную команду, то все изменения будут утеряны. Команду можно сократить до copy run start .

Команда copy также используется для копирования текущей или стартовой конфигурации на TFTP-сервер.

4: show interface

Команда show interface отображает состояние интерфейсов маршрутизатора. Вот некоторые выводимые параметры:

  • Состояние интерфейса (вкл ./ выкл .)
  • Состояние протокола на интерфейсе
  • Использование
  • Ошибки

Эта команда играет важную роль для диагностики роутера или свитча. Её также можно использовать с указанием конкретного интерфейса, например, sh int fa 0/0 .

№5: show ip interface

Более распространёнными, чем show interface являются команды show ip interface и show ip interface brief . Команда show ip interface предоставляет огромное количество информации о конфигурации и состоянии протокола IP и его службах на всех интерфейсах. Команда show ip interface brief даёт краткий обзор интерфейсов, включая IP-адрес, статусы Layer 2 и Layer 3.

№6: config terminal, enable, interface, and router

У роутеров Cisco есть несколько разных режимов управления, в каждом из них отображаются или изменяются определённые параметры. Очень важно уметь перемещаться между этими режимами для успешной настройки маршрутизатора.

Когда вы авторизуетесь на роутере (SSH, Telnet, Console), сначала вы попадаете в user mode (пользовательский режим, где приглашение выглядит как >). В этом режиме можно написать enable для переключения в привилегированный режим (приглашение выглядит как #). В привилегированном режиме отображается любая информация, но нельзя вносить никакие изменения. Для того, чтобы попасть в режим глобальной конфигурации введите config terminal (или config t ), приглашение станет выглядеть как (config)# . В этом режиме можно изменять любые настройки. Для изменения параметра интерфейса (например, IP-адреса) переключитесь в режим конфигурирования командой interface (приглашение выглядит как (config-if)#). Помимо этого, из режима глобальной конфигурации вы можете попасть в режим конфигурации роутера с помощью команды router { protocol } . Для выхода из любого режима введите exit .

№7: no shutdown

Команда no shutdown включает интерфейс. Она используется в режиме конфигурации интерфейса. Может быть полезна при диагностике или конфигурации новых интерфейсов. Если с каким-либо интерфейсом возникла проблема, можно попробовать ввести shut и no shut . Разумеется, для того, чтобы выключить интерфейс введите shutdown . Команду можно сократить до no shut .

№8: show ip route

Команда show ip route выводит таблицу маршрутизации роутера. Она состоит из списка всех сетей, которые доступны роутеру, их метрике (приоритет маршрутов) и шлюза. Команду можно сократить до sh ip ro . Также после неё могут быть параметры, например sh ip ro ospf (показывает всю маршрутизацию OSPF).

Для очистки всей таблицы маршрутизации необходимо выполнить clear ip route * . Для удаления конкретного маршрута необходимо указать адрес сети после команды, например clear ip route 1.1.1.1 .

№9: show version

Команда show version показывает регистр конфигурации (в основном настройки загрузки маршрутизатора), когда последний раз роутер загружался, версию IOS, имя файла IOS, модель устройства, а также количество оперативной и флэш-памяти. Команду можно сократить до sh ver .

№10: debug

У команды debug есть много параметров, и она не работает без них. Эта команда предоставляет детальную отладочную информацию по конкретному приложению, протоколу или службе. Например, debug ip route будет сообщать вам каждый раз, когда маршрут добавляется или удаляется из роутера.

Для решения поставленной задачи необходимо выполнить следующее:

1. Заходим на cisco и в режиме конфигурирования включаем возможность удаленного выполнения команд:

Router#conf t Enter configuration commands, one per line. End with CNTL/Z. Router(config)#ip rcmd rsh-enable

2. Для безопасности необходимо указать с какого интерфейса будут осуществляться команды удаленного управления. В моем случае команда для cisco выглядит так:

Router(config)#ip rcmd source-interface GigabitEthernet0/1.1

— где GigabitEthernet0/1.1 интерфейс одной из локальных сетей, в которой находится сервер FreeBSD.

3. Необходимо указать имя локального пользователя cisco, от имени которого удаленный пользователь будет выполнять команды, ip адрес (или hostname) удаленного сервера и само имя удаленного пользователя. Данная команда будет иметь следующий вид:

Router(config)#ip rcmd remote-host cisco_user 192.168.100.3 remote_user enable 15

— где cisco_user – локальный пользователь, заведенный на cisco;
192.168.100.3 – ip адрес сервера, с которого будут выполняться команды удаленного администрирования;
remote_user – имя пользователя на удаленном сервере, от имени которого будут выполняться команды удаленного администрирования (в моем случае – это root сервера FreeBSD);
15 – уровень привилегий, с которыми будет работать локальный пользователь cisco.

Некоторое отступление . В моем случае, в качестве локального пользователя cisco, мною был использован пользователь admin , уже заведенный на cisco командой:

Router(config)#username admin privilege 15 secret swordfish

— где: admin – собственно – имя пользователя;
15 – уровень привилегий (в данном слечае – максимальный);
swordfish – пароль (замените на свой).

Если вам необходимо, создайте еще одного пользователя с привилегиями, отличными от 15, и пропишите ему команды, которые он будет иметь право с данным уровнем привилегий исполнять. Например, создадим пользователя traf с уровнем привилегий 5 и дадим ему возможность собирать и обнулять статистику какого-либо интерфейса по ip accounting . Листинг команд будет следующим:

Router(config)#username traf privilege 5 secret swordfish Router(config)#ip rcmd remote-host traf 192.168.100.3 root enable 5 Router(config)#privilege exec level 5 clear ip accounting Router(config)#privilege exec level 5 clear ip accounting checkpoint Router(config)#privilege exec level 5 show ip accounting checkpoint

4. Если вы в предыдущей команде указали ip адрес удаленного сервера, а не его hostname, вам необходимо дать следующую команду:

Router(config)#no ip rcmd domain-lookup

— которая отключит проверку соответствия ip в базе DNS его hostname, т.к. при неудачном сопоставлении – у вас не получится выполнить удаленные команды на cisco. В принципе, если ваш DNS настроен правильно, то данную команду можно опустить.

5. Нам осталось включить отладку проделанной работы, чтобы в случае неудачи иметь возможность отследить ошибки. Делается это так:

Router#deb ip tcp rcm RCMD transactions debugging is on

Просмотр отладочной информации осуществляется так:

Router#sh deb TCP: RCMD transactions debugging is on

Отключение отладочной информации будет осуществлена следующей командой:

Router#no debug ip tcp rcmd RCMD transactions debugging is off

На этом подготовку cisco к выполнению удаленных команд можно считать завершенной.

Листинг проделанной работы:

Router#conf t Router(config)#ip rcmd rsh-enable Router(config)#ip rcmd source-interface GigabitEthernet0/1.1 Router(config)#ip rcmd remote-host admin 192.168.100.3 root enable 15 Router(config)#no ip rcmd domain-lookup

Для проверки выполнения удаленных команд с сервера FreeBSD выполним под root’ом на нем команду:

# rsh -l admin 192.168.100.2 show clock 11:38:07.271 MSK Tue Aug 6 2013

Синтаксис команды прост:
— после флага -l идет имя локального пользователя в cisco;
192.168.100.2 – ip адрес cisco;
show clock – команда, которая должна выполниться на cisco.

Если после отработки данной команды вы получите примерно тоже самое, то задача решена.

ХХХХХХХХХХХ

Теперь настало время разобрать нюансы. Все они связаны с уже существующим настройками виртуальной консоли на вашей cisco — line vty 0 4 .

При моей первой попытке выполнить удаленную команду на cisco у меня выскочила ошибка No free VTYs:

# rsh -l admin 192.168.100.2 show clock No free VTYs.

Как оказалось, в моих настройках данной виртуальной консоли при подключении к ней, был обозначен только протокол ssh (transport input ssh). Для выполнения удаленных команд требуется еще и протокол telnet. (Причем при исходящих соединениях протокол telnet не обязателен). Так что настройки line vty 0 4 в этой части должны выглядеть так:

Line vty 0 4 ... transport input telnet ssh transport output ssh

Следующая ошибка, которая может у вас возникнуть, Permission denied. Она возникает, если вы неправильно указали локального пользователя в cisco, от имени которого должны выполняться удаленные команды:

# rsh -l root 192.168.100.26 show clock Permission denied.

В данном примере мною был указан пользователь root , не имеющий никакого отношения к самой cisco. Если вы не хотите путаться, то заведите пользователя на cisco с таким именем и не забудьте поправить команду ip rcmd remote-host на что-то подобное:

Router(config)#ip rcmd remote-host root 192.168.100.3 root enable

Опять же, из-за существующих настроек в моей cisco, я получил ошибку следующего рода – Access denied:

# rsh -l admin 192.168.100.2 show clock Access denied.

На этот раз дело оказалось в настройке списка доступа, указанном мною в line vty 0 4 :

Line vty 0 4 access-class acl_login in ...

Список acl_login выглядел сперва так:

Ip access-list extended acl_login permit tcp 192.168.0.0 0.0.0.255 any eq 22 deny ip any any

Для выполнения удаленных команд необходимо еще разрешить подключение к 514 порту (cmd). После правки список доступа стал выглядеть так:

Router#conf t Enter configuration commands, one per line. End with CNTL/Z. Router(config)#ip access-list extended acl_login Router(config-ext-nacl)#no 10 Router(config-ext-nacl)#10 permit tcp 192.168.0.0 0.0.0.255 any eq 22 514 Router(config-ext-nacl)#exit Router(config)#do sh ip acce ... Extended IP access list acl_login 10 permit tcp 192.168.0.0 0.0.0.255 any eq 22 cmd (2 matches) 20 deny ip any any (8 matches) ...

Настройка line vty 0 4 выглядит полностью так:

Line vty 0 4 access-class acl_login in exec-timeout 0 0 privilege level 15 logging synchronous login local transport input telnet ssh transport output ssh

В заключении осталось указать на возможные решения при выполнении удаленных команд на cisco, требующих подтверждения . В интерактивном режиме с ним проблем нет, но возникает вопрос, как послать его через rsh? Сам я пока с таким не сталкивался. Но вот подсказывают:

Есть несколько вариантов, подбирайте подходящий для вашей системы: 1. rsh -l user_cisco addr_cisco clear line tty X 2. rsh addr_cisco -l user_cisco clear line tty X 3. (sleep 2; echo ") | rsh addr_cisco clear line tty X P.S. Естественно с того хоста откуда лезете должен быть установлен priv-level 15: username xxx privilege 15 password ttt

OSPF (Open Shortest Path First)

router ospf (запуск процесса ospf)
Режим:
Router(config)#
Синтаксис:
router ospf process-id || no router ospf process-id
Описание:
process-id: Номер процесса OSPF. (любое число > 0) (можно запустить несколько процессов)
Пример:
Router(config)# router ospf 1

network area
Режим:
Router(config-router)#
Синтаксис:
network address wildcard-mask area area-id || no network address wildcard-mask area area-id
Описание:
address wildcard-mask: Адрес и wild-card маска сети, которая будет учавствовать в OSPF маршрутизации. (также определяет интерфейс на котором будет запущен OSPF)
Пример:
Router(config-router)# network 10.0.0.0 0.0.0.255 area 1

ip ospf cost
Режим:
Router(config-if)#
Синтаксис:
ip ospf cost cost || no ip ospf cost
Описание:
cost: Стоимость (метрика) маршрута (для данного интерфейса) для OSPF маршрутизации. (от 1 до 65535). При отсутствии данной команды стоимость (метрика) для данного интерфейса расчитываеться исходя из его пропускной способности. (см команду bandwidth)
Пример:
Router(config-if)# ip ospf cost 100

ip ospf priority
Режим:
Router(config-if)#
Синтаксис:
ip ospf priority number || no ip ospf priority
Описание:
number: Приоритет маршрутизатора. (от 1 до 65535). Приоритет используется при выборе выделенного (designated) маршрутизатора. Чем выше приоритет, тем больше шансов, что этот маршрутизатор станет выделенным.
Пример:
Router(config-if)#ip ospf priority 15

area
Режим:
Router(config-router)#
Синтаксис:
area area-id {
authentication
stub
nssa
default-cost cost
range address mask
virtual-link router-id
}
Описание:

  • area-id: для какой зоны будут дальнейшие настройки.
  • authentication Указание того, что для данной зоны включена авторизация. (см. команду ip ospf authentication-key)
  • Если указан параметр message-digest то будет использоваться авторизация по MD5 ключу. (см. команду ip ospf message-digest-key)
  • stub указывает, что данная зона являеться тупиковой. В нее не отправляються обновления о изменениях состояния каналов, а отправляются только суммированые данные. При указании параметра no-summary не отправляються и суммированые данные (LSA тип 3).
  • nssa Cisco как обычно вставила свои 5-копеек в протокол OSPF. :-). NSSA = not-so-stubby area. Не совсем тупиковая зона. (О как!) То же что и stub, но при этом маршрутизатор будет импортировать внешние маршруты.
  • Опция default-information-originate - говорить всем что маршрут 0.0.0.0 - через меня.
  • default-cost cost Указывает стоимость (метрику) суммарного маршрута по умолчанию отправляемого в тупиковую зону.
  • range address mask используеться для указания сумманого адреса и маски на границе зоны.
Пример: Router(config-router)#area 1 range 10.0.0.1 255.255.0.0
  • virtual-link router-id Если маршрутизатор не имеет прямой связи с зоной 0 (требование протокола OSPF), но имеет соединение с (например) с зоной 1, то зона 1 обьявляеться как "транзитная" (виртуальная).
Пример конфига (даже с авторизацией на транзитной зоне) есть тут.
Пример:
Router(config-router)# area 0 authentication message-digest

ip ospf authentication-key
Режим:
Router(config-if)#
Синтаксис:
ip ospf authentication-key password || no ip ospf authentication-key
Описание:
password: Пароль для авторизации пакетов от соседнего маршрутизатора на котором настроена авторизация аналогичным образом.(до 8 символов). Для включения авторизации необходимо явно указать это (для конкретной зоны) с помощью команды area authentication
Пример:
Router(config-if)# ip ospf authentication-key thispwd

ip ospf message-digest-key
Режим:
Router(config-if)#
Синтаксис:
ip ospf message-digest-key key-id md5 key || no ip ospf message-digest-key key-id
Описание:
Команда используеться для установки авторизационных параметров по алгоритму MD5. key-id: Номер ключа. (от 1 до 255). key: Пароль (буквенно-циферный). (до 16 символов). key-id и key ДОЛЖНЫ совпадать на соседних маршрутизаторах. Для включения авторизации необходимо явно указать это (для конкретной зоны) с помощью команды area authentication
Пример:
Router(config)# interface ethernet 0/1
Router(config-if)# ip ospf message-digest-key 1 md5 coolpwd1

ip ospf network
Режим:
Router(config-if)#
Синтаксис:
ip ospf network {
broadcast
non-broadcast {
point-to-multipoint
}
} || no ip ospf network
Описание:
Команда указывает протоколу OSPF к камому типу сети подключен данный интерфейс.
Пример:
Router(config-if)# ip ospf network non-broadcast

router-id
Режим:
Router(config-router)#
Синтаксис:
router-id ip-address || no router-id ip-address
Описание:
Команда необходима для явного указания ID маршрутизатора. (Иначе ID будет присвоен автоматически.) ID разных маршрутизаторов не должны совпадать!
Пример:
Router(config-router)# router-id 10.0.0.1



Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!