Articulo de referencia

Cisco IOS

El Sistema Operativo de Interconexión de Redes [ 2 ] ( IOS ) es una familia de sistemas operativos de red propietarios utilizados en varios modelos de enrutadores y conmutadores...

El Sistema Operativo de Interconexión de Redes [ 2 ] ( IOS ) es una familia de sistemas operativos de red propietarios utilizados en varios modelos de enrutadores y conmutadores de red fabricados por Cisco Systems . El sistema es un paquete de funciones de enrutamiento, conmutación, interconexión de redes y telecomunicaciones integradas en un sistema operativo multitarea . Si bien el código base de IOS incluye un núcleo multitarea cooperativo , la mayoría de sus características se han adaptado a otros núcleos, como Linux y QNX , para su uso en productos de Cisco.

No todos los productos de red de Cisco utilizan IOS. Algunas excepciones son los switches Cisco Catalyst , que utilizan IOS XE , y los routers Cisco ASR , que utilizan IOS XE o IOS XR ; ambos son sistemas operativos basados ​​en Linux. En entornos de centros de datos, los switches Cisco Nexus ( Ethernet ) y los switches Cisco MDS ( Fibre Channel ) utilizan Cisco NX-OS , también un sistema operativo basado en Linux.

Historia

El sistema operativo de red IOS se creó a partir de código escrito por William Yeager en la Universidad de Stanford , [ 3 ] [ 4 ] [ 5 ] desarrollado en la década de 1980 para enrutadores con 256 kB de memoria y baja potencia de procesamiento de CPU . Mediante extensiones modulares, IOS se ha adaptado a las crecientes capacidades de hardware y a los nuevos protocolos de red. [ 6 ] Cuando se desarrolló IOS, la principal línea de productos de Cisco Systems eran los enrutadores. La compañía adquirió varias empresas jóvenes centradas en conmutadores de red, como Kalpana , inventora del primer conmutador Ethernet , y como resultado, los conmutadores de Cisco no ejecutaban IOS inicialmente. Antes de IOS, la serie Cisco Catalyst ejecutaba CatOS . [ 7 ]

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 viene determinado por el modo y el nivel de privilegio del usuario actual. El modo de configuración global proporciona comandos para modificar la configuración del sistema, y ​​el modo de configuración de interfaz proporciona comandos para modificar la configuración de una interfaz específica. A todos los comandos se les asigna un nivel de privilegio , del 0 al 15, y solo pueden acceder a ellos los usuarios con el privilegio necesario. Mediante 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 . Mediante la función de administrador de eventos integrado , se puede programar el intérprete para que reaccione a eventos dentro del entorno de red, como fallos de interfaz o temporizadores periódicos.

Los modos de comando disponibles incluyen: [ 8 ]

  • Modo EXEC de usuario
  • Modo EXEC privilegiado
  • Modo de configuración global
  • Modo de monitor ROM
  • Modo de configuración

Y más de 100 modos y submodos de configuración.

Arquitectura

Cisco IOS tiene una arquitectura monolítica , debido a los limitados recursos de hardware de los routers y switches 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 procesos e IOS tiene un planificador de ejecución hasta su finalización , lo que significa que el kernel no interrumpe 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 único hilo 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 a los procesos de baja prioridad en ejecución. [ 6 ]

El núcleo monolítico de Cisco IOS no implementa protección de memoria para los datos de los distintos procesos. Toda la memoria física se asigna a un único espacio de direcciones virtuales. El núcleo de Cisco IOS no realiza paginación ni 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 el alias de contenido de memoria virtual duplicado a la misma memoria física. Esta arquitectura fue implementada por Cisco para garantizar el rendimiento del sistema y minimizar la sobrecarga operativa del sistema operativo. [ 6 ]

La desventaja de la arquitectura IOS es que aumenta la complejidad del sistema operativo, es posible la corrupción de datos ya que un proceso puede sobrescribir los datos de otro, y un proceso puede desestabilizar todo el sistema operativo o incluso provocar un fallo forzado por software . En caso de un fallo de IOS, el sistema operativo se reinicia automáticamente y recarga la configuración guardada. [ 6 ]

Enrutamiento

En todas las versiones de Cisco IOS, el enrutamiento y el reenvío de paquetes ( conmutación ) 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). Esta se procesa para generar la tabla de reenvío IP final (FIB, Base de Información de Reenvío), que utiliza la función de reenvío del router. En plataformas de router con reenvío exclusivamente por software (por ejemplo, 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 (CEF distribuido). 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 routers con reenvío basado en hardware, como la serie Cisco 12000, IOS calcula la FIB por software y la carga en el hardware de reenvío (como un ASIC o un procesador de red), que realiza la función de reenvío de paquetes.

Bloque descriptor de interfaz

Un bloque descriptor de interfaz, o simplemente IDB, es una porción de memoria o estructura de datos interna de Cisco IOS que contiene información como la dirección IP, el estado de la interfaz y las estadísticas de paquetes para datos de red. El software IOS de Cisco mantiene un IDB para cada interfaz de hardware en un switch o router Cisco específico y un IDB para cada subinterfaz. La cantidad de IDB presentes en un sistema varía según el tipo de plataforma de hardware de Cisco.

Las interfaces físicas y lógicas del conmutador se identificarán mediante nombres de descripción de puerto, ya sean completos o abreviados. Esto, junto con la numeración de ranuras, módulos e interfaces, crea una referencia única a dicha interfaz.

Paquetes y conjuntos de características

IOS se distribuye como un archivo único compilado para dispositivos de red Cisco específicos. Cada imagen de IOS incluye un conjunto de características que determina los comandos y las funciones de la interfaz de línea de comandos (CLI) disponibles en los distintos dispositivos Cisco. Por lo tanto, la actualización a otro conjunto de características implica la instalación de una nueva imagen de IOS en el dispositivo de red y la reinstalación del sistema operativo IOS. La información sobre la versión de IOS y el conjunto de características que se ejecutan en un dispositivo Cisco se puede obtener con el comando show version . [ 6 ]

La mayoría de los productos Cisco que ejecutan IOS también cuentan con uno o más "conjuntos de características" o "paquetes", generalmente ocho paquetes para routers Cisco y cinco paquetes para switches de red Cisco. Por ejemplo, las versiones de Cisco IOS destinadas a switches Catalyst están disponibles como versiones "estándar" (que solo ofrecen enrutamiento IP básico), versiones "mejoradas", que ofrecen compatibilidad total con el enrutamiento IPv4 , y versiones de "servicios IP avanzados", que ofrecen las características mejoradas además de compatibilidad con IPv6 . [ 9 ]

A partir de las series 1900, 2900 y 3900 de routers ISR, Cisco revisó el modelo de licenciamiento de IOS. Para simplificar el proceso de ampliación del conjunto de funciones y reducir la necesidad de reinstalar el sistema operativo de red, Cisco introdujo imágenes universales de IOS, que incluyen todas las funciones disponibles para un dispositivo, y los clientes pueden desbloquear ciertas funciones mediante la compra de una licencia de software adicional . [ 10 ] El conjunto exacto de funciones requerido para una función en particular se puede determinar utilizando Cisco Feature Navigator . Los routers vienen con IP Base instalado, y se pueden instalar licencias de paquetes de funciones adicionales como complementos para ampliar el conjunto de funciones del dispositivo. Los paquetes de funciones disponibles son:

  • Los datos añaden características como BFD, IP SLA, IPX, L2TPv3, IP móvil, MPLS, SCTP .
  • La seguridad añade funciones como VPN, cortafuegos, acuerdos de nivel de servicio (SLA) de IP y control de acceso a la red (NAC).
  • Unified Comms añade funciones como CallManager Express, Gatekeeper, H.323, IP SLA, MGCP, SIP, VoIP y CUBE (SBC).

Las imágenes de IOS no se pueden actualizar con correcciones de errores de software . Para parchear una vulnerabilidad en IOS, es necesario cargar un archivo binario con el sistema operativo completo. [ 11 ]

Control de versiones

Cisco IOS se versiona utilizando tres números y algunas letras, en el formato 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 versión, que comienza en uno y se incrementa a medida que se lanzan nuevas versiones, de la misma manera que se lanza un tren. "Train" es la forma en que Cisco denomina "un vehículo para distribuir software de Cisco a un conjunto específico de plataformas y funcionalidades".
  • 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 del software , como none (que designa la línea principal, ver más abajo), T (para Technology), E (para Enterprise), S (para Service provider), XA como un tren de funcionalidad especial, XB como un tren de funcionalidad especial diferente, etc.

Recompilaciones : A menudo, una recompilación se compila para corregir un problema o vulnerabilidad específica de una versión determinada de IOS. Por ejemplo, 12.1(8)E14 es una recompilación, donde el 14 indica la decimocuarta recompilación de 12.1(8)E. Las recompilaciones se producen para reparar rápidamente un defecto o para satisfacer a los clientes que no desean actualizar a una revisión principal posterior porque pueden estar ejecutando infraestructura crítica en sus dispositivos y, por lo tanto, prefieren minimizar los cambios y los riesgos.

Versiones provisionales : Suelen publicarse semanalmente y recopilan los avances del desarrollo actual. El sitio web de avisos de Cisco puede incluir más de una versión provisional para solucionar un mismo problema (el motivo es desconocido para el público en general).

Versiones de mantenimiento : Versiones rigurosamente probadas que se publican e incluyen mejoras y correcciones de errores. Cisco recomienda actualizar a las versiones de mantenimiento siempre que sea posible, en lugar de a las versiones provisionales y de reconstrucción.

trenes

Cisco afirma: "Un tren proporciona un vehículo para entregar software con un conjunto específico de características a un conjunto específico de plataformas". [ 9 ]

Hasta las 12.4

Antes del lanzamiento de Cisco IOS 15, los lanzamientos se dividían en varios trenes , cada uno con un conjunto diferente de características. Los trenes se corresponden más o menos con distintos mercados o grupos de clientes a los que Cisco se dirigía. [ 9 ]

  • La versión principal del producto está diseñada para ser la más estable que la empresa puede ofrecer, y su conjunto de características nunca se amplía durante su ciclo de vida. Las actualizaciones se publican únicamente para corregir errores del producto. La versión tecnológica anterior sirve de base para la versión principal actual; por ejemplo, la versión 12.1T sirve de base para la versión principal 12.2. Por lo tanto, para determinar las características disponibles en una versión principal específica, consulte la versión T anterior. [ 12 ] : 6
  • El tren T ( Tecnología ) recibe nuevas características y correcciones de errores a lo largo de su ciclo de vida, por lo que es potencialmente menos estable que la rama principal. (En versiones anteriores a Cisco IOS Release 12.0, el tren P funcionaba como el tren de Tecnología). Cisco no recomienda el uso del tren T en entornos de producción a menos que exista urgencia por implementar una nueva característica de IOS específica del tren T. [ 12 ] : 6
  • El tren SService Provider , funciona únicamente con los productos de enrutadores principales de la compañía y está altamente personalizado para clientes proveedores de servicios. [ 12 ] : 6
  • El tren E -Enterprise está personalizado para su implementación en entornos empresariales. [ 12 ] : 6
  • El tren Bbanda ancha , admite funciones de banda ancha basadas en Internet. [ 12 ] : 6
  • El tren de lanzamientos especiales X* (XA, XB, etc.) contiene lanzamientos únicos diseñados para corregir un error específico o proporcionar una nueva función. Estos se fusionan posteriormente con uno de los trenes mencionados anteriormente. [ 12 ] : 15

De vez en cuando, había otros trenes diseñados para necesidades específicas; por ejemplo, el tren 12.0AA contenía código nuevo necesario para el producto AS5800 de Cisco.

Desde 15.0

A partir de la versión 15 de Cisco IOS, solo existe un tipo de soporte: el estándar ( M/T) . Este soporte incluye versiones con mantenimiento extendido y versiones con mantenimiento estándar. Las versiones M son versiones con mantenimiento extendido, y Cisco ofrece correcciones de errores durante 44 meses. Las versiones T son versiones con mantenimiento estándar, y Cisco solo ofrece correcciones de errores durante 18 meses.

Seguridad y vulnerabilidades

Debido a que IOS necesita conocer la contraseña en texto plano para ciertos usos (por ejemplo, autenticación CHAP ), las contraseñas ingresadas en la CLI por defecto se cifran débilmente como texto cifrado de 'Tipo 7', como " ". Esto está diseñado para prevenir ataques de "espionaje visual" al ver las configuraciones del enrutador y no es seguro: se descifran fácilmente usando el software "getpass" disponible desde 1995, o "ios7crypt" [ 13 ] una variante moderna, aunque las contraseñas pueden ser decodificadas 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 a "stupidpass" [ 14 ] . Sin embargo, el programa no descifrará las contraseñas de 'Tipo 5' o las contraseñas establecidas con el comando, que usa hashes MD5 con sal [ 15 ] .Router(config)#username jdoe password 7 0832585B1910010713181Fenable secret

Cisco recomienda que todos los dispositivos Cisco IOS 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, generalmente se requiere una cuenta local para situaciones de emergencia. [ 16 ]

En la conferencia Black Hat Briefings de julio de 2005, Michael Lynn, que trabajaba para Internet Security Systems en ese momento, presentó información sobre una vulnerabilidad en IOS. [ 17 ] Cisco ya había publicado un parche, pero solicitó que no se divulgara la falla. [ 18 ] Cisco presentó una demanda, pero llegó a un acuerdo después de que se emitiera una orden judicial para evitar más divulgaciones. [ 19 ]

Con la eliminación gradual de iOS en los dispositivos, iOS-XE adoptó muchas mejoras, incluyendo valores predeterminados actualizados. Algunos casos de uso ahora pueden almacenar secretos como hashes unidireccionales .

Tren IOS XR

Para los productos de Cisco que requerían una disponibilidad muy alta, como el Cisco CRS-1 , las limitaciones de un kernel monolítico no eran aceptables. Además, los sistemas operativos de enrutadores de la competencia que surgieron 10-20 años después de IOS, como Junos OS de Juniper , fueron diseñados para no tener estas limitaciones. [ 20 ] La respuesta de Cisco fue desarrollar un sistema operativo completamente nuevo que ofrecía modularidad, protección de memoria entre procesos, subprocesos ligeros, planificación preemptiva , capacidad de reiniciar independientemente los procesos fallidos y escalabilidad masiva para su uso en redes de proveedores de servicios. El tren de desarrollo de IOS XR utilizó inicialmente el microkernel del sistema operativo en tiempo real ( QNX ) y gran parte del código fuente de IOS se reescribió para aprovechar las características que ofrecía 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 del microkernel de los enrutadores CRS-1 a los enrutadores centrales de Cisco ampliamente implementados . A partir de la versión 6.x de Cisco IOS XR, QNX fue reemplazado por Linux. Parte del trabajo inicial se centró en la modularidad, inspirándose en la modificación del IOS monolítico a un IOS modular, que extiende la arquitectura del microkernel al entorno IOS, manteniendo las capacidades de actualización de software. Esta idea solo se probó en Catalyst 6500, tuvo una difusión limitada y se descartó rápidamente debido a que los requisitos eran demasiado altos y afectaban significativamente el funcionamiento de la plataforma.

Véase también

Referencias

  1. "Software de red (IOS y NX-OS)" . Archivado del original el 26 de octubre de 2022. Consultado el 1 de noviembre de 2022 .
  2. "Sistemas Operativos de Interconexión de Redes de Cisco (IOS)" . Cisco. Archivado del original el 25 de octubre de 2022. Consultado el 25 de octubre de 2022 .
  3. "Dentro del patio de ingeniería | Escuela de Ingeniería de la Universidad de Stanford" . Universidad de Stanford . Archivado del original el 14 de mayo de 2022. Consultado el 17 de mayo de 2022. En 1984, el exalumno Leonard Bosack y su esposa, Sandy Lerner, dejaron sus trabajos en el departamento de operaciones informáticas de Stanford para fundar una empresa de enrutadores de Internet llamada Cisco, que se ha convertido en la empresa dominante del sector. Adaptaron el software de enrutador multiprotocolo desarrollado algunos años antes en Stanford por William Yeager.
  4. Connor, Deni (3 de julio de 2007). "Los principales inventores de redes de todos los tiempos" . Computerworld . Archivado del original el 18 de octubre de 2022. Consultado el 17 de mayo de 2022 .
  5. Dix, John (27 de marzo de 2006). "Router man" . Network World . Archivado del original el 1 de marzo de 2019. Consultado el 17 de mayo de 2022 .
  6. 1 2 3 4 5 Brad Edgeworth; Aaron Foss; 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 . Cisco Press. pág. 2. ISBN  9780133846768.
  7. Gary A. Donahue (2011). Network Warrior: Everything You Need to Know That Wasn't on the CCNA Exam . O'Reilly Media. p. 10. ISBN  9781449309350.
  8. "Guía de configuración de fundamentos de configuración, Cisco IOS versión 15M&T" . Cisco. Archivado del original el 15 de mayo de 2022. Consultado el 14 de mayo de 2022 .
  9. 1 2 3 "Guía de referencia del software Cisco IOS y NX-OS" , documento técnico de Cisco , archivado del original el 6 de junio de 2013 , consultado el 18 de junio de 2013.
  10. Brad Edgeworth; Aaron Foss; 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 . Cisco Press. pág. 3. ISBN  9780133846768.
  11. Brad Edgeworth; Aaron Foss; 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 . Cisco Press. pág. 4. ISBN  9780133846768.
  12. 1 2 3 4 5 6 Rullan, John (2005), "Comprensión de las convenciones de nomenclatura de Cisco IOS" (PDF) , Presentación en la conferencia de la Academia Cisco , archivado (PDF) del original el 8 de febrero de 2016 , recuperado el 10 de octubre de 2016
  13. "ios7crypt" . GitHub . Archivado del original el 25-03-2017 . Consultado el 19-09-2012 .
  14. "Descifrado de contraseñas de Cisco" . insecure.org . Archivado del original el 27/09/2023 . Consultado el 10/04/2024 .
  15. "Datos sobre el cifrado de contraseñas de Cisco IOS" . Archivado del original el 13 de septiembre de 2017. Consultado el 12 de septiembre de 2017 .
  16. "Prueba Cisco 500-052" . Archivado del original el 22 de febrero de 2017. Consultado el 21 de febrero de 2017 .
  17. Kim Zetter (1 de agosto de 2005). "Un fallo en el router es una bomba de relojería" . Wired . Archivado del original el 4 de septiembre de 2014. Consultado el 9 de agosto de 2014 .
  18. Kim Zetter (27 de julio de 2005). "Cisco Security Hole a Whopper" . Wired . Archivado del original el 5 de septiembre de 2014. Recuperado el 9 de agosto de 2014 .
  19. "Declaración sobre la orden judicial del Tribunal Federal de Distrito (Presentación de Black Hat)" . Comunicado de prensa . Cisco Systems. 28 de julio de 2005. Archivado del original el 5 de febrero de 2012. Consultado el 18 de junio de 2013 .
  20. "Junos OS | Juniper Networks US" . Juniper Networks . Archivado del original el 6 de abril de 2024. Consultado el 10 de abril de 2024 .
  • Centro de contenido de Cisco
  • Navegador de funciones de Cisco
  • Avisos de seguridad de Cisco