Software Defined Networking

advertisement
David Baumgard
LTEC 4550
Final Term Paper
Software Defined Networking
Software-defined networking (SDN) is not a specific protocol or technology but
instead is a term used to describe the idea of using a network controller to allow network
administrators to control traffic. This allows the ability to configure devices remotely and
creates separation of the controlling device and the actual network.
SDN has the potential to lower the cost of the network by allowing the use of offbrand “white box” networking devices. Implementation of SDN allows a business to
manage the network and application services from a central location. The also provides
flexibility specifically for the implementation of policy and the ability to program and
control traffic flow. OpenFlow is currently the most common specification but competing
strategies are developing to resolve issues that arise when implementing SDN.
Application Centric Infrastructure (ACI) is Cisco’s hardware-based implementation that
is aimed at resolving the issues that are faced when attempting to implement SDN on an
existing network.
OpenFlow is currently the only SDN protocol that is currently standards-based.
Open Networking Foundation (ONF) is the organization that promotes the standard and
emphasizes the need for users to implement and collaborate. This protocol provides the
standard that allows communication between the control plane and the data plane. The
control plane is where the packet forwarding decisions are made. The data plane is the
destination to which the packets are forwarded. When describing this communication
control plane to data plane is south-bound and data to control plane is northbound and
utilizes SSL for a security measure. The abstraction between the networking devices and
the device that makes the routing or switching decision allows for the use of bare-metal
devices.
Application Programming Interface (API) is the tool that allows one application
to talk to another. This makes it possible for information to move between programs. An
API available is the OpenFlow Hardware Abstration API. This programming interface
resides within the software of the OpenFlow switch. The API is what allows the use of
“whitebox” devices. Without an API a network administrator would be required to use a
vendor specific network application such as the CLI within Cisco’s Internetwork
Operating System (IOS). APIs can be created in any number of languages such as Java,
Python or Ruby. The API is used to perform the actions inputting commands and
modifying the instructions of the network.
SDN is network virtualization which eliminates the need to configure each device
in the network topology and instead configure a single controller. This includes switching
and routing technologies which include VLANs, ACLs and many other familiar to the
networking industry. OpenFlow can also be used to configure OpenStack which provides
the ability to build cloud infrastructure which allows access to application services.
Virtualization allows an administrator to quickly change any of these protocols and
change security, flow of traffic or access to cloud technologies from a single device.
David Baumgard
LTEC 4550
Final Term Paper
Below is an image that details the abstraction of the decision making and why
bare-metal device are available when SDN is implemented. Notice that the Network
Operating System, this would be IOS for Cisco, is not within the hardware that is
forwarding the packet. Instead they would use OpenFlow to communicate with the device
that is configured and active makes decisions and implements policies.
[Online Image] http://www.slideshare.net/openflow/openflow-tutorial Available Dec 1,
2015
There several challenges facing the implementation of OpenFlow and SDN, since
there are currently no other protocols at the forefront, most prominent is scalability.
Currently there are no specifications regarding the proximity of the controller to the
switch as well as how many switches can it control. This causes issues regarding speed
and resource usage. SDN would in theory use resources more efficiently in the same way
that server virtualization has done. However, with the controller communicating through
several TCP sessions utilizing SSL there are concerns regarding the CPU usage.
Theoretically modern controllers should be able to server thousands of switches but this
has not been proven in production. Another problem is the amount of flows handled by
the switch. Flow tables are utilized instead of routing tables and currently OpenFlow
specifications say that the flow tables in a switch must match on 12 fields which can
David Baumgard
LTEC 4550
Final Term Paper
cause ternary content addressable memory to be limited to a couple thousand entries. This
leads to next issue of using flows. The flow table concept does not allow packets within
the same flow to be sent to different locations which effectively eliminates loadbalancing. There are also issues regarding the physical ports such as configuring trunks,
port groupings such as etherchannel, virtual ports and VLANs.
Flow Tables are a list of flow instructions, including source and destination, and
is list in order of priority. Flow switches can have multiple flow tables which can be in
the hardware or programmed in the software. Each rule within the table has a datapath. A
port manager exposes the actual hardware of the port to the software of OpenFlow. It also
provides control of the port by configuration of enable or disable, link state, spanning tree
and many others.
Currently SDN is effectively not production and has not seen any real use beyond
small networks the growth of cloud-based services and Big Data requires the
technologies used in the network. SDN does provide the ability to use APIs and quickly
resolve issues regarding bandwidth usage or routing paths in response to the cloud it still
requires resolution of many problems.
ACI is a solution presented by Cisco to resolve the same problems of the
changing network in relation to cloud computing that SDN is intended to resolve. Instead
of relying almost completely on the software involved Cisco has attempted to create
scalability by employing hardware in a spine-and-leaf design. The design incorporates
three parts: Cisco’s Application Infrastructure Controller (APIC), Nexus 9000 switch and
an enhanced version of Nexus Operating System (NX-OS).
The spine-and-leaf infrastructure follows the similar traditional design of Core,
Distribution and Access layer design. The spine is similar to the Core and has switches
with high-throughput and high amount of ports. The leaf switches are similar to the
access layer and provide uplink and connections to the servers and redundancy created by
every leaf switch connected to each spine switch. This design provides the scalability by
providing the option of adding hardware when new servers are deployed.
The APIC provides the single point of configuration and control just as the
controller in SDN. The controllers are distributed clusters and provide a point for
configuration at a unified point. The controllers, recommended minimum of three, and
are connected to leaf switches. Automation can be created by implementing policies
within the controllers.
David Baumgard
LTEC 4550
Final Term Paper
[Online Image] Retrieved from http://www.cisco.com/c/en/us/solutions/collateral/datacenter-virtualization/application-centric-infrastructure/white-paper-c11-731310.html Dec
1, 2015
ACI also utilizes APIs through representational state transfer (REST) interfaces.
Software development kits are available for Python and Ruby. This provides the interface
for the administrator to develop policies and implement the required configurations and
policies removing the need to configure each device.
ACI provide many similar functions of SDN such as changing traffic patterns,
more efficient use of resources, ability to deal with changing traffic patterns due to cloud
services as well as bandwidth uses related to Big Data.
Data Centers are facing the challenges presented by cloud computing and Big
Data and the industry will eventually have to implement protocols and standards to deal
with the traffic. SDN is a protocol stack that offers a possible solution but faces many
challenges in order to become a reliable choice. There are configurations that can be
difficult to implement and software can be difficult to troubleshoot and manage.
OpenFlow is currently the leading protocol and while a single point of configuration is
provided there is no automation built in. Flow control is also limited to a single
destination and the flow tables must be very specific which can be taxing on CPUs.
Currently SDN specific hardware and silicon such as Application Specific Integrated
Circuits are very limited.
Cisco has attempted to resolve these issues with ACI using APICs. The APICs
allow central configuration and policy implementation while also introducing clusters for
redundancy and continues to offer the use of APIs to avoid vender specific interfaces.
Cisco also introduces scalability by providing ACI specific hardware which also for
expansion through additional hardware.
David Baumgard
LTEC 4550
Final Term Paper
Cisco appears to be ahead in providing a solution but like always will be very
expensive. SDN could be the open source solution given that OPN is able to provide a
remedy through fixing current policy or creating a protocol that can provide the
requirements that administrators would need to successfully implement.
References
N.A. (n.d) software-defined networking (SDN) definition Retrieved from
http://searchsdn.techtarget.com/definition/software-defined-networking-SDN
N.A. (n.d.) Is Cisco Application Centric Infrastructure an SDN Technology? Retrieved
from http://www.cisco.com/c/en/us/solutions/collateral/data-centervirtualization/application-centric-infrastructure/white-paper-c11-733456.html
N.A. (n.d.) SDN Technology Retrieved http://www.bigswitch.com/company/sdntechnology
Johnson, S. (n.d.) How Cisco’s ‘Application Centric Infrastructure’ differs from SDN
Retrieved from http://searchsecurity.techtarget.com/feature/How-Ciscos-ApplicationCentric-Infrastructure-differs-from-SDN
Seetharaman, S. (Nov, 2011) OpenFlow/Software-defined Networking Retrieved from
http://www.slideshare.net/openflow/openflow-tutorial
Singh, S. (May 24, 2012) Software-defined networking:OpenStack, Openflow – It is all
about innovation
Lynch, B. (June 15, 2013) OpenFlow – Can It Scale? Retrieved from
https://www.sdxcentral.com/articles/contributed/openflow-sdn/2013/06/
Erickson, D. Hara, M. Heller, B. Lantz, B. Pettit, J. Pfaff, B. Talayco, D. (Sep 16, 2009) Version
0.4 based on OpenFlow 0.9.0 http://archive.openflow.org/wk/images/c/c2/Of-hw-api-draft-0.4.pdf
N.A. (Oct 1, 2013) Cisco Spine and Leaf Architecture Discussion
http://thenetworksurgeon.com/cisco-spine-and-leaf-architecture-discussion-nexus-5500-vs-6001/
Download