Cisco просмотр конфига. Курс молодого бойца cisco: искусство владения консолью

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

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

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

Команда представляет собой начальное слово или слова, введенные в командной строке. Команды не чувствительны к регистру. После каждой введенной команды, включая любые ключевые слова и аргументы, нужно нажать Enter , чтобы отправить команду командному интерпретатору.

Ключевые слова описывают конкретные параметры командного интерпретатора. Например, команда show используется для отображения информации об устройстве. Эта команда имеет различные ключевые слова, которые должны использоваться для определения того, какой конкретный вывод должен отображаться.

Например:

Switch # show running-config

За командой show следует ключевое слово running-config , которое указывает, что текущая конфигурация должна отображаться в качестве вывода.

Для команды может потребоваться один или несколько аргументов. В отличие от ключевого слова, аргумент обычно не является предопределенным словом. Аргумент - это значение или переменная, определяемая пользователем.

Например:

Switch> traceroute 192.168.254.254 Traceroute - команда, 192.168.254.254 - определяемый пользователем аргумент.

Контекстно-зависимая справка

Контекстно-зависимая справка содержит список команд и аргументов, связанных с этими командами в контексте текущего режима. Чтобы получить доступ к контекстно-зависимой справке, нужно ввести знак вопроса “? ” в любом меню. Результат появится сразу, даже без нажатия клавиши Enter .

Одна из методов использования контекстно-зависимой справки - это получение списка доступных команд. Это можно использовать, если вы не уверены как правильно пишется команда или хотите увидеть, поддерживает ли IOS определенную команду в определенном режиме. Например, чтобы отобразить команды, доступные на уровне User EXEC , нужно ввести знак вопроса “? ”, в меню Switch .

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

И еще один тип контекстно-зависимой справки используется для определения того, какие параметры, ключевые слова или аргументы сопоставляются с определенной командой. При вводе команды введите пробел, за которым следует символ “? ” определить, что может или должно быть введено дальше.

Например:

Switch# cl clear clock Switch# clock set ? hh:mm:ss Current Time Switch# clock set 13:30:00 ? <1-31> Day of the month MONTH Month of the year Switch# clock set 13:30:00 21 February 2018 ? Switch# clock set 13:30:00 21 February 2018

Проверка синтаксиса команд

Когда команда отправляется нажатием клавиши Enter , интерпретатор командной строки анализирует команду слева направо, чтобы определить, какое действие запрашивается. Обычно IOS обеспечивает только отрицательную обратную связь, если что-то было введено неверно. Если интерпретатор не может понять введенную команду, он предоставит информацию о том, что не так с командой.

Двойственная команда (Ambiguous command) – введено недостаточно символов для, чтобы система распознала команду.

Switch# c % Ambiguous command:’c’

Неполная команда (Incomplete command) – не все необходимые ключевые слова или аргументы были введены.

Switch# clock set % Incomplete command.

Неверная команда (Invalid input) – команда введена некорректно. Ошибка произошла в месте, на которое указывает маркер

Горячие клавиши и сочетания клавиш

В CLI IOS есть возможность использовать горячие клавиши и сочетания клавиш, которые облегчают использование системы. Рассмотрим наиболее полезные из них:

  • Стрелка вниз - позволяет прокручивать строку вперед по введенным командам
  • Стрелка вверх – Позволяет прокручивать строку назад по введенным командам
  • Tab - завершает оставшуюся часть частично введенной команды или ключевого слова
  • Ctrl-A - переход к началу строки
  • Ctrl-E - перемещение в конец строки
  • Ctrl-R – повторное отображение строки
  • Ctrl-Z - Выход из режима конфигурации и возврат к User EXEC
  • Ctrl-C - выход из режима конфигурации или прерывание текущей команды
  • Ctrl-Shift-6 - Позволяет пользователю прерывать процесс IOS, такой как ping или traceroute

Рассмотрим их подробнее.

Клавиша Tab используется для завершения оставшейся части сокращенной команды и параметра, если аббревиатура содержит достаточно букв, чтобы отличаться от любых других доступных в данный момент команд или параметров. Когда для ввода уникальной команды или ключевого слова было введено достаточно символов, нужно нажать Tab , и CLI отобразит остальную часть команды или ключевого слова.

Повторное отображение строки обновит только что напечатанную строку. Например, IOS может отобразить сообщение в CLI во время набора команды пользователем. Ctrl-R можно использовать для обновления строки и избегать повторного ее ввода.

Выход из режима конфигурации выйдет из любого режима конфигурации и вернется в привилегированный режим EXEC. Поскольку IOS имеет иерархическую структуру, вместо того, чтобы выходить из каждого подрежима отдельно, можно использовать Ctrl-Z , привилегированный режим EXEC.

Стрелки вверх и вниз

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

Ctrl-Shift-6

Эта последовательность прерывает любой выполняющийся процесс. Когда процесс IOS инициируется из CLI, например, ping или traceroute , команда работает до тех пор, пока не будет завершена или не будет прервана. Пока процесс выполняется, CLI не отвечает. Чтобы прервать вывод и взаимодействовать с CLI, нужно нажать Ctrl-Shift-6 .

Прерывает ввод команды и выходит из режима конфигурации. Это может быть полезно после ввода команды, которая должна быть отменена.

Сокращенные команды или ключевые слова

Команды и ключевые слова могут быть сокращены до минимального количества символов, которые идентифицируют уникальный выбор. Например, команда configure может быть сокращена до conf , поскольку configure является единственной командой, которая начинается с conf . Аббревиатура con не будет работать, потому что более чем одна команда начинается с con . Ключевые слова также могут быть сокращены.

Switch# show interfaces Switch# sh int

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас:(Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

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

Введение: многие начинающие настройщики сетевого железа боятся консоли (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