I recently replaced my faithful and much loved Toyota Celica with a Lexus IS 250. The Celica had a manual gear box, a noisy but superb 1.8L VVTi ‘with lift’ engine which was naturally aspirated (no turbo). At 190 BHP the engine delivered over 100BHP per Litre of engine capacity which put’s some higher priced sports cars to shame. I loved that car and shed a tear when I sold it.
The Lexus has an automatic gearbox, in fact it has auto everything. I love this car. Its smooth and very relaxing to drive. It’s fitted with front and rear parking sensors as well as a reversing camera with lines that indicate trajectory so I can see the exact path the car is taking whist reversing, cruise control, auto lights, auto dimming rear mirrors, the list goes on. These type of features on a car are not essential but they certainly make things safer and much more convenient.
What’s all this got to do with Software Defined Networking (SDN) ?
You can read about SDN here but a simple description would be ‘Abstraction of the control plane from the data plane’. Vendors are developing or already released their own SDN products that can be configured to program parts or all of the network for you.
Let’s say you have a bunch of switches / firewalls routers etc forming a network. You have a requirement to permit access from a host to a server through the network. Normally as an engineer you would need to scope what changes are required to permit the traffic between the host and the server. Router ACL’s / firewall rules / Access ports & vlans etc. Each device has its own control plane and needs to be configured independently. An SDN Controller could be configured to have a visibility and access to all the devices. It would know the state and configuration of each and every device. Instead of needing to configure every network device independently you could tell the SDN controller what’s required to accommodate the traffic flow between the host and server. The controller would know which ACL’s need amending, existing firewall rules that could be utilised or new rule required, if the vlan exists on the switches and create a new one’s etc. The controller could also validate your requirement to prevent miss configurations.
There are concerns that SDN spells the end of network engineers due to this enhanced automation and programmability which SDN brings. You can read more about that here.
I welcome SDN and very much looking forward to working on networks that are software defined using controllers. SDN provides safety mechanisms to change control as the human error aspect is removed. How many times have engineers levelled entire networks with configuration errors? Many times.
For production networks SDN is a no brainer to me. Especially if the network is running business critical applications. I’ve worked on networks that carry a threat to life classification, a 999 call centre for example. Making changes on these type of networks requires being extremely methodical and good planning with change control processes in place. Even with all those things an engineer could still fat finger the interface number and shut down an interface that’s passing traffic. Manual configuration changes are like a loaded gun with the safety off.
I have a 3 year old son who, like most children of his age likes to talk. He talks allot, especially when your driving through an unfamiliar city and your trying to concentrate. Much like a manager / director likes to scream at you with less than productive comments during a network outage and your trying to concentrate. It’s certainly been easier for me to deal with the noise from my son while in the Lexus. I have more mental reserves available to me as the Lexus gracefully takes care of changing gears and warning me of an impending collision etc. I see an SDN controller adding similar value during those stressful network outages.
Are you a CLI purist concerned your skills are still going to be required in this brave new world of SDN? I believe they will be, during Implementation stages, proof of Concept testing, lab testing and troubleshooting etc. If you study for certifications regularly like I do then the labs in the exam will still require you to manually configure everything via CLI (Unless the exam is SDN controller related of course!). These skills are still required and valuable.
If I want the thrill of driving a manual transmission sports car then I’ll do so as part of track day event. Much the same way I can stay in touch with manually configuring network devices in a lab environment with no risks. For production environments though I’ll let the SDN controller do the work for me just as my Lexus auto everything car makes driving less stressful with lower risks of collisions (In my opinion)
Did I mention my son talks allot? 🙂