(rev. July 5, 2015)
Notes On Chapter 31
-- Software Defined Networking (SDN)
- 31.1 Introduction
- Presentation of an exciting new technology for network management
- Motivation, general approach, and underlying technology
- 31.2 Marketing Hype And Reality
- Many preposterous claims have been made regarding SDN.
- One must always consider pros and cons carefully.
- 31.3 Motivation For A New Approach
- 31.3.1 Generalization of Element Management
- Currently managers have to deal pretty much with one element at a time.
- There seems to be a need for higher-level control that works on sets of
elements.
- 31.3.2 Moving from Proprietary to Open Standards
- It should be possible to devise a management system that coordinates
all operations of multiple devices if all vendors agree to implement
an open management standard.
- Currently vendors commonly add proprietary extensions, even if
implementing SNMP.
- 31.3.3 Automation and Unification of Configuration
- Human error is a hazard to managers who are responsible to configure elements.
- One problem is that there may be slight differences in the ways that devices are
supposed to be configured, depending on the ways they are supposed to be used.
- An idea for automation is to specify a policy for configuration, which would be
implemented automatically.
- 31.3.4 Change to Cross-Layer Control
- Critics of existing network management paradigms argue that more effective
results could be obtained by coordinating the management of separate layers,
which are currently managed separately and independently.
- 31.3.5 Accommodating Data Center Visualization
- Often nowadays computers in networks consist of multiple virtualized hosts, each
running its own operating system, and requiring its own IP address, or set of IP
addresses. Such virtual hosts can migrate from one physical computer to another.
- The possibility of such migration occurring at very short time scales calls for
the ability to keep up with other functions related to network management,
such as routing changes.
- 31.4 Conceptual Organization Of A Network Element
- The control plane is the part of a network device that provides the
functionality for management of the device - usually implemented in software.
- The data plane is the part of a network system that processes packets -
usually implemented in hardware.
- Part of the job of the control plane is to load configuration information into the
data plane.
- 31.5 Control Plane Modules And The Hardware Interface
- It is common to have access to the control plane through a command line interface (CLI),
GUI accessed with a web browser, or an SNMP agent application.
- Vendors may make proprietary CLI commands available that allow management of multiple
devices of the type sold by that vendor.
- 31.6 A New Paradigm: Software Defined Networking
- In the paradigm of Software Defined Networking, most of the control plane functionality
is external to the devices, for instance in a Linux workstation called a controller.
- The external controller manipulates a low-level SDN module, which must be installed
in the device, and be configured to function suitably as an intermediary between
the external controller and interface to the data plane of the device.
- 31.7 Unanswered Questions
- What is the nature of the physical connection between an external controller and
the network element it controls?
- What protocol is used for communication between the controller and the network element?
- What kind of software does the controller run?
- Is a separate controller needed for each element?
- What is the additional cost of utilizing the SDN paradigm?
- 31.8 Shared Controllers And Network Connections
- One physical controller can handle multiple network elements.
Per-device loads on the controller are not usually high.
- Designers envision multiple sets of network elements called
SDN domains, with a physical controller assigned to each domain,
and the controllers communicating and coordinating with one another
to maintain overall compliance to management policy.
- 31.9 SDN Communication
- Given the design paradigm described above, protocols will be needed for
controller-to-element communication, and also for controller-to-controller
communication.
- The assumption is that SDN should use the production network and TCP/IP
protocol software stacks for all communication.
- Although there are ideas for mitigation, SDN is viewed as vulnerable to
failures that might occur on the production network.
- 31.10 OpenFlow: A Controller-To-Element Protocol
- OpenFlow is a protocol for controller-to-element communication that has
received wide acceptance.
- The OpenFlow communication paradigm is connection-oriented - typically
utilizing TCP.
- Where a secure connection is desired SSL is recommended.
- OpenFlow concentrates on a flow table model for packet forwarding, and
does not define a large MIB like SNMP
- OpenFlow specifies the format of all messages, and their meanings.
- 31.11 Classification Engines In Switches
- Using OpenFlow, controllers can change the classifications that are used as
patterns by Ethernet switches to regulate their packet forwarding decisions.
- 31.12 TCAM And High-Speed Classification
- High-speed classification using pattern-matching in switches
is performed through the use of content-addressable memory.
- 31.13 Classification Across Multiple Protocol Layers
- A single classification pattern can check items from multiple layers
of the protocol stack at the same time.
- Thus patterns installed by OpenFlow SDN controllers can cause sophisticated
flow changes, like identifying all web traffic and sending it out a certain port.
(Web traffic if, layer 2 frame type is IP, layer 3 IP protocol field is TCP,
and layer 4 TCP destination port is 80)
- 31.14 TCAM Size And The Need For Multiple Patterns
- TCAM hardware is expensive, consumes a lot of power, and generates a lot of heat.
- It will require matching on a large number of patterns to accomplish the kinds of
classifications designers have in mind.
- Thus the cost and power consumption associated with SDN is a potential problem.
- 31.15 Items OpenFlow Can Specify
- Figure 31.6 shows the header fields that OpenFlow can use in classification patterns.
- 31.16 Traditional And Extended IP Forwarding
- Because of its ability to match on numerous fields in packets,
SDN has the potential to perform 'new' kinds of routing - like
routing based on source, destination port number,
type of service, and so forth.
- 31.17 End-to-End Path With MPLS Using Layer 2
- Using SDN and OpenFlow technology, it is possible to configure layer 2 VLANs
and layer 2 paths that cross multiple switches and widely separated
geographic locations.
- There are fewer features in a layer 2 network upon which to launch a security
attack, so there are possible security advantages to using such networks.
- 31.18 Dynamic Rule Creation and Control Of Flows
- Network switches can be programmed with rules that cause them to send 'oddball'
packets to their controller.
- Then the controller can decide how the packet should be routed, send rules to
the switch that implement the routing rule, and finally send the packet
back to the switch to be sent on, by use of the newly installed rule.
- Load balancing could be implemented with the paradigm described above, if
the first packet in a new TCP connection is passed to the controller.
- 31.19 A Pipeline Model For Flow Tables
- Later versions of OpenFlow can control a software-based classification mechanism.
- This allows the possibility of a series of classification mechanisms called flow tables.
- This allows for more complex packet processing.
- 31.20 SDN's Potential Effect On Network Vendors
- Adoption of SDN would mean vendors would have to stop selling the current devices
with proprietary management software.
- There may be other opportunities for profits - e.g. building and selling vendor-independent
network management software.
- 31.21 Summary