Contents
Foreword
Preface
Chapter 1: Introduction
1.1. Basic Packet Switching Terminology
1.2. Historical Background
1.3. The Modern Data Center
1.4. Traditional Switch Architecture
1.4.1. Data, Control, and Management Planes
1.4.2. Software-Based Routing and Bridging
1.4.3. Hardware Look-Up of Forwarding Tables
1.4.4. Generically Programmable Forwarding Rules
1.5. Autonomous and Dynamic Forwarding Tables
1.5.1. Layer Two Control
1.5.2. Layer Three Control
1.5.3. Protocol Soup or (S)witch's Brew?
1.6. Can We Increase the Packet Forwarding IQ?
1.7. Open Source and Technological Shifts
1.8. Organization of the Book
References
Chapter 2: Why SDN?
2.1. Evolution of Switches and Control Planes
2.1.1. Simple Forwarding and Routing Using Software
2.1.2. Independence and Autonomy in Early Devices
2.1.3. Software Moves Into Silicon
2.1.4. Hardware Forwarding and Control in Software
2.1.5. The Growing Need for Simplification
2.1.6. Moving Control Off of the Device
2.2. Cost
2.2.1. Increased Cost of Development
2.2.2. Closed Environments Encourage Vendor Lock-in
2.2.3. Complexity and Resistance to Change
2.2.4. Increased Cost of Operating the Network
2.3. SDN Implications for Research and Innovation
2.3.1. Status Quo Benefits Incumbent Vendors
2.3.2. SDN Promotes Research and Innovation
2.4. Data Center Innovation
2.4.1. Compute and Storage Virtualization
2.4.2. Inadequacies in Networks Today
2.5. Data Center Needs
2.5.1. Automation
2.5.2. Scalability
2.5.3. Multipathing
2.5.4. Multitenancy
2.5.5. Network Virtualization
2.6. Conclusion
References
Chapter 3: Genesis of SDN
3.1. The Evolution of Networking Technology
3.1.1. Mainframe Networking: Remote Terminals
3.1.2. Peer-to-Peer Point-to-Point Connections
3.1.3. Local Area Networks
3.1.4. Bridged Networks
3.1.5. Routed Networks
3.2. Forerunners of SDN
3.2.1. Early Efforts
3.2.2. Network Access Control
3.2.3. Orchestration
3.2.4. Virtualization Manager Network Plug-ins
3.2.5. ForCES: Separation of Forwarding and Control Planes
3.2.6. 4D: Centralized Network Control
3.2.7. Ethane: Controller-Based Network Policy
3.3. Legacy Mechanisms Evolve Toward SDN
3.4. Software Defined Networking Is Born
3.4.1. The Birth of OpenFlow
3.4.2. Open Networking Foundation
3.5. Sustaining SDN Interoperability
3.6. Open Source Contributions
3.6.1. The Power of the Collective
3.6.2. The Danger of the Collective
3.6.3. Open Source Contributions to SDN
3.7. Network Virtualization
3.8. May I Please Call My Network SDN?
3.9. Conclusion
References
Chapter 4: How SDN Works
4.1. Fundamental Characteristics of SDN
4.1.1. Plane Separation
4.1.2. Simple Device and Centralized Control
4.1.3. Network Automation and Virtualization
4.1.4. Openness
4.2. SDN Operation
4.3. SDN Devices
4.3.1. Flow Tables
4.3.2. SDN Software Switches
4.3.3. Hardware SDN Devices
4.3.4. Existing SDN Device Implementations
4.3.5. Scaling the Number of Flows
4.4. SDN Controller
4.4.1. SDN Controller Core Modules
4.4.2. SDN Controller Interfaces
4.4.3. Existing SDN Controller Implementations
4.4.4. Potential Issues With the SDN Controller
4.5. SDN Applications
4.5.1. SDN Application Responsibilities
4.6. Alternate SDN Methods
4.6.1. SDN via APIs
4.6.2. Benefits and Limitations of SDN via APIs
4.6.3. SDN via Hypervisor-Based Overlay Networks
4.7. Conclusion
References
Chapter 5: The OpenFlow Specification
5.1. Chapter-Specific Terminology
5.2. OpenFlow Overview
5.2.1. The OpenFlow Switch
5.2.2. The OpenFlow Controller
5.2.3. The OpenFlow Protocol
5.2.4. The Controller-Switch Secure Channel
5.3. OpenFlow 1.0 and OpenFlow Basics
5.3.1. Ports and Port Queues
5.3.2. Flow Table
5.3.3. Packet Matching
5.3.4. Actions and Packet Forwarding
5.3.5. Messaging Between Controller and Switch
5.3.6. Example: Controller Programming Flow Table
5.3.7. Example: Basic Packet Forwarding
5.3.8. Example: Switch Forwarding Packet to Controller
5.4. OpenFlow 1.1 Additions
5.1. Multiple Flow Tables
5.4.2. Groups
5.4.3. MPLS and VLAN Tag Support
5.4.4. Virtual Ports
5.4.5. Controller Connection Failure
5.4.6. Example: Forwarding With Multiple Flow Tables
5.4.7. Example: Multicast Using V.1.1 Groups
5.5. OpenFlow 1.2 Additions
5.5.1. Extensible Match Support
5.5.2. Extensible SET_FIELD Packet Rewriting Support
5.5.3. Extensible Context Expression in PACKET_IN
5.5.4. Multiple Controllers
5.5.5. Example: Bridging VLANs Through SP Networks
5.6. OpenFlow 1.3 Additions
5.6.1. Refactor Capabilities Negotiation
5.6.2. More Flexible Table-Miss Support
5.6.3. Per Flow Meters
5.6.4. Per Connection Event Filtering
5.6.5. Auxiliary Connections
5.6.6. Cookies in Packet-in
5.6.7. Provider Backbone Bridging Tagging
5.6.8. Example: Enforcing QoS via Meter Bands
5.7. OpenFlow 1.4 Additions
5.7.1. Bundles
5.7.2. Eviction and Vacancy Events
5.7.3. Enhanced Support for Multiple Controllers
5.7.4. Optical Port Support
5.7.5. Flow Table Synchronization
5.8. OpenFlow 1.5 Additions
5.8.1. Enhanced L4–L7 Support
5.8.2. Pipeline Processing Enhancements
5.8.3. Egress Tables
5.8.4. Fitness for Carrier Use
5.8.5. Bundle Enhancements
5.8.6. Enhanced Support for Multiple Controllers
5.8.7. Enhanced Support for Tunnels
5.8.8. Enhancements to Flow Entry Statistics
5.8.9. Summary
5.9. mproving OpenFlow Interoperability
5.9.1. Table Type Patterns
5.9.2. Flow Objectives
5.10. Optical Transport Protocol Extensions
5.10.1. Match/Action Support
5.10.2. Optical Port Attribute Support
5.10.3. Adjacency Discovery
5.10.4. Future Work Needed
5.11. OpenFlow Limitations
5.12. Conclusion
References
Chapter 6: Alternative Definitions of SDN
6.1. Potential Drawbacks of Open SDN
6.1.1. Too Much Change, Too Quickly
6.1.2. Single Point of Failure
High availability controller with hardened links
6.1.3. Performance and Scale
6.1.4. Deep Packet Inspection
Limitations on matching resulting from security mechanisms
6.1.5. Stateful Flow Awareness
6.1.6. Summary
6.2. SDN via APIs
6.2.1. Legacy APIs in Network Devices
6.2.2. NETCONF/YANG
6.2.3. BGP-LS/PCE-P
6.2.4. REST
6.2.5. Examples of SDN via APIs
Cisco
OpenDaylight
Juniper
Arista
6.2.6. Ranking SDN via APIs
6.3. SDN via Hypervisor-Based Overlays
6.3.1. Overlay Controller
6.3.2. Overlay Operation
6.3.3. Examples of SDN via Hypervisor-Based Overlays
6.3.4. Ranking SDN via Hypervisor-Based Overlays
6.4. SDN via Opening Up the Device
6.5. Network Functions Virtualization
6.6. Alternatives Overlap and Ranking
6.7. Conclusion
References
Chapter 7: Emerging Protocol, Controller & Application Models
7.1. Expanded Definitions of SDN
7.1.1. Impact of Major NEMs in the SDN Arena
7.1.2. Network Management Versus SDN
7.1.3. Benefits of Network Management-Based SDN
7.1.4. Limitations of Network Management-Based SDN
7.2. Additional SDN Protocol Models
7.2.1. Using Existing Protocols to Create SDN Solutions
7.2.2. Using the NETCONF Protocol for SDN
NETCONF and YANG
NETCONF and RESTCONF
7.2.3. Using the BGP Protocol for SDN
7.2.4. Using the BGP-LS Protocol for SDN
7.2.5. Using the PCE-P Protocol for SDN
7.2.6. Using the MPLS Protocol for SDN
7.3. Additional SDN Controller Models
7.3.1. Controllers With Multiple Southbound Plugins
7.3.2. Controllers With Model-Driven Internal Design
7.3.3. Controllers Targeting Service Provider Solutions
ODL and service providers
ONOS and service providers
7.3.4. Controllers Built for Scalability
ODL and scalability, performance, and high-availability
ONOS and scalability, performance, and high-availability
7.3.5. Controllers Built for Intents-Based Applications
7.4. Additional Application Models
7.4.1. Proactive Application Focus
7.4.2. Declarative Application Focus
7.4.3. External Application Focus
7.5. New Approaches to SDN Security
7.5.1. Security Aspects of Reactive Applications
7.5.2. Security for Network Management Applications
7.5.3. Security Benefits of External Applications
7.6. The P4 Programming Language
7.7. Conclusion
References
Chapter 8: SDN in the Data Center
8.1. Data Center Definition
8.2.1 Data Center Demands
8.2.1. Overcoming Current Network Limitations
MAC address explosion
Number of VLANs
Spanning tree
8.2.2. Adding, Moving, and Deleting Resources
8.2.3. Failure Recovery
8.2.4. Multitenancy
8.2.5. Traffic Engineering and Path Efficiency
8.3. Tunneling Technologies for the Data Center
8.3.1. Virtual eXtensible Local Area Network
8.3.2. Network Virtualization Using GRE
8.3.3. Stateless Transport Tunneling
8.4. Path Technologies in the Data Center
8.4.1. General Multipath Routing Issues
8.4.2. Multiple Spanning Tree Protocol
8.4.3. Shortest Path Bridging
8.4.4. Equal-Cost Multipath
8.4.5. SDN and Shortest-Path Complexity
8.5. Ethernet Fabrics in the Data Center
8.6. SDN Use Cases in the Data Center
8.6.1. Overcoming Current Network Limitations
SDN via Overlays
Open SDN
SDN via APIs
8.6.2. Adding, Moving, and Changing Resources
SDN via Overlays
Open SDN
SDN via APIs
8.6.3. Failure Recovery
SDN via Overlays
Open SDN
SDN via APIs
8.6.4. Multitenancy
SDN via Overlays
Open SDN
SDN via APIs
8.6.5. Traffic Engineering and Path Efficiency
SDN via Overlays
Open SDN
SDN via APIs
8.7. Comparison of Open SDN, Overlays, and APIs
SDN via Overlays
Open SDN
SDN via APIs
8.8. Real-World Data Center Implementations
8.9. Conclusion
References
Chapter 9: SDN in Other Environments
9.1. Wide Area Networks
9.1.1. SDN Applied to the WAN
9.1.2. Example: MPLS LSPs in the Google WAN
9.2. Service Provider and Carrier Networks
9.2.1. SDN Applied to SP and Carrier Networks
9.2.2. Example: MPLS-TE and MPLS VPNs
9.2.3. Example: Cloud Bursting With Service Providers
9.3. Campus Networks
9.3.1. SDN on Campus: Application of Policy
9.3.2. SDN on Campus: Device and User Security
9.3.3. SDN on Campus: Traffic Suppression
9.4. Hospitality Networks
9.5. Mobile Networks
9.5.1. SDN Applied to Mobile Networks
9.6. Optical Networks
9.6.1. SDN Applied to Optical Networks
9.6.2. Example: Fujitsu's Use of SDN in Optical Networks
9.7. SDN vs P2P/Overlay Networks
9.8. Conclusion
References
Chapter 10: Network Functions Virtualization
10.1. Definition of NFV
10.2. What Can We Virtualize?
10.3. Standards
10.4. OPNFV
10.5. Leading NFV Vendors
10.6. SDN vs NFV
10.6.1. When Should NFV Be Used With SDN?
10.7. In-Line Network Functions
10.7.1. SDN Applied to Server Load-balancing
10.7.2. SDN Applied to Firewalls
10.7.3. SDN Applied to Intrusion Detection
10.8. Conclusion
References
Chapter 11: Players in the SDN Ecosystem
11.1. Academic Research Institutions
11.1.1. Key Contributors to SDN From Academia
11.2. Industry Research Labs
11.3. Network Equipment Manufacturers
11.4. Software Vendors
11.5. White-Box Switches
11.6. Merchant Silicon Vendors
11.7. Original Device Manufacturers
11.8. Cloud Services and Service Providers
11.9. Standards Bodies and Industry Alliances
11.9.1. Open Networking Foundation
11.9.2. OpenDaylight
11.9.3. ONOS
11.9.4. OpenStack
11.9.5. OpenSwitch
11.9.6. The Open Source SDN Community
11.9.7. IETF
11.10. Conclusion
References
Chapter 12: SDN Applications
12.1. Terminology
12.2. Before You Begin
12.3. Application Types
12.3.1. Reactive vs Proactive Applications
12.3.2. Internal vs External Applications
12.3.3. Details: Reactive SDN Applications
12.3.4. Details: Proactive SDN Applications
12.3.5. Details: Internal SDN Applications
12.3.6. Details: External SDN Applications
12.4. A Brief History of SDN Controllers
12.5. Using Floodlight for Training Purposes
12.6. A Simple Reactive Java Application
12.6.1. Blacklisting Hostnames
12.6.2. Blacklisting IP Addresses
12.6.3. Blacklist: Listeners
12.6.4. Blacklist: Packet Handlers
12.6.5. Blacklist: Flow Management
12.7. Controller Considerations
12.7.1. OpenDaylight
12.8. ONOS
12.8. Network Device Considerations
12.8.1. OpenFlow Device Considerations
12.8.2. Non-OpenFlow Device Considerations
NETCONF
BGP-LS/PCE-P
12.9. Creating Network Virtualization Tunnels
12.10. Offloading Flows in the Data Center
12.11. Access Control for the Campus
12.12. Traffic Engineering for Service Providers
12.13. Conclusion
References
Chapter 13: SDN Open Source
13.1. SDN Open Source Landscape
13.2. The OpenFlow Open Source Environment
13.3. Chapter-Specific Terminology
13.4. Open Source Licensing Issues
13.5. Profiles of SDN Open Source Users
13.6. OpenFlow Source Code
13.7. Switch Implementations
13.8. Controller Implementations
13.8. Historical Background
13.8.2. OpenDaylight
13.8.3. ONOS
13.9. SDN Applications
13.9.1. Open Source SDN Community Projects
13.10. Orchestration and Network Virtualization
13.11. Simulation, Testing, and Tools
13.12. Open Source Cloud Software
13.12.1. OpenStack
13.12.2. CloudStack
13.13. Example: Applying SDN Open Source
13.14. Conclusion
References
Chapter 14: Business Ramifications
14.1. Everything as a Service
14.2. Market Sizing
14.3. Classifying SDN Vendors
14.3.1. Server Virtualization Incumbents and SDN
14.3.2. Value-Added Resellers
14.4. Impact on Incumbent NEMs
14.4.1. Protect Market Share
14.4.2. Innovate a Little
14.5. Impact on Enterprise Consumers
14.5.1. Reduced Equipment Costs
14.5.2. Avoiding Chaos
14.6. Turmoil in the Networking Industry
14.6.1. Fewer and Fewer Large NEMs
14.6.2. Migration to Cloud Computing
14.6.3. Channel Dynamics
14.7. Venture Capital
14.8. Major SDN Acquisitions
14.8.1. VMware
14.8.2. Juniper
14.8.3. Brocade
14.8.4. Cisco
14.8.5. Hewlett-Packard
14.8.6. Ciena
14.8.7. Cradlepoint
14.9. SDN Startups
14.9.1. OpenFlow Stalwarts
14.9.2. Non-OpenFlow White-Box Ventures
14.9.3. An OpenFlow ASIC?
14.9.4. Data Center Network Virtualization
14.9.5. WAN Network Virtualization: SD-WAN
14.9.6. Network Functions Virtualization
14.9.7. Optical Switching
14.9.8. Mobility and SDN at the Network Edge
14.10. Career Disruptions
14.11. Conclusion
References
Chapter 15: SDN Futures
15.1. Current State of Affairs
15.2. SD-WAN
The devil is in the details
15.3. Potential Novel Applications of Open SDN
15.3.1. Managing Nontraditional Physical Layer Links
15.3.2. Applying Programming Techniques to Networks
Network debugger
No bugs in controller execution
Veriflow
Proof-based verification of SDNs
Yet another network controller
Software defined networks as databases
15.3.3. Security Applications
Hiding IP addresses
Flowguard
Segregating IPSec traffic in mobile networks
15.3.4. Roaming in Mobile Networks
Mobile traffic offload
Media-independent handovers
Infrastructure-controlled roaming in 802.11 networks
BeHop: SDN for dense WiFi networks
15.3.5. Traffic Engineering in Mobile Networks
Dynamic assignment of flows to fluctuating backhaul links
Sharing wireless backhaul across multiple operators
SoftMoW
An OpenFlow switch on every smartphone!
15.3.6. Energy Savings
ElasticTree
Dynamic adjustment of wireless transmit power levels
More energy efficient switching hardware
15.3.7. SDN-Enabled Switching Chips
Conclusion
References
Acronyms & Abbreviations
Blacklist Application
B.1. MessageListener
B.2. PacketHandler
B.3. FlowManager
Index