cisco ios
Cisco IOS (originally Internetwork
Operating System) is a family of software used on most Cisco Systems routers and current Cisco network switches. (Earlier
switches ran CatOS.) IOS
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 QNX and Linux for use in
Cisco products or simulators such as Cisco VIRL.
Not
all Cisco products run IOS. Notable exceptions include ASA security
products, which run a Linux-derived operating system, and carrier routers which
run IOS-XR.
Interface
The IOS command line interface 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:
·
User EXEC Mode
·
Privileged EXEC Mode
·
Global Configuration
Mode
·
ROM Monitor Mode
·
Setup Mode
·
More than 100
configuration modes and submodes.
Cisco IOS is versioned using three numbers and some letters, in
the general form a.b(c.d)e, where:
·
a is the major version number.
·
b is the minor version number.
·
c is the release number, which begins at
one and increments as new releases in a same way a.b train are
released. "Train" is Cisco-speak for, "...a vehicle for
delivering Cisco software to a specific set of platforms and features.."
·
d (omitted from general releases) is the
interim build number.
·
e (zero, one or two letters) is the software release train identifier,
such as none (which designates the mainline, see below), T (for
Technology), E (for Enterprise), S (for
Service provider), XA as a special functionality train, XB as
a different special functionality train, etc.
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 minimise 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.
Architecture
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 BGPrun 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.
Cisco IOS has a "monolithic" architecture, which means that it runs as a
single image and all processes share the same memory space. There is no memory
protection between processes, which means that bugs in IOS code can potentially
corrupt data used by other processes. It also has a run to completion scheduler,
which means that the kernel does not pre-empt a running process — the process
must make a kernel call before other processes get a chance to run. For Cisco
products that required very high availability, such as the Cisco CRS-1, these limitations were not acceptable. In
addition, competitive router operating systems that emerged 10–20 years after
IOS, such as Juniper's JUNOS,
were designed not to have these limitations.[5] Cisco's
response was to develop a new version of Cisco IOS called IOS XR that offered modularity and memory protection
between processes, lightweight threads, pre-emptive scheduling and the ability
to independently restart failed processes. IOS XR uses a 3rd party real-time operating
system microkernel (QNX),
and a large part of the current IOS code was re-written to take advantage of
the features offered by the new kernel. But the microkernel architecture
removes from the kernel all processes that are not absolutely required to run
in the kernel, and executes them as processes similar to the application
processes. Through this method, IOS XR is able to achieve the high availability
desired for the new router platform. Thus IOS and IOS XR are very different
codebases, though related in functionality and design. In 2005, Cisco
introduced IOS XR on the Cisco 12000 series platform, extending the microkernel
architecture from the CRS-1 to Cisco's widely deployed core router.
In 2006, Cisco has made available IOS Software Modularity which
extends the QNX microkernel into a more traditional IOS environment, but still
providing the software upgrade capabilities that customers are demanding. It is
currently available on the Catalyst 6500 enterprise switch.