Monday, June 20, 2016

Open Virtual Switch (OVS)


As per Wikipedia, “Open vSwitch, sometimes abbreviated as OVS, is a production-quality open-source implementation of a distributed virtual multilayer switch. The main purpose of Open vSwitch is to provide a switching stack for hardware virtualization environments, while supporting multiple protocols and standards used in computer networks”

Open vSwitch is software based solution which resolves the problems of network separation with in virtualization environment. It also provides fast data path in kernel space with OPENFLOW implementation.

Open vSwitch design is divided into two parts:-

1. User Space: It helps in taking decision how to process the packet

2. Kernel Space: Kernel space is strictly reserved for running a privileged operating system kernel, kernel extensions, and most device drivers.

User Space consists of ovsdb-server and ovs-vswitch daemon whereas kernel space consists of OVS Kernel Module.

OVSDB-Server:- It holds the switch level configuration and communicates with controller by using OVSDB management protocol.

OVS-vSwitchd:- It communicates with outside world by using OPENFLOW protocol.

OVS Kernel Module:- It handles switching and tunneling with exact match of flows. Whenever packets hits this interface, if found, associated actions executed and counters updated. Otherwise packets sent to user space.


Click Here To Read Rest Of The Post...

Sunday, June 19, 2016

Basics of OPENFLOW: Programmatic Way To Program Data Planes


SDN is always referred as separation of control and data plane. But in general networking control plane is used to exchange the destination information whereas data plane is used to program the control plane information in the local stack along with the information how to reach to local neighbors. The advantage of this separation is that every time when the router receives reachability information for a network via control plane protocol, and then programs it’s own data plane so that packets go in the right direction based off of the learned information packets comes in. Data plane takes the responsibility to forward the packets to the neighbors keeping in mind that there is no change in the control plane; if change happens the same has been incorporated in the data plane.

In the world of SDN, we always come across OPENFLOW terminology and have perception in mind that if the software or hardware is not providing this capability is not SDN capable or certified.

However this is not the case; OPENFLOW is a control or communication protocol and foundational element of software defined networking. As in legacy networking, control and data plane resides in same element but leveraging open flow, control plane intelligence is taken out however data plane intelligence is residing local to the element. OPENFLOW defines a programmatic way to define the flow state in the local agent running on switch or router. The local agent must store these flow information locally and push them into vendor specific format on that device.

OPENFLOW is not a configuration protocol like we have NETCONF. OPENFLOW is used to provide the access of data plane by specifying general language which can be easily understood by any switch or router instead of making their own rules from local control plane.

OPENFLOW is control plane protocol as per given figure and the main objective is to provide open and programmatic way to program the data planes instead of relying on local control planes. It’s very clear no one can make the changes in the configuration by using OPENFLOW, it’s only intend is to tell the agent to add the flow, match the flow and forward the flow basis on its characterization like ether type, port, mac address and destination address etc.


Click Here To Read Rest Of The Post...