Cisco Internetwork Operating System ( IOS ) es una familia de sistemas operativos de red que se utilizan en muchos enrutadores de Cisco Systems y en los conmutadores de red de Cisco actuales . Anteriormente, los switches de Cisco ejecutaban CatOS . IOS es un paquete de funciones de enrutamiento, conmutación, interconexión de redes y telecomunicaciones integrado en un sistema operativo multitarea . Aunque el código base de IOS incluye un kernel cooperativo multitarea , la mayoría de las funciones de IOS se han adaptado a otros kernels como QNX y Linux para su uso en productos de Cisco.
Desarrollador | Cisco Systems |
---|---|
Estado de trabajo | Actual |
Modelo fuente | Fuente cerrada |
Último lanzamiento | 15.9 (3) M [1] / 15 de agosto de 2019 |
Disponible en | inglés |
Plataformas | Enrutadores Cisco y conmutadores Cisco |
Interfaz de usuario predeterminada | Interfaz de línea de comandos |
Sucesor | Cisco IOS XE |
Página web oficial | Cisco IOS |
No todos los productos de Cisco funcionan con IOS. Las excepciones notables incluyen los productos de seguridad ASA , que ejecutan un sistema operativo derivado de Linux, los enrutadores de operador que ejecutan IOS-XR y el conmutador Nexus de Cisco y los productos de conmutador FC que ejecutan Cisco NX-OS .
Historia
El sistema operativo de red IOS se desarrolló en la década de 1980 para enrutadores que tenían solo 256 kB de memoria y baja potencia de procesamiento de CPU . A través de extensiones modulares, IOS se ha adaptado para aumentar las capacidades de hardware y los nuevos protocolos de red. [2] Cuando se desarrolló IOS, la principal línea de productos de Cisco Systems eran los enrutadores . La empresa adquirió una serie de empresas jóvenes que se centraron en conmutadores de red , como el inventor del primer conmutador Ethernet Kalpana y, como resultado, los conmutadores Cisco no ejecutaban el IOS. La serie Cisco Catalyst funcionaría durante algún tiempo con CatOS . [3] En los primeros conmutadores de red de chasis modular de Cisco, los módulos con funcionalidades de enrutamiento de capa 3 eran dispositivos separados que ejecutaban IOS, mientras que los módulos de conmutador de capa 2 ejecutaban CatOS. Cisco finalmente introdujo el modo nativo para chasis, de modo que solo ejecutan un sistema operativo. [ especificar ] Para los conmutadores Nexus, Cisco desarrolló NX-OS , que es similar a IOS, [4] excepto que está basado en Linux. [5]
Interfaz de línea de comandos
La interfaz de línea de comandos (CLI) de IOS proporciona un conjunto fijo de comandos de varias palabras . El conjunto disponible está determinado por el "modo" y el nivel de privilegio del usuario actual. El "modo de configuración global" proporciona comandos para cambiar la configuración del sistema y el "modo de configuración de interfaz" proporciona comandos para cambiar la configuración de una interfaz específica. A todos los comandos se les asigna un nivel de privilegio , de 0 a 15, y solo los usuarios con los privilegios necesarios pueden acceder a ellos. A través de la CLI, se pueden definir los comandos disponibles para cada nivel de privilegio.
La mayoría de las versiones de IOS incluyen un intérprete de Tcl . Con la función de administrador de eventos incorporada, se puede programar el intérprete para que reaccione a eventos dentro del entorno de red, como fallas en la interfaz o temporizadores periódicos.
Los modos de comando disponibles incluyen: [6]
- Modo EXEC de usuario
- Modo EXEC privilegiado
- Modo de configuración global
- Modo de monitor de ROM
- Modo de configuración
- Más de 100 modos y submodos de configuración.
Arquitectura
Cisco IOS tiene una arquitectura monolítica , debido a los recursos de hardware limitados de los enrutadores y conmutadores en la década de 1980. Esto significa que todos los procesos tienen acceso directo al hardware para ahorrar tiempo de procesamiento de la CPU. No hay protección de memoria entre los procesos e IOS tiene un programador de ejecución hasta su finalización , lo que significa que el kernel no se adelanta a un proceso en ejecución . En cambio, el proceso debe realizar una llamada al kernel antes de que otros procesos tengan la oportunidad de ejecutarse. IOS considera cada proceso como un solo subproceso y le asigna un valor de prioridad, de modo que los procesos de alta prioridad se ejecutan en la CPU antes que los procesos de baja prioridad en cola, pero los procesos de alta prioridad no pueden interrumpir la ejecución de procesos de baja prioridad. [7]
El kernel monolítico de Cisco IOS no implementa protección de memoria para los datos de diferentes procesos. Toda la memoria física se asigna a un espacio de direcciones virtual. El kernel de Cisco IOS no realiza ninguna paginación o intercambio de memoria . Por lo tanto, la memoria direccionable se limita a la memoria física del dispositivo de red en el que está instalado el sistema operativo. Sin embargo, IOS admite la creación de alias de contenido de memoria virtual duplicado en la misma memoria física. Cisco implementó esta arquitectura para garantizar el rendimiento del sistema y minimizar los gastos operativos del sistema operativo. [8]
La desventaja de la arquitectura IOS es que aumenta la complejidad del sistema operativo, la corrupción de datos es posible ya que un proceso puede escribir sobre los datos de otro, y un proceso puede desestabilizar todo el sistema operativo o incluso causar un bloqueo forzado del software . En el caso de una falla de IOS, el sistema operativo se reinicia automáticamente y vuelve a cargar la configuración guardada. [9]
Enrutamiento
En todas las versiones de Cisco IOS, el enrutamiento y el reenvío ( conmutación ) de paquetes son funciones distintas. El enrutamiento y otros protocolos se ejecutan como procesos de Cisco IOS y contribuyen a la base de información de enrutamiento (RIB). Esto se procesa para generar la tabla de reenvío de IP final (FIB, base de información de reenvío), que es utilizada por la función de reenvío del enrutador. En las plataformas de enrutador con reenvío de solo software (p. Ej., Cisco 7200), la mayor parte del manejo del tráfico, incluido el filtrado y el reenvío de listas de control de acceso , se realiza a nivel de interrupción mediante Cisco Express Forwarding (CEF) o dCEF (Distributed CEF). Esto significa que IOS no tiene que realizar un cambio de contexto de proceso para reenviar un paquete. Las funciones de enrutamiento como OSPF o BGP se ejecutan a nivel de proceso. En los routers con reenvío basado en hardware, como la serie Cisco 12000, IOS calcula el FIB en software y lo carga en el hardware de reenvío (como un ASIC o procesador de red), que realiza la función de reenvío de paquetes real.
Bloque descriptor de interfaz
Un bloque de descriptor de interfaz, o simplemente IDB, es una parte de la memoria o la estructura de datos internos de Cisco IOS que contiene información como la dirección IP, el estado de la interfaz y las estadísticas de paquetes para los datos de red. El software IOS de Cisco mantiene un IDB para cada interfaz de hardware en un conmutador o enrutador Cisco en particular y un IDB para cada subinterfaz. La cantidad de IDB presentes en un sistema varía con el tipo de plataforma de hardware de Cisco.
Paquetes y conjuntos de funciones
IOS se envía como un archivo único que se ha compilado para dispositivos de red Cisco específicos. Por lo tanto, cada imagen de IOS incluye un conjunto de características, que determina los comandos y las características de la interfaz de línea de comandos (CLI) que están disponibles en diferentes dispositivos Cisco. Por lo tanto, la actualización a otro conjunto de funciones implica la instalación de una nueva imagen IOS en el dispositivo de red y la recarga del sistema operativo IOS. La información sobre la versión de IOS y el conjunto de funciones que se ejecuta en un dispositivo Cisco se puede obtener con el comando show version . [10]
La mayoría de los productos Cisco que ejecutan IOS también tienen uno o más "conjuntos de funciones" o "paquetes", normalmente ocho paquetes para enrutadores Cisco y cinco paquetes para conmutadores de red Cisco . Por ejemplo, las versiones de Cisco IOS diseñadas para su uso en switches Catalyst están disponibles como versiones "estándar" (que solo proporcionan enrutamiento IP básico), versiones "mejoradas", que brindan soporte completo para enrutamiento IPv4 , y versiones de "servicios IP avanzados", que brindan la funciones mejoradas, así como compatibilidad con IPv6 . [11]
A partir de las series 1900, 2900 y 3900 de enrutadores ISR, Cisco revisó el modelo de licencia de IOS. [ cita requerida ] Para simplificar el proceso de ampliación del conjunto de funciones y reducir la necesidad de recargar el sistema operativo de red, Cisco introdujo imágenes IOS universales, que incluyen todas las funciones disponibles para un dispositivo y los clientes pueden desbloquear ciertas funciones comprando una licencia de software adicional . [12] El conjunto de características exacto requerido para una función en particular se puede determinar usando el navegador de conjunto de características de Cisco . Los enrutadores vienen con IP Base instalada, y se pueden instalar licencias de paquetes de características adicionales como adiciones para expandir el conjunto de características del dispositivo. Los paquetes de funciones disponibles son:
- Los datos agregan características como BFD, IP SLA, IPX, L2TPv3, IP móvil, MPLS, SCTP .
- La seguridad agrega características como VPN, Firewall, IP SLA, NAC.
- Unified Comms agrega características como CallManager Express, Gatekeeper, H.323, IP SLA, MGCP, SIP, VoIP, CUBE (SBC).
Las imágenes de IOS no se pueden actualizar con correcciones de errores de software . Para parchear una vulnerabilidad en un IOS, es necesario cargar un archivo binario con todo el sistema operativo. [13]
Control de versiones
Cisco IOS se versiona usando tres números y algunas letras, en la forma general ab (cd) e , donde:
- a es el número de versión principal.
- b es el número de versión menor.
- c es el número de lanzamiento, que comienza en uno y aumenta a medida que se lanzan nuevos lanzamientos de la misma manera que ab train. [se necesita aclaración ] "Train" es el lenguaje de Cisco para "un vehículo para entregar software de Cisco a un conjunto específico de plataformas y características".
- d (omitido en las versiones generales) es el número de compilación provisional.
- e (cero, una o dos letras) es el identificador del tren de lanzamiento de software , como ninguno (que designa la línea principal, ver más abajo), T (para tecnología), E (para empresa), S (para proveedor de servicios), XA como un tren de funcionalidad especial, XB como un tren de funcionalidad especial diferente, etc.
Reconstrucciones : a menudo, una reconstrucción se compila para solucionar un solo problema o vulnerabilidad específicos para una versión de IOS determinada. Por ejemplo, 12.1 (8) E14 es una reconstrucción, el 14 denota la decimocuarta reconstrucción de 12.1 (8) E. Las reconstrucciones se producen para reparar rápidamente un defecto o para satisfacer a los clientes que no desean actualizar a una revisión importante posterior porque pueden estar ejecutando una infraestructura crítica en sus dispositivos y, por lo tanto, prefieren minimizar el cambio y el riesgo.
Publicaciones provisionales : generalmente se producen semanalmente y forman un resumen del esfuerzo de desarrollo actual. El sitio web de avisos de Cisco puede enumerar más de un posible intermedio para solucionar un problema asociado (la razón de esto es desconocida para el público en general).
Versiones de mantenimiento: versiones rigurosamente probadas que están disponibles e incluyen mejoras y correcciones de errores. Cisco recomienda actualizar a las versiones de mantenimiento siempre que sea posible, en lugar de las versiones provisionales y de reconstrucción.
Trenes
Cisco dice: "Un tren es un vehículo para entregar software de Cisco a un conjunto específico de plataformas y características". [11]
Hasta las 12.4
Antes de la versión 15 de Cisco IOS, las versiones se dividían en varios trenes , cada uno con un conjunto diferente de funciones. Los trenes se asignan más o menos a distintos mercados o grupos de clientes a los que apunta Cisco. [11]
- El tren de la línea principal está destinado a ser la versión más estable que la empresa puede ofrecer, y su conjunto de funciones nunca se expande durante su vida útil. Las actualizaciones se publican solo para corregir errores en el producto. El tren de tecnología anterior se convierte en la fuente del tren principal actual; por ejemplo, el tren 12.1T se convierte en la base para el tren principal 12.2. Por lo tanto, para determinar las funciones disponibles en una versión principal en particular, consulte la versión anterior del tren T. [14] : 6
- El tren T - Technology obtiene nuevas funciones y correcciones de errores a lo largo de su vida y, por lo tanto, es potencialmente menos estable que la línea principal. (En las versiones anteriores a la versión 12.0 de Cisco IOS, el tren P sirvió como tren de tecnología). Cisco no recomienda el uso del tren T en entornos de producción a menos que sea urgente implementar la nueva función IOS de un tren T determinado. [14] : 6
- El tren S - Service Provider se ejecuta solo en los productos de enrutador principales de la empresa y está muy personalizado para los clientes de Service Provider. [14] : 6
- El tren E - Enterprise está personalizado para su implementación en entornos empresariales. [14] : 6
- El B - banda ancha tren, es compatible con Internet de banda ancha basados características. [14] : 6
- El tren X * (XA, XB, etc.) - Lanzamiento especial, contiene lanzamientos únicos diseñados para corregir un error determinado o proporcionar una nueva característica. Estos finalmente se fusionan con uno de los trenes anteriores. [14] : 15
Había otros trenes de vez en cuando, diseñados para necesidades específicas; por ejemplo, el tren 12.0AA contenía un nuevo código requerido para el producto AS5800 de Cisco.
Desde 15.0
A partir de Cisco IOS versión 15, sólo hay un único tren, el M / T de tren. Este tren incluye versiones de mantenimiento extendidas y versiones de mantenimiento estándar. Las versiones M son versiones de mantenimiento extendidas y Cisco proporcionará correcciones de errores durante 44 meses. Las versiones T son versiones de mantenimiento estándar y Cisco solo proporcionará correcciones de errores durante 18 meses.
Seguridad y vulnerabilidades
Debido a que IOS necesita saber la contraseña en texto sin cifrar para ciertos usos, (por ejemplo, autenticación CHAP ) las contraseñas ingresadas en la CLI por defecto están encriptadas débilmente como texto cifrado 'Tipo 7', como " Router (config) #username jdoe password 7 0832585B1910010713181F ". Esto está diseñado para evitar ataques de "navegación por el hombro" cuando se visualizan las configuraciones del enrutador y no es seguro: se descifran fácilmente utilizando un software llamado "getpass" disponible desde 1995, o "ios7crypt", [15] una variante moderna, aunque las contraseñas pueden ser decodificado por el enrutador usando el comando "key chain" e ingresando la contraseña de tipo 7 como clave, y luego emitiendo un comando "show key"; el ejemplo anterior se descifra como "stupidpass". [16] Sin embargo, el programa no descifrará las contraseñas 'Tipo 5' o las contraseñas configuradas con el comando enable secret , que utiliza hashes MD5 salados . [17]
Cisco recomienda que todos los dispositivos IOS de Cisco implementen el modelo de seguridad de autenticación, autorización y contabilidad (AAA). AAA puede utilizar bases de datos locales, RADIUS y TACACS + . Sin embargo, todavía se requiere una cuenta local para situaciones de emergencia. [18]
En la conferencia Black Hat Briefings en julio de 2005, Michael Lynn, que trabajaba para Internet Security Systems en ese momento, presentó información sobre una vulnerabilidad en IOS. [19] Cisco ya había publicado un parche, pero pidió que no se revelara la falla. [20] Cisco presentó una demanda, pero llegó a un acuerdo después de que se emitió una orden judicial para evitar nuevas divulgaciones. [21]
Tren IOS XR
Para los productos de Cisco que requerían una disponibilidad muy alta, como Cisco CRS-1 , las limitaciones de un kernel monolítico no eran aceptables. Además, los sistemas operativos enrutador competitivas que surgieron 10-20 años después de IOS, tales como Juniper 's JUNOS , fueron diseñados para no tener estas limitaciones. [22] La respuesta de Cisco fue desarrollar un árbol del Cisco IOS que ofreciera modularidad y protección de memoria entre procesos, subprocesos ligeros, programación preventiva y la capacidad de reiniciar de forma independiente los procesos fallidos. El tren de desarrollo de IOS XR utilizó el microkernel del sistema operativo en tiempo real ( QNX ), por lo que una gran parte del código fuente de IOS se reescribió para aprovechar las funciones que ofrece el kernel. En 2005, Cisco introdujo el sistema operativo de red Cisco IOS XR en la serie 12000 de enrutadores de red , extendiendo la arquitectura de microkernel de los enrutadores CRS-1 a los enrutadores centrales ampliamente implementados de Cisco . En 2006, Cisco introdujo la modularidad del software IOS, que amplía la arquitectura del microkernel al entorno IOS, al tiempo que sigue proporcionando las capacidades de actualización del software.
Ver también
- Cisco IOS XE
- Cisco IOS XR
- Cisco NX-OS
- JUNOS
- Supervisor Engine (Cisco)
- Sistema operativo de red
Referencias
- ^ "Notas de la versión multiplataforma para Cisco IOS versión 15.9 (3) M" . 4 de febrero de 2021 . Consultado el 9 de marzo de 2021 .
- ^ Brad Edgeworth, Aaron Foss y Ramiro Garza Rios (2014). Enrutamiento IP en Cisco IOS, IOS XE e IOS XR: una guía esencial para comprender e implementar protocolos de enrutamiento IP . Prensa de Cisco. pag. 2. ISBN 9780133846768.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Gary A. Donahue (2011). Network Warrior: todo lo que necesita saber que no estaba en el examen CCNA . O'Reilly Media. pag. 10. ISBN 9781449309350.
- ^ Gary A. Donahue (2011). Network Warrior: todo lo que necesita saber que no estaba en el examen CCNA . O'Reilly Media. pag. 222. ISBN 9781449309350.
- ^ Gary A. Donahue (2011). Network Warrior: todo lo que necesita saber que no estaba en el examen CCNA . O'Reilly Media. pag. 274. ISBN 9781449309350.
- ^ "Modos de comando de Cisco IOS" . Cisco . Consultado el 27 de septiembre de 2015 .
- ^ Brad Edgeworth, Aaron Foss y Ramiro Garza Rios (2014). Enrutamiento IP en Cisco IOS, IOS XE e IOS XR: una guía esencial para comprender e implementar protocolos de enrutamiento IP . Prensa de Cisco. pag. 2. ISBN 9780133846768.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Brad Edgeworth, Aaron Foss y Ramiro Garza Rios (2014). Enrutamiento IP en Cisco IOS, IOS XE e IOS XR: una guía esencial para comprender e implementar protocolos de enrutamiento IP . Prensa de Cisco. pag. 2. ISBN 9780133846768.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Brad Edgeworth, Aaron Foss y Ramiro Garza Rios (2014). Enrutamiento IP en Cisco IOS, IOS XE e IOS XR: una guía esencial para comprender e implementar protocolos de enrutamiento IP . Prensa de Cisco. pag. 2. ISBN 9780133846768.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Brad Edgeworth, Aaron Foss y Ramiro Garza Rios (2014). Enrutamiento IP en Cisco IOS, IOS XE e IOS XR: una guía esencial para comprender e implementar protocolos de enrutamiento IP . Prensa de Cisco. pag. 2. ISBN 9780133846768.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ a b c "Guía de referencia del software Cisco IOS y NX-OS" , Informe técnico de Cisco , consultado el 18 de junio de 2013
- ^ Brad Edgeworth, Aaron Foss y Ramiro Garza Rios (2014). Enrutamiento IP en Cisco IOS, IOS XE e IOS XR: una guía esencial para comprender e implementar protocolos de enrutamiento IP . Prensa de Cisco. pag. 3. ISBN 9780133846768.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Brad Edgeworth, Aaron Foss y Ramiro Garza Rios (2014). Enrutamiento IP en Cisco IOS, IOS XE e IOS XR: una guía esencial para comprender e implementar protocolos de enrutamiento IP . Prensa de Cisco. pag. 4. ISBN 9780133846768.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ a b c d e f Rullan, John (2005), "Understanding Cisco IOS Naming Conventions" (PDF) , Presentación de la conferencia de Cisco Academy , consultado el 10 de octubre de 2016
- ^ ios7crypt
- ^ Descifrado de contraseña de Cisco Insecure.org
- ^ "Hechos de cifrado de contraseña de Cisco IOS" . Consultado el 12 de septiembre de 2017 .
- ^ "Prueba de Cisco 500-052" . Consultado el 21 de febrero de 2017 .
- ^ Kim Zetter (1 de agosto de 2005). "El defecto del enrutador es una bomba de relojería" . Cableado . Consultado el 9 de agosto de 2014 .
- ^ Kim Zetter (27 de julio de 2005). "Cisco Security Hole a Whopper" . Cableado . Consultado el 9 de agosto de 2014 .
- ^ "Declaración sobre la orden judicial del Tribunal de Distrito Federal (presentación de sombrero negro)" . Comunicado de prensa . Cisco Systems. 28 de julio de 2005. Archivado desde el original el 5 de febrero de 2012 . Consultado el 18 de junio de 2013 .
- ^ Juniper Networks: JunOS
enlaces externos
- Avisos de seguridad de Cisco; Historia completa
- Comandos de Cisco IOS
- Comunidad de código abierto centrada en Cisco
- Empaquetado de Cisco IOS
- Rootkits en dispositivos Cisco IOS