Careers & Certifications

08:00 AM
Jon Langemak
Jon Langemak
Commentary
Connect Directly
Twitter
LinkedIn
RSS
E-Mail
50%
50%

Why Network Engineers Need To Learn Linux

With most network operating systems based on Linux and the number of Linux-based projects like OpenStack growing, Linux skills are a requirement for networking pros.

There’s been a lot of talk recently about what network engineers should learn to stay relevant. While the field is rapidly changing, I’m going to suggest that one of the most important areas we as network engineers can focus on is Linux. My reasons for this are two-fold. First off, it’s becoming more and more apparent that most network operating systems are based on some variation of Linux. Different vendors offer varying degrees of access to the underlying Linux operating system with the trend being to give the user more and more access into system internals.

Secondly, we can’t ignore the proliferation of Linux-based projects such as OpenStack, Docker, and Kubernetes and the impact they are having in the IT space. Having the ability to effectively troubleshoot basic Linux networking constructs is quickly becoming a must-have.

Historically, most network engineers have been focused on the CLI. The reasoning for this was simple, it was our only option. The CLI came with its own set of problems. Using the CLI for a given vendor meant learning that vendor’s unique syntax. This meant that being able to configure a Cisco switch didn’t imply I could configure a Juniper switch. If we consider that most network switches are built off of a Linux base, and provide similar functionality, the CLI becomes an abstraction of the underlying Linux system. While I think this is a fair generalization, it’s also fair to say that most vendors don’t run a completely vanilla version of Linux or the Linux kernel.

Despite modifications, having access to the native Linux shell affords us some significant wins. Tools and applications that were once reserved for the server world become available. Packet analysis can be done on box with tools like TCPDUMP. Network switches can be managed more effectively from a policy level with automation and orchestration tools like Puppet and Chef. Having the ability to access the native Linux operating system gives us great flexibility and opens the door to many new possibilities.

Another area of Linux we should focus on is the Linux networking stack. At first glance, the networking configuration of a single Linux host may seem trivial. However, there are actually many robust network features inside of Linux system. Many of the top open source projects find ways to leverage these features in interesting, and sometimes complex, ways. Having an understanding of the inherent networking features in Linux is a must if you want to understand how they can be used together.

For instance, Docker is able to deliver container network isolation by leveraging network namespaces along with basic Linux interfaces and bridging. Network engineers looking to understand these open source projects should make sure they understand the Linux networking primitives that these tools leverage.

In addition to the native Linux features, there are other projects such as Open vSwitch (OVS)that seek to extend Linux networking functionality. While OVS isn’t native to Linux, it does have its own Linux kernel module and is used extensively with open source projects such as OpenStack. OVS is a prime example of how a Linux host can be extended to provide more than basic level of network attachment. It’s also a good example of the direction things are heading and the skillset that will be required to effectively work and troubleshoot Linux host networking.

So as you can see, there are a variety of reasons to learn more about Linux as a whole. But as with any new skill, the hardest part of learning is finding where to start. If you’re new to Linux as a whole, focus on getting comfortable with the command line. Learn how to get around, inspect system parameters, and make configuration changes. Once you get comfortable with the basics, start focusing on individual pieces of technology. The brilliant part of Linux is that there’s a multitude of "how to" articles on the internet that can walk you through just about anything you’re looking to do. The key here is to get hands-on experience that you can continue to build on.

Current trends are pushing the skillset of the network engineer and the server administrator closer together. On the physical network side, the ability to access the native Linux shell enables us to install tools and application once reserved for Linux servers. On the Linux server side, the days of simple host networking are quickly evaporating as more of the network logic moves down into the Linux host.

The range and scope of technologies that leverage Linux is large and growing rapidly. The deeper you dive into any technology the more likely you are to see Linux. Having a solid understanding of Linux as it relates to both basic operations and networking is a skill worth having. 

Jon Langemak is a Minnesota-based network architect with more than 10 years of experience designing, building, and maintaining networks. Jon's main focus is on disruptive technology and trying to find ways to improve network operations. Outside of work, Jon blogs at ... View Full Bio
Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
virsingh211
50%
50%
virsingh211,
User Rank: Ninja
12/21/2015 | 10:38:34 AM
Re: Linux skills
You mention good point @Class C, open source nature of Linux makes it possible to highly tune Linux for a specific purpose and design your own device as per your need and requirement.
ClassC
50%
50%
ClassC,
User Rank: Ninja
12/17/2015 | 6:13:50 PM
Re: Linux skills

This was a really good explanation of why Network Admins must have an understanding of Linux.  As I do more and more network related assignments, I am seeing exactly what Jon mentions - Command and vendor based configuration is the norm. 

I have been working with Linux for the last five years and while I feel more comfortable with it - it is a constant challenge to expand on my foundation.

Engineers of every type should at least have the basics in their toolbox.

Mynet
100%
0%
Mynet,
User Rank: Ninja
12/14/2015 | 11:52:38 PM
Multiple roles for networking peoples.
"Current trends are pushing the skillset of the network engineer and the server administrator closer together. On the physical network side, the ability to access the native Linux shell enables us to install tools and application once reserved for Linux servers."

Jon, you are very right. The current trend is multi tasking and pushing all such responsibilities to a single person. Server administration, networking, data base management and sometimes network security too. The basiscs of Unix/Linux can help these peoples to easly understand other OS concepts like solarisis, Lotus etc 
Mynet
100%
0%
Mynet,
User Rank: Ninja
12/14/2015 | 11:47:48 PM
Re: Linux skills
virsingh, jon has mentioned the answer for your concern/query through blog itself "there are a variety of reasons to learn more about Linux as a whole. But as with any new skill, the hardest part of learning is finding where to start. If you're new to Linux as a whole, focus on getting comfortable with the command line. "
virsingh211
50%
50%
virsingh211,
User Rank: Ninja
12/14/2015 | 12:22:16 AM
Re: Linux skills
Thank you for the post, Linux has always been in my To DO/ To Learn list but i always remained in confusion about, from where start. Although i execute different CLI in devices based on Linux but still Linux learning is pending.
MarciaNWC
50%
50%
MarciaNWC,
User Rank: Strategist
12/8/2015 | 12:10:54 PM
Linux skills
Hi Jon -- Welcome to Network Computing! Thanks for this sound advice. We're looking forward to your future blogs!
Slideshows
Cartoon
White Papers
Register for Network Computing Newsletters
Current Issue
Video
Twitter Feed