published: 23rd of February 2019
Junos is the name of the operating system that is used to manage Juniper network devices. Fun fact Junos is built on a base of FreeBSD and is designed to be modular and secure while providing a uniform user interface across all platforms.
The Junos operating system unlike other network vendors use a common code base across multiple product lines such the the MX, QFX, EX and SRX series devices.
Junos OS processes run in their own protected memory space. This prevent an errant process interfering with any other processes.
The control and data plane are split into two separate engines. The routing engine (RE) and the packet forwarding engine (PFE) respectively. The RE and the PFE are connected via in 'internal' link where all communication between the two is passed. This architecture enables HA features such as in-service software upgrades (ISSU) and graceful routing engine switchover (GRES)
The routing engine is the brains of the operation. The RE maintains the routing, bridging and primary forwarding tables as well as performs all protocol processing. Additionally the RE controls things such as the interfaces and chassis hardware as well as user access via the CLI or J-WEB.
The RE holds a copy of all routes from all protocols in its routing table. The best routes are declared active and placed in the forwarding table. The forwarding table is shared with the PFE.
The RE also manages the microcode that runs on the PFE. In turn the PFE forwards hardware and environment status information to the RE to action as required.
The Packet Forwarding Engine is responsible for forwarding transit traffic based on a local copy of the forwarding table received from the RE. The PFE usually runs on separate hardware to the RE and generally use ASICs to provide high speed forwarding capabilities. Local copies of the forwarding tables allow the PFE to continue to forward traffic during any control plane instability.
Most types of ICMP messages are processed by the PFE for example: ICMP unreachable and TTL expired messages.
Transit traffic is defined as traffic that traverses the forwarding plane without the need to be punted to the control plane.
Exception traffic is defined as traffic requiring processing by the control plane. Some examples of such traffic are as follows.
Exception traffic is rate limited over the internal link to prevent DoS of the control plane. This default rate limiting is not configurable with preference given to local and control traffic.
Junos software versions have the format M.NZB.S . For example, the version 17.2R1.13 mapping is outlined below.
Additionally the type of release can have the following values
https://www.juniper.net/us/en/products-services/nos/junos/
https://www.juniper.net/documentation/en_US/junos/topics/concept/junos-software-architecture.html