Сегодня статья примет немного другой формат. Я перечислю некоторые трюки и хитрости по работе с IOS, которые облегчат работу нам, администраторам. Для кого-то это уже далеко не в новинку, а для начинающих думаю в самый раз. Кто что еще может добавить, пишите в комментариях, обязательно добавлю в основную статью.
Фильтрация вывода.
Часто возникает необходимость вывести на экран информацию в компактном виде, с минимальным количеством не нужной информации.
Например мы хотим вывести информацию на коммутаторе тех портов, которые в настоящий момент не подключены.
ASW#sh interfaces status | include notconnect
Gi0/3 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/4 notconnect 1 auto auto 10/100/1000BaseTX
Gi0/5 notconnect 1 auto auto 10/100/1000BaseTX
ASW#
include нам говорит о том, что мы ищим «вхождения».
Так же можно использовать противоположное — exclude, пример:
Допустим нам нужно просмотреть конфигурационный файл, но не полностью, а сделать вывод только интерфейсов и какие ip адреса на них «привязаны» (конечно есть специальные команда для этих целей — sh ip int brief ), но продемонстрируем как это можно сделать по другому:
ASW#show run | inc ^interface | ip address
interface Vlan100
ip address 10.0.100.50 255.255.255.0
interface Vlan111
ip address 10.0.111.12 255.255.255.0
ASW#
символ «^» в выражении указывает на то, что interface должно встречаться в начале строки.
И еще один доступный фильтр — по секциям. Работает в маршрутизаторах.
Например нужно вывести опять же наш конфигурационный файл, но не весь, а только например информацию о настройках протокола EIGRP.
R1#show run | section eigrp
router eigrp 1
network 131.108.0.0
R1#
Для того чтоб посмотреть какие секции доступны после section, ставим знак вопрос «?»
Есть еще один фильтр — begin. Как он работает посмотрим на примере:
ASW# sh run | begin interface
interface GigabitEthernet0/1
switchport access vlan 201
switchport mode access
spanning-tree portfast
ASW#
Доесть мы получили вывод, в котором наше выражение interface является первым, а так же получили вывод всех настроек интерфейса. Достаточно удобно.
Любители unix систем привыкли использовать команду «/выражение» для поиска введенного выражения. Могу обрадовать, что здесь это тоже доступно. Например смотрим конфигурационный файл с помощью show run, внизу мы видим «More», что говорит нам о том, что для того чтоб пролистать дальше нажмите пробел (страница пролистает на 1 лист), либо Enter пролистается на одну строчку.
И теперь если мы введем например /interface, то мы перейдем к первому совпадению. Так же достаточно удобно.
Часто когда мы что-то насатриваем, например протокол маршрутизации, находимся в секции настройки протокола, необходимо посмотреть какие-то данные в конфигурационной файле или что-то другое, но если мы наберем просто show run (даже в режиме глобальной конфигурации), то устройство выдаст ошибку, мол не знаю я такого. Для того чтоб команда прошла успешна, необходимо впереди добавить ключевое слово «do»
ASW(config)#sh run
^
% Invalid input detected at ‘^’ marker.ASW(config)#
ASW(config)#do sh run
Building configuration…Current configuration : 3615 bytes
пропущено…
ASW(config)#
Когда мы вводим неправильно команду, наше устройство расценивает введенное нами как какое-то доменное имя и пытается его отрезолвить. Мы теряем драгоценное время 🙂
ASW# shrun
Translating «shrun»…domain server (255.255.255.255)
% Unknown command or computer name, or unable to find computer address
Для того чтоб избавиться от таких задержек рекомендуется использовать команду:
no ip domain-lookup
Теперь если мы введем не правильное имя, устройство нам незамедлительно об этом сообщит.
Logging synchronous
Когда логирование включено на консольной (con 0) или vty линии, и больше не сделано никаких настроек, это не очень удобно с точки зрения того, кто настраивает устройство. В чем заключается это неудобство?
Когда конфигурируем устройство, и происходят какие-то события, которые отображаются, прерывается ввод команды, и мы не видим что мы уже ввели. Для этого необходимо использовать настройку logging synchronous на необходимых линиях:
ASW(config)# line con 0
ASW(config-line)# logging synchronous
ASW(config-line)# line vty 0 15
ASW(config-line)# logging synchronous
Сброс настроек интерфейса до значений по умолчанию.
Допустим нам нужно очистить все настройки какого-либо интерфейса. Если на нем много настроек, то не экономно с точки зрения времени использовать «no» для каждой настройке.
В Cisco IOS существует специальная команда, для того, чтоб сбросить все настройки до заводских, на том или ином интерфейе.
default f0/1
Команда работает в режиме глобальной конфигурации. Тем самым мы сбросили все установленные ранее настройки интерфейса f0/1.
Ускоряем вывод show running-config.
Если конфигурационный файл имеет достаточно внушительные размеры, и нам необходимо просмотреть его, это может занять некоторое время. В 12.3T IOS представлена новая функция кеширования, которая сделает эту процедуру менее затратной.
Чтоб активировать данную функцию, в режиме конфигурации необходимо ввести:
parser config cache interface
Вывод самого полного конфигурационного файла.
Все просто:
show running-config full
Перегрузка через указанное время.
Наверняка все знают о команде reload, которая осуществляет перегрузку устройства. Но не все знают, что можно задать некоторое время, через которое будет осуществлена перегрузка. В режиме глобальной конфигурации:
reload in 5
Через пять минут устройство «уйдет» в перегрузку.
Для чего это нужно и где это полезно применить?
Например, мы удаленно работаем с сетевым устройством. Скажем, правим Access-List. Но мы боимся потерять доступ к устройству (мало ли, что-нибудь напутали). Для этого, перед тем как редактировать наши списки доступа, мы можем указать, чтоб устройство начало перегружаться через 5 минут, и после того как время начало обратно отсчитываться, работать с списками доступа. Например применяем на каком-то интерфейсе, и мы что-то напутали, выключили себе доступ. Ничего страшного не произошло, через 5 минут устройство перегрузится и мы снова сможем зайти на него. (мы ведь с вами не делали write).
Если мы «привязали» списки доступа и все прошло хорошо то и нет смысла перегружать наше устройство, возмем и отключим поставленную нами задачу с помощью (в режиме глобальной конфигурации) :
reload cancel
Надеюсь эти «хитрости» кому-то облегчат работу.