With all the latest network virtualization hype, many are confused by the new buzzwords like SDN and NFV. In this post I will try to review these two, and try to find out if they are really rivals?
Up until today, most of the networking equipment was implemented over dedicated appliances. This includes:
- Load balancers
- DPI and contect inspection services
Every consumer, needed to purchase the right amount of appliances, upgrade them every few years (a “normal” network deployment usually need upgrades every 18 months), and solve bottlenecks, after they are detected. This required constant Opex/Capex costs from the operators, giving the networking equipment companies a lot of revenues.
Network Function Virtualization, is all about changing that. The approach here, is to deploy network services on a generic x86 hardware. This yields to:
- Flexible resource allocation: no “dedicated” equipment for specific function
- Scale-out architectures: Ability to add hardware dynamically.
- Bare metal or Virtual devices: One machine is capable of doing more than one function. The resource allocation is maximized.
It’s not hard to guess, that this type of overhead, has it’s performance downgrade. Now-days, Intel is constantly improving it’s virtualization support, and while using the latest Intel’s DataPath Development Kit (DPDK), the hardware capabilities are almost maxed out, letting a Xeon server (like IronPass/GreazlyPass) to achieve more than 10gbps on a single core.The main idea of intel DPDK is to bypass the OS stack. Some solutions may have virtual switches, (in opposite to hypervisor bypass, like SR-IOV) which gives: more convenient VM to VM communications, Tunneling support and traffic switching capabilities, but all this – has it’s performance cost. There is no right or wrong on a specific solution, choosing the right architecture should take in consideration all of the networking function requirements.
Software Defined Network, defines a network that has physical separation of the control plane from the forwarding plane (data plane), and where a control plane controls several devices. While doing that separation, a lot of the hardware, especially in the forwarding plane, can be much cheaper, and less complicated because a lot of the software is moved from the forwarding appliance to the centralized controller. This is where NFV is relevant. The motivation of the networking companies, is to start developing their services on generic x86 VMs to be part of the SDN revolution. This is a major change for them. Up until today, they all where using ASICs, Network processors, different CPU architectures and FPGAs. This doesn’t necessary means that this traditional hardware will vanish. Probably high rate traffic appliances will still be needed, and can also support SDN (like with openFlow protocol), but a lot of the industry will eventually use NFV where possible, for the benefits mentioned before.
NFV and SDN are coupled together. In order for SDN to leverage and deploy, equipment manufactures need first to use NFV to move their hardware based services to the “software” world. I think that currently, this is the major industry effort that we are evident to. More time is needed, until we will see large deployment of SDN. They also need to get used to a different business method: instead of making revenues from selling hardware – making revenues from software, like: service licensing, bandwidth and number of flows support.
Another big player here, is of-course Intel (until someone will rival them with CPU virtualization support), which now can sell more silicone for a whole new segment…
Anyway, this is a very exciting revolution, very similar to what the IT world went through 5-6 years ago. Definitely, networking, and big data centers will look very different in the near future.