Что такое cisco ios
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Cisco IOS (Internetwork Operating System)
Разработчик | Cisco Systems |
---|---|
Состояние разработки | Поддерживается |
Исходный код | Закрытый исходный код |
Последний релиз | 15.6(3)M [Источник 1] / 31 июля 2016 |
Доступно в | Английский |
Платформы | Сетевые коммутаторы и большинство маршрутизаторов Cisco |
По умолчанию пользовательский интерфейс | Командная строка |
Официальный веб-сайт | Cisco IOS |
Не вся продукция Cisco использует IOS. Например, ASA использует систему на базе Linux и маршрутизаторы на IOS-XR.
Содержание
Интерфейс
Командная строка IOS предоставляет фиксированный набор команд, доступ к которым зависит от прав доступа текущего пользователя. «Глобальный режим настройки» позволяет команды для изменения системных настроек, «режим настройки интерфейса» предоставляет команды для настройки конкретного интерфейса. Каждой команде присвоен уровень доступа от 0 до 15, поэтому они доступны только тем пользователям, у которых достаточно прав.
Большинство сборок IOS включают в себя интерпретаторы Tcl. Используя встроенный обработчик событий, интерпретатор можно запрограммировать на обработку ошибок и пр.
Версии
Номер версии ОС Cisco IOS состоит из трех чисел и нескольких символов a.b(c.d)e, где [Источник 3]
Ребилд – Сборка, в которой исправлена одна проблема или уязвимость в какой-либо определённой версии IOS. Ребилды нужны для быстрого исправления программных дефектов, а также для минимизации рисков у тех клиентов, которым неудобно обновлять ПО до новой версии из-за критической инфраструктуры на их устройствах.
Промежуточный релиз – Обычно выпускается еженедельно и представляет собой отчёт о текущей деятельности. Перечень промежуточных релизов может включать несколько версий для исправления нескольких проблем.
Сопровождаемый релиз – Строго проверенный релиз с устранёнными неисправностями, включающий в себя различные улучшения. Cisco рекомендует считать эти версии приоритетными, по сравнению с предыдущими двумя.
Серии
Cisco разделяет своё ПО на так называемые серии (англ. Train), каждая предназначена для своих целей. [Источник 4]
До версии 12.4
Релизы разделялись на несколько серий и каждая содержала свой набор функций. В большей или меньшей степени каждая серия была преднезначена для определённой группы клиентов. Эта схема была актуально вплоть до 15-го релиза.
Время от времени появлялись другие серии, созданные для отдельных нужд, например серия 12.0AA содержала новый код, который требовался для Cisco AS5800.
После 15.0
Метки релиза
Каждый релиз сопровождается специальной меткой, которая говорит о качестве и удобстве использования.
Наборы функций
У подавляющего большинства продукции Cisco, которая использует IOS, также есть несколько так называемых «наборов функций», обычно 8 штук для маршрутизаторов Cisco и 5 для коммутаторов Cisco. Например, релизы Cisco IOS, предназначенные для использования на коммутаторах Catalyst доступны в качестве «стандартной» версии (обеспечивающей только базовую IP-маршрутизацию), «улучшенной» версии, полностью поддерживающей IPv4 маршрутизацию и «продвинутую» версию, которая к тому же поддерживает IPv6. [Источник 4]
Каждый пакет программ соответствует одной из сервисных категорий:
Определить необходимый набор функционала можно, используя Cisco Feature Set Browser.
Начиная с 1900, 2900 и 3900 моделей ISR-маршрутизаторов, Cisco пересмотрели лицензирование моделей IOS. Маршрутизаторы поставляются с предустановленным паком «IP Base» и лицензией на дополнительный функционал, которая позволяет добавить следующие паки:
Архитектура
Во всех версиях Cisco IOS маршрутизация пакетов и пакетная передача (коммутация) являются разными функциями. Маршрутизация и другие протоколы выполняются в качестве процессов и составляют Базу Маршрутизации (Routing Information Base). Это необходимо для составления конечной таблицы IP-передачи (FIB, Forwarding Information Base), которая используется для передачи функций маршрутизатора. На платформах маршрутизаторов с передачей «software-only» (например Cisco 7200) большинство манипуляций с трафиком, включая фильтрацию и передачу контрольного списка доступа, осуществляются на уровне прерываний с использованием Cisco Express Forwarding (CEF) или dCEF (Distributed CEF). Это означает, что у IOS нет необходимости переключать контекст для передачи пакетов. Функции маршрутизации, такие как OSPF и BGP работают на уровне процессов. В маршрутизаторах с передачей на уровне железа (Cisco 12000) таблицы IP-передачи вычисляется на программном уровне и загружается в передающее устройство (например сетевой процессор), который и осуществляет передачу пакетов.
Cisco IOS имеет «монолитную» архитектуру. Это означает, что система работает как единый объект и все процессы разделяют между собой единое пространство памяти. Между процессами не предусмотрена защита памяти, поэтому из-за каких либо дефектов в коде системы один процесс может повредить память другого процесса. Планировщик работает по принципу «работа до завершения», что означает, что процесс должен сообщить ядру о том, что он завершился и настала очередь следующего процесса. Для продуктов Cisco, требующих высокий уровень доступности (например Cisco CRS-1), такие ограничения неприемлемы. В добавок, конкурирующие ОС, появившиеся через 10-20 лет после IOS, такие как JUNOS от Juniper Networks, Inc., этих ограничений не содержали. Ответом Cisco была разработка новой версии Cisco IOS под названием IOS XR, предлагающей модульный принцип организации и защиту памяти между процессами, оптимизированные потоки, «упреждающий» планировщик и возможность независимо перезапускать неудачные процессы. IOS XR использует стороннее микроядро операционной системы реального времени QNX, поэтому большая часть кода IOS была переписана с целью использовать преимущества нового ядра. Микроядро устроено таким образом, что если нет необходимости исполнять процесс в само́м ядре, то он исполняется в качестве процесса обычного приложения. Благодаря такому методу, IOS XR способна достигать уровня доступности, подходящего для новых платформ маршрутизаторов. Таким образом IOS и IOS XR, имея мало общего в кодовой базе, сильно связаны по своему устройству и функционалу.
В 2005 Cisco представила IOS XR на платформе Cisco 12000 c микроядром, расширенным с CRS-1 до широко распространённого магистрального маршрутизатора Cisco. В 2006 Cisco предоставила модульность программного обеспечения, модернизирующую микроядро QNX в более традиционную среду IOS, сохраняя при этом необходимый для клиентов функционал. В данный момент это используется в корпоративных коммутаторах Catalyst 6500.
Использование командной строки
Безопасность и уязвимости
На конференции «Black Hat Briefings» в июле 2005, Майкл Линн, работавший в то время на IBM Internet Security Systems рассказал об уязвимости в IOS, хотя Cisco к тому времени выпустила патч и попросила не раскрывать информацию об уязвимостях. Тогда Cisco подала в суд, однако дело было приостановлено во избежание дальнейших раскрытий слабых мест системы
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Про операционную систему Cisco IOS
Хотим рассказать про операционную систему IOS, разработанную компанией Cisco. Cisco IOS или Internetwork Operating System (межсетевая операционная система) это программное обеспечение, которое используется в большинстве коммутаторов и маршрутизаторов Cisco (ранние версии коммутаторов работали на CatOS). IOS включает в себя функции маршрутизации, коммутации, межсетевого взаимодействия и телекоммуникаций, интегрированных в мультизадачную операционную систему.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Не все продукты Cisco используют IOS. Исключения составляют продукты безопасности ASA, которые используют операционную систему Linux и роутеры-маршрутизаторы, которые запускают IOS-XR. Cisco IOS включает в себя ряд различных операционных систем, работающих на различных сетевых устройствах. Существует много различных вариантов Cisco IOS: для коммутаторов, маршрутизаторов и других сетевых устройств Cisco, версии IOS для определенных сетевых устройств, наборы функций IOS, предоставляющие различные пакеты функций и сервисов.
Управление устройствами с IOS происходит при помощи интерфейса командной строки (CLI), при подключении при помощи консольного кабеля, по Telnet, SSH либо при помощи AUX порта.
Названия версий Cisco IOS состоят из трех чисел, и нескольких символов a.b(c.d)e, где:
Rebuild – часто ребилды выпускаются чтобы исправить одну конкретную проблему или уязвимость для данной версии IOS. Ребилды производятся либо для быстрого устранения проблемы, либо для удовлетворения потребностей клиентов, которые не хотят обновляться до более поздней крупной версии, поскольку они могут использовать критическую инфраструктуру на своих устройствах и, следовательно, предпочитают свести к минимуму изменения и риск.
Interim release – промежуточные выпуски, которые обычно производятся на еженедельной основе и образуют срез текущих наработок в области развития.
Maintenance release – протестированные версии, которые включают в себя усовершенствования и исправления ошибок. Компания Cisco рекомендует, по возможности, обновлять ПО до версии Maintenance.
Каждый отдельный feature set соответствует одной категории услуг помимо базового набора (IP Base – Static Routes, OSPF, RIP, EIGRP. ISIS, BGP, IMGP, PBR, Multicast):
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Cisco IOS. Знакомимся ближе.
Статья 2013 года, впервые опубликована на сайте учебного центра “Сетевые Технологии”. Продублирована тут для сохранения статьи (ссылка на уц не работает).
Это первая статья из серии, в которой будут рассматриваться различные полезные, на мой взгляд, возможности IOS (команды, функции и др). В этой серии каждая отдельная функция или механизм не будут объясняться подробно, будет дан только обзор возможностей и несколько примеров использования. Многие из них, вероятно, будут вам знакомы, но, надеюсь, что в каждой статье вы найдете что-то новое и полезное.
В этой статье будут рассмотрены базовые команды IOS, которые могут быть полезны всем, независимо от того, какие функции настроены на оборудовании.
Информация на сайте Cisco
По настройке оборудования Cisco достаточно много документации, как на официальном сайте, так и на других. Но бывает, что в поисках информации о конкретной команде или функции, приходится просматривать много сайтов и форумов, пока получается добраться до нужной информации. Возможно, небольшие подсказки помогут вам сократить время в следующий раз.
Cisco Feature Navigator
Возможности, которые будут рассматриваться в этой статье и следующих, или те, которые интересуют вас, могут быть доступны не во всех версиях IOS. Для того чтобы проверить доступно ли это (или любая другая функция) в конкретной модели оборудования или версии IOS, можно воспользоваться Cisco Feature Navigator (CFN).
CFN позволяет подходить к поиску с разных сторон. Вы можете найти в каких версиях IOS и для каких платформ доступна функция, или какие функции доступны в определенном IOS. Интерфейс CFN достаточно прост и понятен, так что не нуждается в особых объяснениях.
Документация на cisco.com
Документация на сайте cisco.com разбита на несколько разделов. Например: настройка, поиск неисправностей, дизайн. Начать знакомство с классификацией документов можно с общей страницы. Далее, можно выбрать технологию или тип устройства, для которого нужна документация.
Одни из основных документов, которые могут быть полезны при настройке оборудования – это command reference и configuration guide.
Command reference – это документы на сайте Cisco, которые описывают команды. В них описан синтаксис команды, в каких случаях и для чего она используется, примеры использования, в какой версии IOS она появилась. Документы разделены по версиям IOS, так что лучше сразу искать документ соответствующий вашей версии. Пример описания команды shutdown в command reference.
Configuration guide – документы на сайте Cisco, в которых описываются различные функции, протоколы и т.п. Есть и теоретические сведения, команды и примеры настройки. Документы разделены по тематике и версиям IOS, так что лучше сразу искать документ соответствующий вашей версии. Configuration guide по настройке NAT.
Полезные команды
В этом разделе рассматриваются несколько простых, но полезных в работе с оборудованием, команд.
reload
При настройке удаленного оборудования, можно допустить ошибку в настройках, из-за которой будет потерян доступ к оборудованию. Для того чтобы подстраховаться от подобных случаев, можно воспользоваться запланированной перезагрузкой.
Если Вы планируете изменять настройки, которые могут привести к потери связи, то можно заранее указать, например, что маршрутизатор должен быть перезагружен через 20 минут:
В таком случае, если в конфигурации была допущена ошибка, то при перезагрузке маршрутизатор вернется к исходной рабочей конфигурации.
Если изменения были применены и никаких проблем не возникло, то можно отменить запланированную перезагрузку:
Аналогичным образом можно указывать точное время, когда маршрутизатор должен быть перезагружен:
show processes
Во время обычной работы с оборудованием или во время поиска неисправностей, может понадобиться информация о том, какие процессы работают на маршрутизаторе, какие из них больше всего загружают процессор.
Команда show processes отображает информацию об активных процессах. Параметры команды позволяют отобразить информацию о статистике загрузки процессора, объеме используемой памяти, и даже представить информацию в виде графиков. Далее несколько примеров использования команды.
Отображение отсортированного списка процессов:
Отображение списка процессов отсортированного по загрузке за последние 5 минут:
Графическое представление загрузки процессора:
Отображение списка процессов отсортированных по объему используемой памяти:
Подробнее о команде show processes, ее параметрах и описание значений вывода команд.
interface range и interface range macro
При работе с коммутаторами, часто возникает задача выполнить одинаковое действие с группой портов. Для этого используется команда interface range:
В команде могут быть перечислены не только порты идущие подряд:
Кроме того, если какие-то диапазоны портов используются постоянно, удобно создать для этого диапазона имя (в этом примере имя диапазона “HOSTS”) с помощью команды define interface-range:
Тогда, при дальнейших настройках этого диапазона, порты можно не перечислять, а переходить в режим настройки портов по имени:
Примечание: Не путайте задание имени диапазону со smart macros (будут рассмотрены в следующей статье). Эти функции могут использоваться вместе.
default interface
Иногда возникает необходимость обнулить настройки интерфейса. Но, если к интерфейсу применено большое количество команд, то удалять их может быть достаточно неудобно. Например, интерфейс настроен так:
Для того чтобы обнулить его настройки, можно воспользоваться командой default interface:
Эту команду можно выполнять и с диапазоном интерфейсов или используя заданное ранее имя для диапазона интерфейсов:
show control-plane host open-ports
Команда show control-plane host open-ports показывает какие TCP и UDP-порты открыты на маршрутизаторе. У нее есть некоторые ограничения: не все сервисы, использующие UDP, отображаются (RIP), и не отображаются протоколы, которые не используют TCP и UDP (например, OSPF, EIGRP).
Пример вывода команды:
Фильтрация и перенаправление вывода командной строки
Как правило, со временем конфигурация разрастается и становится все сложнее просматривать ее полностью, при поиске каких-то определенных настроек. Упростить и ускорить просмотр нужных команд может фильтрация вывода.
Вывод любой команды show или more может быть отфильтрован или перенаправлен. Доступные параметры представлены в таблице:
Команда | Описание |
---|---|
include | Показать строки, в которых встретилось выражение |
begin | Показать вывод начиная с первой строки, в которой встретилось выражение |
section | Показывает раздел вывода, если с заданным выражением есть совпадение в заголовке раздела. Иначе, работает как include |
exclude | Исключить строки, в которых встретилось выражение |
redirect | Перенаправить вывод в файл |
tee | Перенаправить вывод в файл и показать в командной строке |
append | Добавить вывод к существующему файлу |
count | Количество строк, которые совпадают с выражением |
Команда more позволяет просматривать файлы. Например:
Перенаправление вывода командной строки
Перенаправить вывод команды sh run в файл R1_config.cfg:
Перенаправить вывод команды sh ip route в файл R1_routing.cfg и показать вывод к командной строке:
Добавить вывод команды sh ip int br к файлу R1_routing.cfg:
Фильтрация вывода команд show
include
Показать строки конфигурационного файла, в которых встречается “ip nat”
Если нас интересуют только строки, которые начинаются на “ip nat”:
Если нужно вывести строки, которые начинаются на “ip nat” ИЛИ “ ip nat” (следующие | в строке используются как ИЛИ):
Добавить к выводу интерфейсы, к которым применены команды ip nat inside и ip nat outside:
exclude
Исключить из вывода интерфейсы на которых не назначены IP-адреса:
Показать sh run без знаков восклицания:
section
Очень удобный фильтр, который, к сожалению, есть только на маршрутизаторах (и только некоторых коммутаторах). С помощью него можно отфильтровать раздел конфигурации.
Например, показать настройки протоколов маршрутизации:
begin
С помощью параметра begin можно показать конфигурацию начиная с какой-то строки. Для коммутаторов это может использоваться и как альтернатива параметру section.
Показать конфигурацию начиная со строки, в которой встречается “access”
Фильтрация и нумерация строк конфигурации
Иногда может быть удобно использовать отображение номеров строк при фильтрации вывода команд. Например, если вы забыли точное название route-map, конфигурацию которой хотите посмотреть, то сначала можно дать такую команду:
Теперь, когда понятно название route-map, можно, чтобы не писать его (особенно если название длинное), отфильтровать конфигурацию по номеру строки:
Поиск из поля “–More–”
В IOS есть еще один способ фильтрации, который по действию аналогичен параметру begin.
Если вывод команды достаточно длинный, то отображается только первая часть, а затем идет поле:
Если теперь набрать /выражение, то дальнейший вывод отфильтруется и ввод команды будет продолжен начиная со строки в которой встречается “выражение”.
Просмотр команды sh ip interface, а затем фильтрация начиная со строки в которой встречается 0/3:
Просмотр команды sh run, а затем фильтрация начиная со строки в которой встречается route-map в начале строки:
Работа с конфигурацией
show run
Конечно же, одна из первых вещей, которую узнает начинающий сетевик – это команда show run. Рассмотрим некоторые менее известные параметры этой команды.
Параметр all позволяет посмотреть значения по умолчанию, которые скрываются при просмотре show run:
Например, используя параметр all и фильтрацию вывода, можно посмотреть какие значения по умолчанию у таймаутов относящихся к трансляции адресов:
Параметр brief позволяет скрыть некоторую информацию, которая, как правило, не нужна при просмотре. Например, открытые ключи SSH:
Параметр linenum перед каждой строкой дописывает номер строки. Может быть полезным, например, во время общения, когда надо указать о какой команде идет речь:
Кроме того, есть несколько параметров, которые позволяют просматривать отдельные части конфигурации. Самый популярный параметр interface. Отобразить конфигурацию интерфейса fa0/1:
aliases
Многие команды просмотра информации достаточно длинны, а использовать их нужно часто. В этом случае на помощь может прийти создание alias. Их использование сокращает время настройки, и позволяет быстрее найти ошибки, при возникновении каких-то проблем.
Синтаксис команды alias:
Например, конфигурация устройств часто достаточно большая и просматривать ее полностью неудобно. Когда вы знаете, какая часть конфигурации вас интересует, можно воспользоваться фильтрами для поиска необходимых строк. Для того чтобы фильтры удобнее было использовать, можно создать для них alias.
Например, фильтры применяемые к команде show run, это поиск нужных частей в конфигурации. Можно считать, что это команда find и создать, например, такие alias:
После этого, для того чтобы, например, показать те строки конфигурации, в которых встречается ip nat, надо выполнить такую команду: R1#fi ip nat
Для наиболее часто выполняемых команд также есть смысл создать alias. Например, для команды show ip interface brief:
Для того чтобы команду можно было выполнить в одинаковом сокращенном варианте в режиме enable и в конфигурационном, надо создавать дополнительный alias:
Примеры alias для других популярных команд:
Пример задания alias для одинаковых команд в разных режимах:
Часто бывает так, что при выполнении команды просмотра из конфигурационных подрежимов, забывают написать “do”.
Можно создать alias в нужных подрежимах, для того чтобы можно было писать “sh” вместо “do sh” (конечно подрежимов очень много, но создание такого alias для основных из них, может быть вполне достаточным):
Далее еще несколько вариантов alias.
Отображение команды sh ip route без шапки с расшифровкой:
Соседи CDP с IP-адресами в кратком виде:
diff для Cisco
При настройке оборудования бывает, что посреди процесса настройки вас отвлекают. По возвращению вы не помните, что уже успели сделать, а если сессия завершилась и истории перед глазами нет, то сложно вспомнить какие изменения вы внесли.
В этом может помочь возможность сравнения файлов, которая появилась благодаря функции archive. Функция archive используется для автоматизации сохранения конфигурации. Она будет рассмотрена в одной из следующих статей. А сейчас мы воспользуемся только возможностью сравнения файлов.
Например, для того чтобы сравнить стартовую и текущую конфигурации, надо дать такую команду: show archive config differences nvram:startup-config system:running-config
Пример выполнения команды:
Так как команда достаточно длинная, то лучше создать для нее alias:
Аналогичным образом можно сравнивать не только текущую и стартовую конфигурации, но и другие файлы:
Заключение
В этой статье были рассмотрены: несколько полезных команд, фильтрация вывода команд в IOS, и подсказки по поиску нужной документации.
В следующих статьях будут рассмотрены более продвинутые возможности IOS, в том числе функции, которые позволяют автоматизировать выполнение различных действий и создавать свои собственные сценарии.