Операционная система межсетевого взаимодействия Cisco ( IOS ) - это семейство сетевых операционных систем, используемых на многих маршрутизаторах Cisco Systems и текущих сетевых коммутаторах Cisco . Ранее коммутаторы Cisco работали под управлением CatOS . IOS - это пакет функций маршрутизации, коммутации, межсетевого взаимодействия и телекоммуникаций, интегрированный в многозадачную операционную систему. Хотя кодовая база IOS включает в себя кооперативное многозадачное ядро, большинство функций IOS были перенесены на другие ядра, такие как QNX и Linux, для использования в продуктах Cisco.
Разработчик | Cisco Systems |
---|---|
Рабочее состояние | Текущий |
Исходная модель | Закрытый источник |
Последний релиз | 15.9 (3) M [1] / 15 августа 2019 г . |
Доступно в | английский |
Платформы | Cisco маршрутизаторы и коммутаторы Cisco |
Пользовательский интерфейс по умолчанию | Интерфейс командной строки |
Преемник | Cisco IOS XE |
Официальный веб-сайт | Cisco IOS |
Не все продукты Cisco работают под управлением IOS. Заметными исключениями являются продукты безопасности ASA , работающие под управлением операционной системы, основанной на Linux, маршрутизаторы операторов связи, работающие под управлением IOS-XR, и коммутатор Cisco Nexus, а также продукты коммутатора FC, работающие под управлением ОС Cisco NX-OS .
История
Сетевая операционная система IOS была разработана в 1980-х годах для маршрутизаторов с объемом памяти всего 256 КБ и низкой вычислительной мощностью процессора . Благодаря модульным расширениям IOS была адаптирована для расширения возможностей оборудования и новых сетевых протоколов. [2] Когда была разработана IOS, основной линейкой продуктов Cisco Systems были маршрутизаторы . Компания приобрела ряд молодых компаний, которые сосредоточились на сетевых коммутаторах , таких как изобретатель первого коммутатора Ethernet Kalpana , и в результате коммутаторы Cisco не работали с IOS. Серия Cisco Catalyst какое-то время будет запускать CatOS . [3] В ранних сетевых коммутаторах с модульным шасси от Cisco модули с функциями маршрутизации уровня 3 были отдельными устройствами, на которых работала IOS, а модули коммутаторов уровня 2 работали с CatOS. Со временем Cisco представила собственный режим для шасси, так что они работают только с одной операционной системой. [ указать ] Для коммутаторов Nexus Cisco разработала NX-OS , которая похожа на IOS, [4] за исключением того, что она основана на Linux. [5]
Интерфейс командной строки
Интерфейс командной строки (CLI) IOS предоставляет фиксированный набор команд, состоящих из нескольких слов . Доступный набор определяется «режимом» и уровнем привилегий текущего пользователя. «Режим глобальной конфигурации» предоставляет команды для изменения конфигурации системы, а «режим конфигурации интерфейса» предоставляет команды для изменения конфигурации конкретного интерфейса. Всем командам назначается уровень привилегий от 0 до 15, и к ним могут получить доступ только пользователи с необходимыми привилегиями. Через интерфейс командной строки можно определить команды, доступные для каждого уровня привилегий.
Большинство сборок IOS включает интерпретатор Tcl . Используя встроенную функцию диспетчера событий , интерпретатор может быть запрограммирован для реакции на события в сетевой среде, такие как сбой интерфейса или периодические таймеры.
Доступные командные режимы включают: [6]
- Пользовательский режим EXEC
- Привилегированный режим EXEC
- Режим глобальной конфигурации
- Режим монитора ПЗУ
- Режим настройки
- Более 100 режимов конфигурации и подрежимов.
Архитектура
Cisco IOS имеет монолитную архитектуру из-за ограниченных аппаратных ресурсов маршрутизаторов и коммутаторов в 1980-х годах. Это означает, что все процессы имеют прямой доступ к оборудованию для экономии времени процессора. Между процессами нет защиты памяти, и IOS имеет планировщик выполнения до завершения , что означает, что ядро не упреждает запущенный процесс . Вместо этого процесс должен вызвать ядро, прежде чем другие процессы получат возможность работать. IOS рассматривает каждый процесс как отдельный поток и присваивает ему значение приоритета, так что процессы с высоким приоритетом выполняются на ЦП перед процессами с низким приоритетом, помещенными в очередь, но процессы с высоким приоритетом не могут прерывать выполнение процессов с низким приоритетом. [7]
Монолитное ядро Cisco IOS не реализует защиту памяти для данных различных процессов. Вся физическая память отображается в одно виртуальное адресное пространство. Ядро Cisco IOS не выполняет подкачку памяти или подкачку. Следовательно, адресуемая память ограничена физической памятью сетевого устройства, на котором установлена операционная система. Однако IOS поддерживает наложение дублированного содержимого виртуальной памяти на одну и ту же физическую память. Эта архитектура была реализована Cisco для обеспечения производительности системы и минимизации операционных издержек операционной системы. [8]
Недостатком архитектуры IOS является то, что она увеличивает сложность операционной системы, возможно повреждение данных, поскольку один процесс может записывать поверх данных другого, и один процесс может дестабилизировать всю операционную систему или даже вызвать сбой программного обеспечения . В случае сбоя IOS операционная система автоматически перезагружается и перезагружает сохраненную конфигурацию. [9]
Маршрутизация
Во всех версиях Cisco IOS маршрутизация пакетов и пересылка ( коммутация ) являются разными функциями. Протоколы маршрутизации и другие протоколы выполняются как процессы Cisco IOS и вносят вклад в Базу маршрутной информации (RIB). Это обрабатывается для создания окончательной таблицы переадресации IP (FIB, Forwarding Information Base), которая используется функцией пересылки маршрутизатора. На платформах маршрутизаторов с программной пересылкой (например, Cisco 7200) большая часть обработки трафика, включая фильтрацию и пересылку списка управления доступом , выполняется на уровне прерывания с использованием Cisco Express Forwarding (CEF) или dCEF (Distributed CEF). Это означает, что IOS не нужно переключать контекст процесса для пересылки пакета. Функции маршрутизации, такие как OSPF или BGP, выполняются на уровне процесса. В маршрутизаторах с аппаратной пересылкой, таких как Cisco серии 12000, IOS вычисляет FIB в программном обеспечении и загружает его в оборудование пересылки (такое как ASIC или сетевой процессор), которое выполняет фактическую функцию пересылки пакетов.
Блок дескриптора интерфейса
Блок дескриптора интерфейса или просто IDB - это часть памяти или внутренней структуры данных Cisco IOS, которая содержит такую информацию, как IP-адрес, состояние интерфейса и статистику пакетов для сетевых данных. Программное обеспечение Cisco IOS поддерживает один IDB для каждого аппаратного интерфейса в конкретном коммутаторе или маршрутизаторе Cisco и один IDB для каждого подинтерфейса. Количество IDB, присутствующих в системе, зависит от типа аппаратной платформы Cisco.
Пакеты и наборы функций
IOS поставляется в виде уникального файла, скомпилированного для определенных сетевых устройств Cisco. Таким образом, каждый образ IOS включает набор функций, которые определяют команды и функции интерфейса командной строки (CLI), доступные на различных устройствах Cisco. Поэтому обновление до другого набора функций влечет за собой установку нового образа IOS на сетевом устройстве и перезагрузку операционной системы IOS. Информацию о версии IOS и наборе функций, работающих на устройстве Cisco, можно получить с помощью команды show version . [10]
Большинство продуктов Cisco, работающих под управлением IOS, также имеют один или несколько «наборов функций» или «пакетов», обычно восемь пакетов для маршрутизаторов Cisco и пять пакетов для сетевых коммутаторов Cisco . Например, выпуски Cisco IOS, предназначенные для использования на коммутаторах Catalyst , доступны в «стандартных» версиях (обеспечивающих только базовую IP-маршрутизацию), «расширенных» версиях, которые обеспечивают полную поддержку маршрутизации IPv4 , и версиях «расширенных IP-услуг», которые предоставляют расширенные функции, а также поддержка IPv6 . [11]
Начиная с ISR-маршрутизаторов серий 1900, 2900 и 3900, Cisco пересмотрела модель лицензирования IOS. [ необходима цитата ] Чтобы упростить процесс расширения набора функций и уменьшить необходимость перезагрузки сетевой операционной системы, Cisco представила универсальные образы IOS, которые включают в себя все функции, доступные для устройства, и клиенты могут разблокировать определенные функции, купив дополнительную лицензию на программное обеспечение . [12] Точный набор функций, необходимый для конкретной функции, можно определить с помощью браузера набора функций Cisco . Маршрутизаторы поставляются с установленной IP Base, и дополнительные лицензии на пакеты функций могут быть установлены в качестве надстроек для расширения набора функций устройства. Доступные пакеты функций:
- Данные добавляют такие функции, как BFD, IP SLA, IPX, L2TPv3, Mobile IP, MPLS, SCTP .
- Безопасность добавляет такие функции, как VPN, брандмауэр, IP SLA, NAC.
- Unified Comms добавляет такие функции, как CallManager Express, Gatekeeper, H.323, IP SLA, MGCP, SIP, VoIP, CUBE (SBC).
Образы iOS не могут быть обновлены с помощью исправлений программных ошибок. Чтобы исправить уязвимость в IOS, необходимо загрузить двоичный файл со всей операционной системой. [13]
Управление версиями
Cisco IOS версируется с использованием трех цифр и нескольких букв в общей форме ab (cd) e , где:
- а - номер основной версии.
- b - дополнительный номер версии.
- c - это номер выпуска, который начинается с единицы и увеличивается по мере выпуска новых выпусков так же, как выпускаются ab train. [ требуется пояснение ] «Поезд» - это, как говорят Cisco, «средство доставки программного обеспечения Cisco для определенного набора платформ и функций».
- d (не указывается в общих выпусках) - это промежуточный номер сборки.
- e (ноль, одна или две буквы) - это идентификатор серии выпусков программного обеспечения , например none (обозначает основную линию, см. ниже), T (для технологии), E (для предприятия), S (для поставщика услуг), XA как специальный набор функций, XB как другой набор специальных функций и т. д.
Перестроения - часто перестройка компилируется для исправления одной конкретной проблемы или уязвимости для данной версии IOS. Например, 12.1 (8) E14 - это Rebuild, 14 обозначает 14-ю реконструкцию 12.1 (8) E. Перестроения производятся либо для быстрого устранения дефекта, либо для удовлетворения клиентов, которые не хотят обновляться до более поздней основной версии, поскольку они могут использовать критическую инфраструктуру на своих устройствах и, следовательно, предпочитают минимизировать изменения и риски.
Промежуточные выпуски - обычно выпускаются еженедельно и образуют сводку текущих усилий по разработке. На консультативном веб-сайте Cisco может быть указано более одного возможного промежуточного решения для устранения связанной проблемы (причина этого неизвестна широкой публике).
Сопровождающие выпуски - доступны тщательно протестированные выпуски, включающие улучшения и исправления ошибок. Cisco рекомендует по возможности обновлять до отладочных выпусков вместо промежуточных и перестроенных выпусков.
Поезда
Cisco заявляет: «Поезд - это средство доставки программного обеспечения Cisco для определенного набора платформ и функций». [11]
До 12.4
До выпуска 15 Cisco IOS выпуски были разделены на несколько цепочек , каждая из которых содержала свой набор функций. Поезда более или менее соответствуют определенным рынкам или группам клиентов, на которые нацелена Cisco. [11]
- Основная линия должна быть самой стабильной версией, которую может предложить компания, и ее набор функций никогда не расширяется в течение всего срока ее службы. Обновления выпускаются только для устранения ошибок в продукте. Предыдущий технологический поезд становится источником для текущего магистрального поезда - например, поезд 12.1T становится основой для магистрального поезда 12.2. Поэтому, чтобы определить функции, доступные в конкретном основном выпуске, посмотрите на предыдущий выпуск T train. [14] : 6
- T - технология поезд, получает новые возможности и исправление ошибок на протяжении всего своей жизни, и , следовательно , потенциально менее стабилен , чем магистраль. (В версиях, предшествующих Cisco IOS Release 12.0, P- поезд служил технологическим шлейфом.) Cisco не рекомендует использовать T-train в производственной среде, если нет необходимости в срочном внедрении новой функции IOS в определенном T-шлейфе. [14] : 6
- S - Service Provider поезд, работает только на основном маршрутизатор продукции компании и сильно настроен для поставщика услуг клиентов. [14] : 6
- E - Enterprise поезд, настраивается для внедрения в корпоративной среде. [14] : 6
- B - широкополосный поезд, поддерживает интернет на основе широкополосных возможностей. [14] : 6
- X * (XA, XB и т.д.) - поезд Специальный выпуск, содержит один-офф релизов , предназначенных для исправления определенной ошибки или предоставить новую функцию. В конечном итоге они объединяются с одним из вышеуказанных поездов. [14] : 15
Время от времени появлялись другие поезда, разработанные для конкретных нужд - например, поезд 12.0AA содержал новый код, необходимый для продукта Cisco AS5800.
Начиная с 15.0
Начиная с Cisco IOS версии 15, есть только один поезд, то M / T поезд. Этот состав включает как расширенные версии обслуживания, так и стандартные версии обслуживания. В M - релизы распространяются выпуски обслуживания, и Cisco обеспечат исправления ошибок в течение 44 месяцев. В T - релизах являются стандартными выпусками обслуживания, и Cisco будет только обеспечить исправления в течение 18 месяцев.
Безопасность и уязвимости
Поскольку IOS необходимо знать пароль в открытом виде для определенных целей (например, аутентификация CHAP ), пароли, вводимые в CLI по умолчанию, слабо зашифрованы как зашифрованный текст типа 7, например « Router (config) #username jdoe password 7 0832585B1910010713181F ». Это предназначено для предотвращения атак "плечевого серфинга" при просмотре конфигураций маршрутизатора и небезопасно - они легко дешифруются с помощью программного обеспечения под названием "getpass", доступного с 1995 года, или "ios7crypt" [15], современного варианта, хотя пароли могут декодироваться маршрутизатором с помощью команды «keychain» и ввода пароля типа 7 в качестве ключа, а затем выдачи команды «show key»; приведенный выше пример расшифровывается как "stupidpass". [16] Однако программа не будет расшифровывать пароли типа 5 или пароли, установленные с помощью команды enable secret , которая использует соленые хэши MD5 . [17]
Cisco рекомендует, чтобы все устройства Cisco IOS реализовали модель безопасности аутентификации, авторизации и учета (AAA). AAA может использовать локальные базы данных, базы данных RADIUS и TACACS + . Однако локальная учетная запись обычно требуется в экстренных ситуациях. [18]
На конференции Black Hat Briefings в июле 2005 года Майкл Линн, работавший в то время в Internet Security Systems , представил информацию об уязвимости в IOS. [19] Cisco уже выпустила исправление, но попросила не раскрывать уязвимость. [20] Cisco подала иск, но урегулировал его после того, как был издан судебный запрет, чтобы предотвратить дальнейшее раскрытие информации. [21]
Поезд IOS XR
Для продуктов Cisco, требующих очень высокой доступности, таких как Cisco CRS-1 , ограничения монолитного ядра были неприемлемы. Кроме того, конкурентные маршрутизатор операционные системы , которые появились 10-20 лет после того, как IOS, такие как можжевельник «s JUNOS , были разработаны , чтобы не иметь этих ограничений. [22] В ответ Cisco разработала дерево Cisco IOS, которое предлагало модульность и защиту памяти между процессами, облегченные потоки, упреждающее планирование и возможность независимого перезапуска неудачных процессов. В группе разработчиков IOS XR использовалось микроядро операционной системы реального времени ( QNX ), поэтому большая часть исходного кода IOS была переписана, чтобы воспользоваться преимуществами функций, предлагаемых ядром. В 2005 году Cisco представила сетевую операционную систему Cisco IOS XR на сетевых маршрутизаторах серии 12000 , расширив архитектуру микроядра от маршрутизаторов CRS-1 до широко используемых базовых маршрутизаторов Cisco . В 2006 году Cisco представила модульность программного обеспечения IOS, которая расширяет архитектуру микроядра на среду IOS, но при этом обеспечивает возможность обновления программного обеспечения.
Смотрите также
- Cisco IOS XE
- Cisco IOS XR
- Cisco NX-OS
- ЮНОС
- Supervisor Engine (Cisco)
- Сетевая операционная система
Рекомендации
- ^ «Примечания к кроссплатформенной версии для Cisco IOS версии 15.9 (3) M» . 4 февраля 2021 . Проверено 9 марта 2021 года .
- ^ Брэд Эджворт, Аарон Фосс и Рамиро Гарса Риос (2014). IP-маршрутизация в Cisco IOS, IOS XE и IOS XR: Основное руководство по пониманию и реализации протоколов IP-маршрутизации . Cisco Press. п. 2. ISBN 9780133846768.CS1 maint: использует параметр авторов ( ссылка )
- ^ Гэри А. Донахью (2011). Network Warrior: все, что вам нужно знать, чего не было на экзамене CCNA . O'Reilly Media. п. 10. ISBN 9781449309350.
- ^ Гэри А. Донахью (2011). Network Warrior: все, что вам нужно знать, чего не было на экзамене CCNA . O'Reilly Media. п. 222. ISBN. 9781449309350.
- ^ Гэри А. Донахью (2011). Network Warrior: все, что вам нужно знать, чего не было на экзамене CCNA . O'Reilly Media. п. 274. ISBN 9781449309350.
- ^ «Командные режимы Cisco IOS» . Cisco . Проверено 27 сентября 2015 года .
- ^ Брэд Эджворт, Аарон Фосс и Рамиро Гарса Риос (2014). IP-маршрутизация в Cisco IOS, IOS XE и IOS XR: Основное руководство по пониманию и реализации протоколов IP-маршрутизации . Cisco Press. п. 2. ISBN 9780133846768.CS1 maint: использует параметр авторов ( ссылка )
- ^ Брэд Эджворт, Аарон Фосс и Рамиро Гарса Риос (2014). IP-маршрутизация в Cisco IOS, IOS XE и IOS XR: Основное руководство по пониманию и реализации протоколов IP-маршрутизации . Cisco Press. п. 2. ISBN 9780133846768.CS1 maint: использует параметр авторов ( ссылка )
- ^ Брэд Эджворт, Аарон Фосс и Рамиро Гарса Риос (2014). IP-маршрутизация в Cisco IOS, IOS XE и IOS XR: Основное руководство по пониманию и реализации протоколов IP-маршрутизации . Cisco Press. п. 2. ISBN 9780133846768.CS1 maint: использует параметр авторов ( ссылка )
- ^ Брэд Эджворт, Аарон Фосс и Рамиро Гарса Риос (2014). IP-маршрутизация в Cisco IOS, IOS XE и IOS XR: Основное руководство по пониманию и реализации протоколов IP-маршрутизации . Cisco Press. п. 2. ISBN 9780133846768.CS1 maint: использует параметр авторов ( ссылка )
- ^ а б в «Справочное руководство по программному обеспечению Cisco IOS и NX-OS» , официальный документ Cisco , полученный 18 июня 2013 г.
- ^ Брэд Эджворт, Аарон Фосс и Рамиро Гарса Риос (2014). IP-маршрутизация в Cisco IOS, IOS XE и IOS XR: Основное руководство по пониманию и реализации протоколов IP-маршрутизации . Cisco Press. п. 3. ISBN 9780133846768.CS1 maint: использует параметр авторов ( ссылка )
- ^ Брэд Эджворт, Аарон Фосс и Рамиро Гарса Риос (2014). IP-маршрутизация в Cisco IOS, IOS XE и IOS XR: Основное руководство по пониманию и реализации протоколов IP-маршрутизации . Cisco Press. п. 4. ISBN 9780133846768.CS1 maint: использует параметр авторов ( ссылка )
- ^ а б в г д е Руллан, Джон (2005), «Общие сведения о соглашениях об именах в Cisco IOS» (PDF) , презентация на конференции Cisco Academy , получено 10 октября 2016 г.
- ^ ios7crypt
- ^ Insecure.org Расшифровка пароля Cisco
- ^ «Факты о шифровании паролей Cisco IOS» . Дата обращения 12 сентября 2017 .
- ^ «Тест Cisco 500-052» . Проверено 21 фев 2017 .
- ^ Ким Зеттер (1 августа 2005 г.). «Недостаток маршрутизатора - это бомба с меткой» . Проводной . Проверено 9 августа 2014 года .
- ^ Ким Зеттер (27 июля 2005 г.). "Cisco Security Hole a Whopper" . Проводной . Проверено 9 августа 2014 года .
- ^ «Заявление о судебном запрете Федерального окружного суда (представление Black Hat)» . Пресс-релиз . Cisco Systems. 28 июля, 2005. Архивировано из оригинала 5 февраля 2012 года . Проверено 18 июня 2013 года .
- ^ Juniper Networks: JunOS.
Внешние ссылки
- Рекомендации Cisco по безопасности; Полная история
- Команды Cisco IOS
- Сообщество с открытым исходным кодом, ориентированное на Cisco
- Упаковка Cisco IOS
- Руткиты на устройствах Cisco IOS