What is SDN?
Software Defined Networking (as defined by Wikipedia) is an approach to build computer networks that separates and abstracts elements of these systems. The origins of SDN come from the fact that the network has become increasingly complex to manage & operate. The original conclusion was that as a result of network devices being closed and innovation was limited to what a vendor offered. So if the control plane (configuration & control portion) could be separated from the data plane (packet forwarding portion) then they could presumably evolve independently, and be open to innovation from anyone.
Martin Casado Standford passout is considered as one of the fathers of SDN.
1.What is OpenFlow?
OpenFlow is a result of the PhD thesis of Martin Casado as advised by Nick McKeown & Scott Shanker. It is a communications protocol that enables a remote (i.e. Controller) entity to program the forwarding entries in a router or switch. Simply put, OpenFlow allows a network administrator to program forwarding policy of the network through a Controller. OpenFlow is controlled by the ONF (Open Networking Foundation) which is a non-profit organization.
2.What is OpenStack?
• Openstack is a set of software tools to manage compute, storage and network resources in a cloud (data center). The main tools include:
• Swift - manages storage and retrieval of objects from storage
• Glance - Catalog and repository for virtual machine (VM) images
• Nova- Allows setup and teardown of VM's
• Quantum - Create logical networks using programs like Nicira NVP, Cisco N1K, etc
• Horizon - Web based GUI for the above tools
3.What is the difference between SDN, OpenFlow, and OpenStack?
• SDN is a broadly defined term focused in on evolving the networking paradigm by leveraging software (e.g. programmatic) principles for solving networking challenges such as day to day operations.
• OpenFlow is the first practical example of a protocol that enables the separation of control & data plane. OpenFlow is just the first, of what will likely be many, example of SDN-based technologies.
• OpenStack is a set of software modules that when used together helps an organization build private & public cloud offerings. OpenStack has compute, storage & networking elements which enable customers an alternative, open source, choice for building their cloud environments. OpenStack can be deployed in traditional network environments, OpenFlow based networks, or software-only (aka Nicira) based networks. OpenStack is independent from SDN or OpenFlow.