Showing posts with label Junos. Show all posts
Showing posts with label Junos. Show all posts

Thursday, June 13, 2013

Network Operating System Evolution Juniper Networks Junos OS: Architectural Choices at the Forefront of Networking

This paper discusses the requirements and challenges inherent in the design of a carrier-class network operating system (OS). Key facets of Juniper Networks? Junos? operating system, Juniper's network operating system, are used to illustrate the evolution of OS design and underscore the relationship between functionality and architectural decisions.

The challenge of designing a contemporary network operating system is examined from different angles, including flexibility, ability to power a wide range of platforms, nonstop operation, and parallelism. Architectural challenges, trade-offs and opportunities are identified, as well as some of the best practices in building state-of-the-art network operating systems.

Modern network devices are complex entities composed of both silicon and software. Thus, designing an efficient hardware platform is not, by itself, sufficient to achieve an effective, cost-efficient and operationally tenable product. The control plane plays a critical role in the development of features and in ensuring device usability.

Although progress from the development of faster CPU boards and forwarding planes is visible, structural changes made in software are usually hidden, and while vendor collateral often offers a list of features in a carrier-class package, operational experiences may vary considerably.

Products that have been through several generations of software releases provide the best examples of the difference made by the choice of OS. It is still not uncommon to find routers or switches that started life under older, monolithic software and later migrated to more contemporary designs. The positive effect on stability and operational efficiency is easy to notice and appreciate.

However, migration from one network operating system to another can pose challenges from nonoverlapping feature sets, noncontiguous operational experiences and inconsistent software quality. These potential challenges make it is very desirable to build a control plane that can power the hardware products and features supported in both current and future markets.

Developing a flexible, long-lasting and high-quality network OS provides a foundation that can gracefully evolve to support new needs in its height for up and down scaling, width for adoption across many platforms, and depth for rich integration of new features and functions. It takes time, significant investment and in-depth expertise.

Most of the engineers writing the early releases of Junos OS came from other companies where they had previously built network software. They had firsthand knowledge of what worked well, and what could be improved. These engineers found new ways to solve the limitations that they'd experienced in building the older operating systems. Resulting innovations in Junos OS are significant and rooted in its earliest design stages. Still, to ensure that our products anticipate and fulfill the next generation of market requirements, Junos OS is periodically reevaluated to determine whether any changes are needed to ensure that it continues to provide the reliability, performance and resilience for which it is known.

Contemporary network operating systems are mostly advanced and specialized branches of POSIX-compliant software platforms and are rarely developed from scratch. The main reason for this situation is the high cost of developing a world-class operating system all the way from concept to finished product. By adopting a general purpose OS architecture, network vendors can focus on routing-specific code, decrease time to market, and benefit from years of technology and research that went into the design of the original (donor) products.

For example, consider Table 1, which lists some operating systems for routers and their respective origins (the Generation column is explained in the following sections).

Generally speaking, network operating systems in routers can be traced to three generations of development, each with distinctively different architectural and design goals.

Typically, first-generation network operating systems for routers and switches were proprietary images running in a flat memory space, often directly from flash memory or ROM. While supporting multiple processes for protocols, packet handling and management, they operated using a cooperative, multitasking model in which each process would run to completion or until it voluntarily relinquished the CPU.

All first-generation network operating systems shared one trait: They eliminated the risks of running full-size commercial operating systems on embedded hardware. Memory management, protection and context switching were either rudimentary or nonexistent, with the primary goals being a small footprint and speed of operation. Nevertheless, first-generation network operating systems made networking commercially viable and were deployed on a wide range of products. The downside was that these systems were plagued with a host of problems associated with resource management and fault isolation; a single runaway process could easily consume the processor or cause the entire system to fail. Such failures were not uncommon in the data networks controlled by older software and could be triggered by software errors, rogue traffic and operator errors.

Legacy platforms of the first generation are still seen in networks worldwide, although they are gradually being pushed into the lowest end of the telecom product lines.


View the original article here

Monday, June 10, 2013

Introduction to Junos

This white paper provides a clear introduction to the workings of the Junos operating system and the devices in the Junos lineup. Following the outline of the Introduction to the Junos Operating System course, we will focus on topics that will get your feet wet and have you talking Junos in no time.

None of us have much time to waste, so what can you do when your environment changes quickly and you need to come up to speed on a device that you have never seen before? You find the quickest way to bring yourself up to speed. This white paper will help you do just that by providing a clear introduction to the workings of the Junos operating system and the devices in the Junos lineup. The white paper follows the outline of the Introduction to the Junos Operating System Student Guide used in the Global Knowledge course.

Some of you will have experience with other vendors' equipment, and some of you will not have much experience at all; therefore, we will focus on topics that will get your feet wet the quickest and have you talking Junos in no time.

The core of Juniper devices is the Junos OS. Junos OS is based on the FreeBSD UNIX operating system (OS). The OS implements a single software train through the entire line of Junos products. The same train is used from the entry-level J series routers to the service provider TX Matrix switches. Each product line implements the same base OS, but each has additional code specific to that product line.

To create stable devices that can deliver high performance you need to adhere to sound logic and strict processes. Juniper has done this by keeping a clean separation between the control and forwarding planes on their devices. The control plane includes the routing engine and forwarding table. The forwarding table is linked to the packet-forwarding engine of the forwarding plane, allowing for stable control protocols and high speed forwarding capabilities. The forwarding plane is responsible for the other functions like policing, stateless firewall filtering, and class of service. Transit traffic is forwarded via the Packet Forwarding Engine without passing through the control plane. This is possible because the control plane updates the forwarding table for the forwarding plane. The exception traffic, traffic destined to the local device, is sent to the routing engine CPU.

There are three types of devices: switching, routing, and security. The smallest routing platform is the J Series routers, which are ideal for remote, branch, and regional offices. The M Series Multiservice Routers are ideal for enterprise and service provider networks. The T Series Core Routers are ideal for service provider networks. On the switching side, the EX Series Ethernet Switches are ideal for regional offices, campuses, and data centers. The MX Series Ethernet Services Routers are ideal for carrier Ethernet environments.

The original Junos product line lacked one product to compete in the enterprise arena, a security device. Juniper acquired Netscreen to initially bridge this gap with the Netscreen Screen OS devices, but the bigger picture was to manufacture a Juniper security device using the Junos OS. With this as the goal, Juniper introduced their first security appliance called the SRX Services Gateways. The SRX devices are ideal for enterprise and service provider networks.

You have the same access options that most other vendors provide; you can connect via console, telnet, and SSH to use the CLI interface. GUI access via HTPP is also available, but most people find that the CLI is much easier and quicker to use than the GUI.

Junos has the capability for a user to automatically login to the UNIX BSD shell just like you would normally with a Linux or UNIX device. For example, if you login as root, you will be placed into the UNIX BSD shell. You can't perform any switching, routing, or security functions from the BSD shell. You must switch to operation mode where you can display statistics and configuration information.

The UNIX BSD shell is designated with the % prompt. Here you can enter standard UNIX commands.

root@%

You can enter operation mode by typing cli and pressing enter. Operational mode is designated with the > prompt. Once you're in operation mode, you can utilize operational commands, and you can enter configuration mode from here.

root@% cli
root>

Once you're in operation mode, you will see that Junos uses a hierarchical system to arrange its commands. This is even more apparent in configuration mode.

Entering configure or edit at the operational prompt will place you in configuration mode. Configuration mode is designated with the # prompt. You will also notice that the word edit appears above the prompt in brackets. This shows your level in the command hierarchy and it will change as you change levels.


View the original article here