O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Navigating Network Complexity: Next-generation Routing with SDN, Service Virtualization, and Service Chaining

Book Description

Design your networks to successfully manage their growing complexity

Network professionals have often been told that today’s modern control planes would simplify their networks. The opposite has happened: Technologies like SDN and NFV, although immensely valuable, are exacerbating complexity instead of solving it. Navigating Network Complexity is the first comprehensive guide to managing this complexity in both deployment and day-to-day operations.

Russ White and Jeff Tantsura introduce modern complexity theory from the standpoint of the working network engineer, helping you apply it to the practical problems you face every day. Avoiding complex mathematical models, they show how to characterize network complexity, so you can understand it and control it.

The authors examine specific techniques and technologies associated with network control planes, including SDNs, fast reroute, segment routing, service chaining, and cloud computing. They reveal how each of these affects network design and complexity and help you anticipate causes of failure in highly complex systems.

Next, they turn to modern control planes, examining the fundamental operating principles of SDNs, such as OpenFlow and I2RS, network and other service function virtualization, content distribution networks, Layer 2 fabrics, and service chaining solutions. You’ll learn how each of these might both resolve and increase complexity in network design and operations and what you can do about it.

Coverage includes:

  • Defining complexity, understanding its components, and measuring it

  • Mastering a straightforward “state, speed, and surface” model for analyzing complexity

  • Controlling complexity in design, deployment, operations, protocols, and programmable networks

  • Understanding how complex network systems begin to fail and how to prevent failure

  • Recognizing complexity tradeoffs in service virtualization and service chaining

  • Managing new challenges of complexity in virtualized and cloud environments

  • Learning why constructs such as hierarchical design, aggregation, and protocol layering work and when they work best

  • Choosing the right models to contain complexity as your network changes

  • From start to finish, Navigating Network Complexity helps you assess the true impact of new network technologies, so they can capture more value with fewer problems.

    Table of Contents

    1. About This E-Book
    2. Title Page
    3. Copyright Page
    4. About the Authors
    5. About the Technical Reviewers
    6. Dedications
    7. Acknowledgments
    8. Contents at a Glance
    9. Contents
    10. Introduction
      1. How This Book Is Organized
    11. Chapter 1. Defining Complexity
      1. What Is Complexity?
        1. Anything I Don’t Understand
        2. Anything with a Lot of Parts
        3. Anything for Which There Is More State Than Required to Achieve a Goal
        4. Unintended Consequences
      2. Why So Much Complexity?
        1. Future Extensions versus New Protocols
        2. Unexpected Errors
      3. Why Not Build Infinitely Complex Systems?
        1. Quick, Cheap, and High Quality: Choose Two
        2. Consistency, Availability, and Partition Tolerance: Choose Two
      4. Journey into the Center of Complexity
    12. Chapter 2. Components of Complexity
      1. Network Convergence
        1. Path Vector: A BGP Example
        2. Distance Vector: An EIGRP Example
        3. Link State: OSPF and IS-IS Convergence
      2. State
        1. Amount of Information
        2. An Example of State Failure in the Real World
        3. Final Thoughts on State
      3. Speed
        1. The Network That Never Converges
        2. The Flapping Link
        3. Final Thoughts on Speed
      4. Surface
      5. The Hourglass Model
      6. Optimization
      7. A Final Thought
    13. Chapter 3. Measuring Network Complexity
      1. Some Measures of Network Complexity
        1. Network Complexity Index
        2. Modeling Design Complexity
        3. NetComplex
      2. Organized Complexity
      3. Is This a Waste of Time?
      4. A Final Thought
    14. Chapter 4. Operational Complexity
      1. Exploring the Problem Space
        1. The Cost of Human Interaction with the System
        2. Policy Dispersion Versus Optimal Traffic Handling
      2. Solving the Management Complexity Problem
        1. Automation as a Solution to Management Complexity
        2. Modularity as a Solution to Management Complexity
        3. Protocol Complexity versus Management Complexity
      3. A Final Thought
    15. Chapter 5. Design Complexity
      1. Control Plane State versus Stretch
        1. Aggregation versus Stretch
        2. Traffic Engineering
        3. State versus Stretch: Some Final Thoughts
      2. Topology versus Speed of Convergence
        1. Ring Topology Convergence
        2. Redundancy versus Resilience
        3. Topology versus Speed of Convergence: Some Final Thoughts
      3. Fast Convergence versus Complexity
        1. Improving Convergence with Intelligent Timers: Talk Faster
        2. Removing Timers from Convergence: Precompute
        3. Working around Topology: Tunneling to the Loop-Free Alternate
        4. Some Final Thoughts on Fast Convergence
      4. Virtualization versus Design Complexity
        1. Functional Separation
        2. Forwarding Plane Complexity
        3. Control Plane Complexity
        4. Shared Fate Risk Groups
      5. A Final Thought
    16. Chapter 6. Managing Design Complexity
      1. Modularity
        1. Uniformity
        2. Interchangeable Modules
        3. How Modularity Attacks the Complexity Problem
      2. Information Hiding
        1. Aggregation
        2. Failure Domains and Information Hiding
        3. Final Thoughts on Information Hiding
      3. Models
        1. Waterfall
        2. Places in the Network
        3. Hierarchical
        4. UML
      4. A Final Thought
    17. Chapter 7. Protocol Complexity
      1. Flexibility versus Complexity: OSPF versus IS-IS
      2. Layering versus Protocol Complexity
        1. The Seven-Layer Model
        2. The Four-Layer Model
        3. The Iterative Model
        4. Protocol Stacks and Design
      3. Protocol Complexity versus Design Complexity
        1. Microloops and Fast Reroute
        2. EIGRP and the Design Conundrum
      4. A Final Thought
    18. Chapter 8. How Complex Systems Fail
      1. Feedback Loops
        1. Positive Feedback Loops in Network Engineering
        2. Speed, State, and Surface: Stability in the Network Control Plane
      2. Shared Fate
        1. Virtual Circuits
        2. TCP Synchronization as a Shared Fate Problem
      3. A Final Thought
        1. Thoughts on Root Cause Analysis
        2. Engineering Skills and Failure Management
    19. Chapter 9. Programmable Networks
      1. Drivers and Definition
        1. Business Drivers
        2. The Ebb and Flow of Centralization
        3. Defining Network Programmability
      2. Use Cases for Programmable Networks
        1. Bandwidth Calendaring
        2. Software-Defined Perimeter
      3. Programmable Network Interfaces
      4. The Programmable Network Landscape
        1. OpenFlow
        2. YANG
        3. Path Computation Element Protocol
        4. Interface to the Routing System
      5. A Final Thought
    20. Chapter 10. Programmable Network Complexity
      1. The Subsidiarity Principle
      2. Policy Management
        1. Policy Dispersion
        2. Policy Consistency
        3. Policy Complexity
      3. Surface and the Programmable Network
      4. Impact on Failure Domains
        1. Wide Area Failure Domains
        2. Data Center Failure Domains
        3. Application to Control Plane Failure Domain
        4. Controller to Controller Failure Domain
        5. Final Thoughts on Failure Domains
      5. A Final Thought
    21. Chapter 11. Service Virtualization and Service Chaining
      1. Network Function Virtualization
        1. NFV: A Use Case
      2. Service Chaining
        1. Service Function Chaining
        2. Segment Routing
      3. A Final Thought
    22. Chapter 12. Virtualization and Complexity
      1. Policy Dispersion and Network Virtualization
        1. State and Service Chaining
        2. State and Optimization
        3. Surface and Policy Interaction
        4. Surface and Policy Proxies
      2. Other Design Considerations
        1. Coupling and Failure Domains
        2. Troubleshooting
      3. The Orchestration Effect
      4. Managing Complexity
      5. A Final Thought
    23. Chapter 13. Complexity and the Cloud
      1. Where Does the Complexity Live?
        1. Cloud Centric
        2. Vendor Centric
        3. Network Centric
        4. Is There a “Right Way?”
      2. Centralize What?
      3. Cloudy Complications
        1. Security
        2. Data Portability
      4. A Final Thought
    24. Chapter 14. A Simple Ending
      1. Defining Complexity
        1. Difficult to Understand
        2. Unintended Consequences
        3. Large Numbers of Interacting Parts
        4. What Makes Something “Too Complex”?
      2. Complexity Is a Tradeoff
      3. Modeling Complexity
      4. Managing Complexity in the Real World
        1. Don’t Ignore Complexity
        2. Find a Model to Contain the Complexity
      5. A Final Thought
    25. Index
    26. Code Snippets