cicocliIt used to be pretty simple to adopt and learn the necessary knowledge and skills for a career in the field of Networking (we call it Network Science).  It usually involved a non-university certification program (Cisco or Juniper or someone else), a bunch of money, and a bunch of time dedicated to the craft.  In some cases you could drill down onto Layer 3 or Layer 2 specialization.  It mean that manufacturers produced closed systems that were often different and designed for a certain role in the network (for example Core Router vs. Access Router).  Generally speaking, this meant building lab systems costing significant amounts of money, space, power and A/C, learning the endless CLI commands, and designing lots of scenarios for the lab systems.  I know this because I did all that!

It should be noted that sniffing and studying packets and their contents has always been an important skill - and the tool for this has always been Wireshark.

Then things began to change.  With virtualization, you could build a lab on your laptop (GNS3 has been our favorite since its inception).  But knowing the CLI, having tons of variations, and no automation was still an issue.  During this change it was becoming obvious to some of us that Linux was better than Windows, and more and more tools that helped step away from CLI started to arrive on the doorstep, usually for free.  We started to see the Network Engineer needing to have virtualization skills and we also started the see a dependency on more programming and scripting skills.  Even using Git to save and track configuration change entered into the picture.  We saw the development and delivery of virtual routers and virtual switches, and then we had the arrival of SDN – Software Defined Networking.

This changed the game again.  Albeit different things to different people, SDN was really about making the control of packet engines (switches and routers) in a way standardized.  A controller configures behaviors of those packet switching boxes to apply policies and services.  Not only did this redefine the network architecture, it redefined the networking skill set of the network engineer.  For many of us, we started learning this with mininet and then onto bigger and greater tools and products.  Facebook started building switches.  And more and more we became Linux based as a networking society (you can read my prior blog post on this here).

As I write this, the networking skill set is continuing to evolve.  Linux has become an absolute essential OS, as well as knowledge of bash, and knowledge of Git.  Understanding tools like GNS3 or Cisco’s VIRL are also essential skills today.  The reason for these skills is knowledge of how to mock up, test, validate, even simulate network designs asmalllinuxnd changes are requisite.  The need to program the network and automate the network has driven us to knowing Python, and tools that got their feet wet in data centers and server provisioning, as well as code control and distribution, has now required us to know tools like Netmiko, Genie, Ansible, Nornir and even Jenkins and other traditional software development tools.  (I am not even trying to create an all encompassing list – but would love to hear what others would add in the comments).

The importance of CLI memorization in CCNA/CCNP/CCIE type certifications is not quite so important any more.  Nice to have – yes.  But network engineers need to be developing their Linux, Python, Git, and other skills with a more burning precedence.  For those that already have the certification, you have to go back to class on these new subjects.  I don’t think you need to be a full on Python programmer by any stretch of the imagination, but you do have to know the basics, because most of the tools I have listed above are Python and Linux based.

That said, it is cheap to get started.  Basics classes are free to low cost (you can take some of those free classes here).  But the need for specifics and details come quickly, and they do cost money.  

What do these directions mean?  Well, it means that we are becoming less dependent on SSH to a router or switch skills.  That is done automatically by the tools.  It means you end up coding use cases and It is not clear that the traditional certification programs are that meaningful anymore.  pythonlogo

I personally am worried, because I see a problem.  If someone starts out with Python, Linux, Git, GNS3, Ansible, etc. – can they design and deploy a network?  Don’t they still need those CLI skills?  I recently heard this being compared to the change from DOS to Windows.  I could not agree.  That was different (and besides we have always had the terminal).  For example – let’s take the BGP protocol:  can you build a BGP confederation, with route reflectors, internal and external neighbors without a CLI level knowledge of the way this protocol is configured and the understanding as to how it behaves?  I look forward to thoughts and comments of what my readers think.

It will be interesting to see where this is all heading.

Comments powered by CComment

Find by Tag

4G Networks 5G Networks 6LoWLAN 6LoWPAN 802.11 802.11ah 802.11ax 802.11ay 802.11az Addressing Analysis Ansible Architecture ARP Assessment AToM Automation Baseline BGP Bloom's Taxonomy Cable cat CellStream Cellular Central Office Cheat Sheet Chrome Cisco Cloud CMD Computer Consulting Data Center Data Networking Dependencies DHCPv6 DNS Docker Documentation Dublin-Traceroute dumpcap Earth Earthquakes ECMP Ethernet Ethics Etiquette Evaluation Field Operations Fragmentation G-MPLS Gauge GeoIP Git GNS3 Google GQUIC Hands-On History Home Network ICMP ICMPv6 IEEE 802.11p IEEE 802.15.4 India Internet IoT IPsec IPv4 IPv6 IRINN IS-IS L2VPN L3VPN LDP Linux LLN LoL M-BGP MAC Macro Microsoft mininet Monitoring MPLS mtr MTU Multicast Murphy Name Resolution Netcat NetMon netsh Networking nmap NSE Observations Online School OpenFlow OSPF OSPFv2 OSPFv3 OSX OTT Paris-Traceroute Parrot PIM PMTU Policy POTS POTS to Pipes PPP Profile Project Management PW3E QoS QUIC Railroad Remote Desktop Requirements Resume Review RIP Routing RPL RSVP Rural SDN Security Service Provider Small Business SONET Speed SSH SSL Status Storms Subnetting SYSCTL T-Shark TCP TCP/IP Telco Telecom 101 Telecommunications Telephone termshark Testing TLS Tools Traceroute Traffic Engineering Training Travel Tunnel Ubuntu Utility Video Virtualbox Virtualization VoIP VRF VXLAN Wi-Fi Wi-Fi 4 Wi-Fi 5 Wi-Fi 6 Windows Wireless Wireless 5G Wireshark WLAN Writing Zenmap ZigBee

Twitter Feed