System-Engineering | 6 min read
Why engineers love Junos
Juniper’s Junos is used across firewalls, routers and switchers and it has some unique features that make engineers love Junos. Find out why.
Did you know that ngworx is one of Juniper’s Elite Partners since 2013? As a Juniper partner, we want to provide a little insight into the Junos Operating System which runs on all of the Juniper platforms
This blog will help you to find some answers to the following questions:
- Are you not sure if Juniper and Junos OS is the correct path for you?
- Are you looking for a change?
- Are you interested in new challenges in the Network field?
- Is your customer thinking about transitioning from another vendor to Juniper?
- Do you want to learn more about what differentiates Junos OS from other vendors’ Operating Systems?
Junos OS Commit Model
Juniper implemented an interesting approach regarding how to manage the configuration of their devices. Junos OS is based on a Commit model, which allows the engineers to make changes to the configuration without activating them instantly. This approach prevents misconfigurations and avoids causing an undesirable issue on your current network.
How the Commit Model works:
When the configure command is typed in on the Junos CLI, you will enter the configuration mode which will allow you to alter the current configuration of your device as desired. As the first step, a copy of the current configuration file will be created. This copy is known as the candidate configuration. As the name indicates, the candidate configuration will capture all the desired statements, before being committed. When you’re finished with your configuration changes, the commit command needs to be run in order to activate your candidate configuration file. The configuration is first checked for syntax errors, if the syntax is correct, the configuration is activated and saved as the first rollback configuration file, and any other rollback configuration files are incremented by 1. The device can have a maximum of 50 rollback configurations saved on the system, which are numbered from 0 to 49. The most recently saved configuration is number 0 and the oldest saved configuration is number 49. By Issuing the rollback [number] command, you activate the configuration of the file indicated on the command. If not number is defined under the command, the configuration file number 0 is selected by default. This feature allows you to easily recover an old configuration or go back in case an undesirable configuration was set.
Apart from the configure command, there are other options available in Junos to modify your current configuration. The first is the configure private, this feature allows multiple users to edit the configuration at the same time. The first candidate configuration committed by one of the users will have preference over successive commit actions. The other choice available is configure exclusive, which allows a user to lock the configuration and modify it without interference from other users.
Junos for switching, routing, and security platform
Another major advantage of Junos OS respectively other vendors operating systems is, that it uses a common language across a variety of devices within the Juniper catalog. Junos OS is used by Juniper Switches, Routers, and Security devices. In other words, this helps making engineers’ life less complicated since it reduces the complexity of network design and its management. But this is not only beneficial for the engineers but also for the customers since the cost is reduced by implementing this solution in their infrastructure. Some reasons are:
- Less training for their employees
- Bigger scalability
- Easier management
- Higher compatibility
Junos design vs. Cisco design
Since the beginning, Cisco has used a monolithic kernel design to develop Cisco IOS. In other words, there is no separation of memory space between the different modules. In a case where a single module or process crashed, the whole system would be affected and become unresponsive. Cisco released a new Operating System some years ago, called Cisco IOS-XE, which is based on the modular kernel design. But guess what? Juniper developed Junos OS by implementing this modular solution from the beginning in 1998. The main advantage of the modular design is that each process runs independently in its own protected memory space, avoiding another process of being affected when one process failed due that they shared the same memory. Another important point that differentiates Junos OS from other operating systems is that Junos OS provides a separation of the control and forwarding plane. Some benefits of having this separation are:
- Evolve them independently
Through the years, we noticed how automation has been well received within the networking field. It is interesting to see how it helps network engineers to avoid configuration errors, save time and facilitate the management of a small and large network infrastructure. Within Junos OS, we find a toolkit that is used to automate operational and configuration tasks. Some examples of possible automation task that can be configured are:
- Commit scripts and macros
- Operation scripts
- Event policies and event scripts
- SNMP scripts
The scripts languages for automation supported by Junos OS are:
- Extensible Stylesheet Language Transformations (XSLT): is a XML-based syntax and standard for processing XML data.
- Stylesheet Language Alternative syntaX (SLAX): an alternative to XSLT, it has a similar syntax to C and Perl.
- Python is a commonly-used, open-source programming language with extensive standard and community libraries. On devices running Junos OS, Python automation scripts can leverage Junos PyEZ APIs to simplify many operational and configuration tasks.
Access to Unix utilities via FreeBSD shell
Junos OS is based on FreeBSD which is an Open Source, standards-compliant Unix-like operating system. FreeBSD is known worldwide for the capability of creating powerful applications within the networking world. It provides a major amount of utilities that help you manage and check for the status of your device. Apart from these utilities, if you have enough knowledge of FreeBSD, it provides the possibility to alter the software on your device. Junos shell provides you feedbacks while coding, while other operating system does not provide it until you finished programming and want to debug your code. For sure, you will enjoy the increased efficiency of programming in the Junos shell.
Junos OS has a lot to offer and it is a good alternative to be taken into consideration. Many competitors of Juniper have implemented similar features in their newest releases since this kind of solution was proven to be more efficient, scalable, and stable. I personally enjoy working with Junos due to its flexibility and hierarchical structuration, which make it more comprehensive for engineering tasks. I hope this blog has helped you to obtain a better understanding of how Junos OS works and its many strengths.