Cisco IOS

Last updated
Cisco IOS
Developer Cisco Systems
Working stateCurrent
Source model Closed source
Latest release 15.9(3)M [1] / August 15, 2019;4 years ago (2019-08-15)
Available in English
PlatformsCisco routers and Cisco switches
Default
user interface
Command-line interface
Succeeded by Cisco IOS XE
Official website Cisco IOS

The Internetworking Operating System [2] (IOS) is a family of proprietary network operating systems used on several router and network switch models manufactured by Cisco Systems. The system is a package of routing, switching, internetworking, and telecommunications functions integrated into a multitasking operating system. Although the IOS code base includes a cooperative multitasking kernel, most IOS features have been ported to other kernels, such as Linux and QNX, for use in Cisco products.

Contents

Not all Cisco networking products run IOS. Exceptions include some Cisco Catalyst switches, which run IOS XE, and Cisco ASR routers, which run either IOS XE or IOS XR; both are Linux-based operating systems. For data center environments, Cisco Nexus switches (Ethernet) and Cisco MDS switches (Fibre Channel) both run Cisco NX-OS, also a Linux-based operating system.

History

The IOS network operating system was created from code written by William Yeager at Stanford University, [3] [4] [5] which was developed in the 1980s for routers with 256 kB of memory and low CPU processing power. Through modular extensions, IOS has been adapted to increasing hardware capabilities and new networking protocols. [6] When IOS was developed, Cisco Systems' main product line were routers. The company acquired a number of young companies that focused on network switches, such as the inventor of the first Ethernet switch Kalpana, and as a result Cisco switches did not initially run IOS. Prior to IOS, the Cisco Catalyst series ran CatOS. [7]

Command-line interface

The IOS command-line interface (CLI) provides a fixed set of multiple-word commands. The set available is determined by the "mode" and the privilege level of the current user. "Global configuration mode" provides commands to change the system's configuration, and "interface configuration mode" provides commands to change the configuration of a specific interface. All commands are assigned a privilege level, from 0 to 15, and can only be accessed by users with the necessary privilege. Through the CLI, the commands available to each privilege level can be defined.

Most builds of IOS include a Tcl interpreter. Using the embedded event manager feature, the interpreter can be scripted to react to events within the networking environment, such as interface failure or periodic timers.

Available command modes include: [8]

And more than 100 configuration modes and submodes.

Architecture

Cisco IOS has a monolithic architecture, owing to the limited hardware resources of routers and switches in the 1980s. This means that all processes have direct hardware access to conserve CPU processing time. There is no memory protection between processes and IOS has a run to completion scheduler, which means that the kernel does not pre-empt a running process. Instead the process must make a kernel call before other processes get a chance to run. IOS considers each process a single thread and assigns it a priority value, so that high priority processes are executed on the CPU before queued low priority processes, but high priority processes cannot interrupt running low priority processes. [6]

The Cisco IOS monolithic kernel does not implement memory protection for the data of different processes. The entire physical memory is mapped into one virtual address space. The Cisco IOS kernel does not perform any memory paging or swapping. Therefore the addressable memory is limited to the physical memory of the network device on which the operating system is installed. IOS does however support aliasing of duplicated virtual memory contents to the same physical memory. This architecture was implemented by Cisco in order to ensure system performance and minimize the operational overheads of the operating system. [6]

The disadvantage of the IOS architecture is that it increases the complexity of the operating system, data corruption is possible as one process can write over the data of another, and one process can destabilize the entire operating system or even cause a software-forced crash. In the event of an IOS crash, the operating system automatically reboots and reloads the saved configuration. [6]

Routing

In all versions of Cisco IOS, packet routing and forwarding (switching) are distinct functions. Routing and other protocols run as Cisco IOS processes and contribute to the Routing Information Base (RIB). This is processed to generate the final IP forwarding table (FIB, Forwarding Information Base), which is used by the forwarding function of the router. On router platforms with software-only forwarding (e.g., Cisco 7200), most traffic handling, including access control list filtering and forwarding, is done at interrupt level using Cisco Express Forwarding (CEF) or dCEF (Distributed CEF). This means IOS does not have to do a process context switch to forward a packet. Routing functions such as OSPF or BGP run at the process level. In routers with hardware-based forwarding, such as the Cisco 12000 series, IOS computes the FIB in software and loads it into the forwarding hardware (such as an ASIC or network processor), which performs the actual packet forwarding function.

Interface descriptor block

An Interface Descriptor Block, or simply IDB, is a portion of memory or Cisco IOS internal data structure that contains information such as the IP address, interface state, and packet statistics for networking data. Cisco's IOS software maintains one IDB for each hardware interface in a particular Cisco switch or router and one IDB for each subinterface. The number of IDBs present in a system varies with the Cisco hardware platform type.

Physical and logical interfaces on the switch will be referenced with either expanded or abbreviated port description names. This combined with slot, module, and interface numbering creates a unique reference to that interface.

Interface Identifiers
ExpandedAbbreviated
TwoHundredGigabitEthernetTH
HundredGigabitEthernetHu
FortyGigabitEthernetFo
TwentyFiveGigETwe
TenGigabitEthernetTe
FiveGigabitEthernetFi
TwoGigabitEthernetTw
GigabitEthernetGi
FastEthernetFa
Port-channelPo
AppGigabitEthernetAp

Packages and feature sets

IOS is shipped as a unique file that has been compiled for specific Cisco network devices. Each IOS Image therefore include a feature set, which determine the command-line interface (CLI) commands and features that are available on different Cisco devices. Upgrading to another feature set therefore entails the installation of a new IOS image on the networking device and reloading the IOS operating system. Information about the IOS version and feature-set running on a Cisco device can be obtained with the show version command. [6]

Most Cisco products that run IOS also have one or more "feature sets" or "packages", typically eight packages for Cisco routers and five packages for Cisco network switches. For example, Cisco IOS releases meant for use on Catalyst switches are available as "standard" versions (providing only basic IP routing), "enhanced" versions, which provide full IPv4 routing support, and "advanced IP services" versions, which provide the enhanced features as well as IPv6 support. [9]

Beginning with the 1900, 2900 and 3900 series of ISR Routers, Cisco revised the licensing model of IOS.[ citation needed ] To simplify the process of enlarging the feature-set and reduce the need for network operating system reloads, Cisco introduced universal IOS images, that include all features available for a device and customers may unlock certain features by purchasing an additional software license. [10] The exact feature set required for a particular function can be determined using the Cisco Feature Navigator. Routers come with IP Base installed, and additional feature pack licenses can be installed as bolt-on additions to expand the feature set of the device. The available feature packs are:

IOS images can not be updated with software bug fixes. To patch a vulnerability in IOS, a binary file with the entire operating system needs to be loaded. [11]

Versioning

Cisco IOS is versioned using three numbers and some letters, in the general form a.b(c.d)e, where:

Rebuilds – Often a rebuild is compiled to fix a single specific problem or vulnerability for a given IOS version. For example, 12.1(8)E14 is a Rebuild, the 14 denoting the 14th rebuild of 12.1(8)E. Rebuilds are produced to either quickly repair a defect, or to satisfy customers who do not want to upgrade to a later major revision because they may be running critical infrastructure on their devices, and hence prefer to minimize change and risk.

Interim releases – Are usually produced on a weekly basis, and form a roll-up of current development effort. The Cisco advisory web site may list more than one possible interim to fix an associated issue (the reason for this is unknown to the general public).

Maintenance releases – Rigorously tested releases that are made available and include enhancements and bug fixes. Cisco recommend upgrading to Maintenance releases where possible, over Interim and Rebuild releases.

Trains

Cisco says, "A train is a vehicle for delivering Cisco software to a specific set of platforms and features." [9]

Until 12.4

Before Cisco IOS release 15, releases were split into several trains, each containing a different set of features. Trains more or less map onto distinct markets or groups of customers that Cisco targeted. [9]

  • The mainline train is intended to be the most stable release the company can offer, and its feature set never expands during its lifetime. Updates are released only to address bugs in the product. The previous technology train becomes the source for the current mainline train — for example, the 12.1T train becomes the basis for the 12.2 mainline. Therefore, to determine the features available in a particular mainline release, look at the previous T train release. [12] :6
  • The TTechnology train, gets new features and bug fixes throughout its life, and is therefore potentially less stable than the mainline. (In releases prior to Cisco IOS Release 12.0, the P train served as the Technology train.) Cisco doesn't recommend usage of T train in production environments unless there is urgency to implement a certain T train's new IOS feature. [12] :6
  • The SService Provider train, runs only on the company's core router products and is heavily customized for Service Provider customers. [12] :6
  • The E – Enterprise train, is customized for implementation in enterprise environments. [12] :6
  • The Bbroadband train, supports internet based broadband features. [12] :6
  • The X* (XA, XB, etc.) – Special Release train, contains one-off releases designed to fix a certain bug or provide a new feature. These are eventually merged with one of the above trains. [12] :15

There were other trains from time to time, designed for specific needs — for example, the 12.0AA train contained new code required for Cisco's AS5800 product.

Since 15.0

Starting with Cisco IOS release 15, there is just a single train, the M/T train. This train includes both extended maintenance releases and standard maintenance releases. The M releases are extended maintenance releases, and Cisco will provide bug fixes for 44 months. The T releases are standard maintenance releases, and Cisco will only provide bug fixes for 18 months.

Security and vulnerabilities

Because IOS needs to know the cleartext password for certain uses, (e.g., CHAP authentication) passwords entered into the CLI by default are weakly encrypted as 'Type 7' ciphertext, such as "Router(config)#username jdoe password 7 0832585B1910010713181F". This is designed to prevent "shoulder-surfing" attacks when viewing router configurations and is not secure – they are easily decrypted using software called "getpass" available since 1995, or "ios7crypt", [13] a modern variant, although the passwords can be decoded by the router using the "key chain" command and entering the type 7 password as the key, and then issuing a "show key" command; the above example decrypts to "stupidpass". [14] However, the program will not decrypt 'Type 5' passwords or passwords set with the enable secret command, which uses salted MD5 hashes. [15]

Cisco recommends that all Cisco IOS devices implement the authentication, authorization, and accounting (AAA) security model. AAA can use local, RADIUS, and TACACS+ databases. However, a local account is usually still required for emergency situations. [16]

At the Black Hat Briefings conference in July 2005, Michael Lynn, working for Internet Security Systems at the time, presented information about a vulnerability in IOS. [17] Cisco had already issued a patch, but asked that the flaw not be disclosed. [18] Cisco filed a lawsuit, but settled after an injunction was issued to prevent further disclosures. [19]

IOS XR train

For Cisco products that required very high availability, such as the Cisco CRS-1, the limitations of a monolithic kernel were not acceptable. In addition, competitive router operating systems that emerged 10–20 years after IOS, such as Juniper's Junos OS, were designed to not have these limitations. [20] Cisco's response was to develop a tree of Cisco IOS that offered modularity and memory protection between processes, lightweight threads, pre-emptive scheduling and the ability to independently restart failed processes. The IOS XR development train initially used the real-time operating system microkernel (QNX) and a large part of the IOS source code was re-written to take advantage of the features offered by the kernel. In 2005 Cisco introduced the Cisco IOS XR network operating system on the 12000 series of network routers, extending the microkernel architecture from the CRS-1 routers to Cisco's widely deployed core routers. In 2006 Cisco introduced IOS Software Modularity, which extends the microkernel architecture into the IOS environment, while still providing the software upgrade capabilities.

See also

Related Research Articles

A network operating system (NOS) is a specialized operating system for a network device such as a router, switch or firewall.

<span class="mw-page-title-main">Carrier Routing System</span>

Carrier Routing System (CRS) is a modular and distributed core router developed by Cisco Systems Inc that enables service providers to deliver data, voice, and video services over a scalable IP Next-Generation Network (NGN) infrastructure. In a network topology, these routers are generally positioned in the core or edge of a service provider network. They are also used by Over-the-top content providers and large enterprises. It supports a wide range of interface speeds and types such as channelized OC3, OC12 to OC768 on Packet over SONET and from 1GE, 10GE all the way to 100GE on the Ethernet technologies. A standalone CRS-3 system can handle 2.2Tbit/s and a multi-chassis system could be designed to handle 322Tbit/s.

Cisco PIX was a popular IP firewall and network address translation (NAT) appliance. It was one of the first products in this market segment.

Cisco Discovery Protocol (CDP) is a proprietary data link layer protocol developed by Cisco Systems in 1994 by Keith McCloghrie and Dino Farinacci. It is used to share information about other directly connected Cisco equipment, such as the operating system version and IP address. CDP can also be used for On-Demand Routing, which is a method of including routing information in CDP announcements so that dynamic routing protocols do not need to be used in simple networks.

<span class="mw-page-title-main">NetFlow</span> Communications protocol

NetFlow is a feature that was introduced on Cisco routers around 1996 that provides the ability to collect IP network traffic as it enters or exits an interface. By analyzing the data provided by NetFlow, a network administrator can determine things such as the source and destination of traffic, class of service, and the causes of congestion. A typical flow monitoring setup consists of three main components:

<span class="mw-page-title-main">Cisco Catalyst</span> Ethernet switch product line

Catalyst is the brand for a variety of network switches, wireless controllers, and wireless access points sold by Cisco Systems. While commonly associated with Ethernet switches, a number of different types of network interfaces have been available throughout the history of the brand. Cisco acquired several different companies and rebranded their products as different versions of the Catalyst product line. The original Catalyst 5000 and 6000 series were based on technology acquired from Crescendo Communications. The 1700, 1900, and 2800 series Catalysts came from Grand Junction Networks, and the Catalyst 3000 series came from Kalpana in 1994.

A UDP Helper Address is a special router configuration used to forward broadcast network traffic from a client machine on one subnet to a server in another subnet.

<span class="mw-page-title-main">Cisco Catalyst 6500</span> Network switch

The Cisco Catalyst 6500 is a modular chassis network switch manufactured by Cisco Systems from 1999 to 2015, capable of delivering speeds of up to "400 million packets per second".

<span class="mw-page-title-main">Forwarding plane</span>

In routing, the forwarding plane, sometimes called the data plane or user plane, defines the part of the router architecture that decides what to do with packets arriving on an inbound interface. Most commonly, it refers to a table in which the router looks up the destination address of the incoming packet and retrieves the information necessary to determine the path from the receiving element, through the internal forwarding fabric of the router, and to the proper outgoing interface(s).

<span class="mw-page-title-main">Cisco 2500 series</span> Network Router

The Cisco 2500 series routers are a series of 19" rack mount access routers typically used to connect Ethernet or Token Ring networks via ISDN or leased serial connections. The routers are based on a Motorola 68EC030 CISC processor. This line of routers is no longer sold or supported by Cisco Systems. They were superseded by the Cisco 2600 series, which has also reached EOL now.

Web Cache Communication Protocol (WCCP) is a Cisco-developed content-routing protocol that provides a mechanism to redirect traffic flows in real-time. It has built-in load balancing, scaling, fault tolerance, and service-assurance (failsafe) mechanisms. Cisco IOS Release 12.1 and later releases allow the use of either Version 1 (WCCPv1) or Version 2 (WCCPv2) of the protocol.

NX-OS is a network operating system for the Nexus-series Ethernet switches and MDS-series Fibre Channel storage area network switches made by Cisco Systems. It evolved from the Cisco operating system SAN-OS, originally developed for its MDS switches.

<span class="mw-page-title-main">Junos OS</span> Real-time operating system (RTOS) software

Junos OS is a FreeBSD-based network operating system used in Juniper Networks routing, switching and security devices.

The Cisco Aggregation Services Router (ASR) series of routers are modular routers produced by Cisco Systems. The highest end of the lineup, the ASR 9000 series, is intended for service provider (SP) core networks.

<span class="mw-page-title-main">Cisco IOS XR</span>

IOS XR is a release train of Cisco Systems' widely deployed Internetwork Operating System (IOS), used on their high-end Network Convergence System (NCS) and carrier-grade routers such as the ASR 9000 series and Carrier Routing System series of routers.

FTOS or Force10 Operating System is the firmware family used on Force10 Ethernet switches. It has a similar functionality as Cisco's NX-OS or Juniper's Junos. FTOS 10 is running on Debian. As part of a re-branding strategy of Dell FTOS will be renamed to Dell Networking Operating System (DNOS) 9.x or above, while the legacy PowerConnect switches will use DNOS 6.x: see the separate article on DNOS.

In computer networking, Cisco ASA 5500 Series Adaptive Security Appliances, or simply Cisco ASA, is Cisco's line of network security devices introduced in May 2005. It succeeded three existing lines of popular Cisco products:

Cisco Embedded Event Manager (EEM) is a feature included in Cisco's IOS operating system that allow programmability and automation capabilities inside the device. EEM allows the behavior of a Cisco device to adapt to specific user requirements by allowing scripting, thresholding, proactive actions, data collection and event management inside the Cisco device itself. Using EEM, problems can be identified and resolved automatically in advance by setting event triggers to watch for specific types of situations or thresholds, or run a set of actions periodically.

DNOS or Dell Networking Operating System is a network operating system running on switches from Dell Networking. It is derived from either the PowerConnect OS or Force10 OS/FTOS and will be made available for the 10G and faster Dell Networking S-series switches, the Z-series 40G core switches and DNOS6 is available for the N-series switches.

IOS XE is a release train of Cisco Systems' widely deployed Internetworking Operating System (IOS), introduced with the ASR 1000 series.

References

  1. "Networking Software (IOS & NX-OS)". Archived from the original on October 26, 2022. Retrieved November 1, 2022.
  2. "Cisco Internetworking Operating Systems (IOS)". Cisco. Archived from the original on 25 October 2022. Retrieved 25 October 2022.
  3. "Inside the Engineering Quad | Stanford University School of Engineering". Stanford University. Archived from the original on 2022-05-14. Retrieved 2022-05-17. In 1984, alumnus Leonard Bosack and his, wife Sandy Lerner, left computer operations staff jobs at Stanford to found an Internet router company called Cisco, which has become the dominant company in the industry. They adapted the multi-protocol router software developed some years earlier at Stanford by William Yeager.
  4. Connor, Deni (2007-07-03). "The top network inventors of all time". Computerworld. Archived from the original on 2022-10-18. Retrieved 2022-05-17.
  5. Dix, John (2006-03-27). "Router man". Network World. Archived from the original on 2014-02-01. Retrieved 2022-05-17.
  6. 1 2 3 4 5 Brad Edgeworth; Aaron Foss; Ramiro Garza Rios (2014). IP Routing on Cisco IOS, IOS XE, and IOS XR: An Essential Guide to Understanding and Implementing IP Routing Protocols. Cisco Press. p. 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. "Configuration Fundamentals Configuration Guide, Cisco IOS Release 15M&T". Cisco. Archived from the original on 15 May 2022. Retrieved 14 May 2022.
  9. 1 2 3 "Cisco IOS and NX-OS Software Reference Guide", Cisco White Paper, archived from the original on June 6, 2013, retrieved June 18, 2013
  10. Brad Edgeworth; Aaron Foss; Ramiro Garza Rios (2014). IP Routing on Cisco IOS, IOS XE, and IOS XR: An Essential Guide to Understanding and Implementing IP Routing Protocols. Cisco Press. p. 3. ISBN   9780133846768.
  11. Brad Edgeworth; Aaron Foss; Ramiro Garza Rios (2014). IP Routing on Cisco IOS, IOS XE, and IOS XR: An Essential Guide to Understanding and Implementing IP Routing Protocols. Cisco Press. p. 4. ISBN   9780133846768.
  12. 1 2 3 4 5 6 Rullan, John (2005), "Understanding Cisco IOS Naming Conventions" (PDF), Cisco Academy Conference Presentation, archived (PDF) from the original on February 8, 2016, retrieved October 10, 2016
  13. "ios7crypt". Archived from the original on 2017-03-25. Retrieved 2012-09-19.
  14. "Cisco password decryption". insecure.org. Archived from the original on 2023-09-27. Retrieved 2024-04-10.
  15. "Cisco IOS Password Encryption Facts". Archived from the original on 13 September 2017. Retrieved 12 September 2017.
  16. "Cisco 500-052 Test". Archived from the original on 22 February 2017. Retrieved 21 February 2017.
  17. Kim Zetter (August 1, 2005). "Router Flaw Is a Ticking Bomb". Wired. Archived from the original on September 4, 2014. Retrieved August 9, 2014.
  18. Kim Zetter (July 27, 2005). "Cisco Security Hole a Whopper". Wired. Archived from the original on September 5, 2014. Retrieved August 9, 2014.
  19. "Statement on Federal District Court Injunction (Black Hat Presentation)". Press release. Cisco Systems. July 28, 2005. Archived from the original on February 5, 2012. Retrieved June 18, 2013.
  20. "Junos OS | Juniper Networks US". Juniper Networks. Archived from the original on 2024-04-06. Retrieved 2024-04-10.