9-Software Defined Networking Flashcards
What is network management
Process of configuring network to achieve a variety of tasks
Network configurations achieve a variety of tasks:
- Load Balance
- Security
- Business Relationships
Configuration mistakes can lead to
1) Oscillation - Routers cant agree on a route to a destination
2) Loops - Packets get stuck between two or more routers and never make it to the destination
3) Partitions - The network is split into two or more segments that are not connected.
4) “Black Holes” - Packets reach a router that does not know what to do with the packet and drops instead of sending to destination
Why is configuration hard?
SDN changes this
1) Defining Correctness is hard
2) Interactions between protocols -> unpredictability
3) Operators make mistakes
SDN provides operators 3 things
1) Network wide views
-topology and traffic
2) Network-level objectives
-load balance and security
3) Direct control
0>direct manipulation of data plane
Routers should
1) Forward packets
2) Collect measurements (statistics and topology info)
Routers should not
Compute routes
SDN
Removes routing from routers
What is SDN?
1) Logically centralized control
2) Network-wide control
Today: control and data planes run on routers
Data plane: Forward traffic
Control plane: compute routing tables
First in 2004 was the RCP (resource control protocol)
Worked on BGP only
2004: RCP
2005: 4D
2008: Openflow
History
Advantages of SDN
1) Coordination
2) Easy to evolve
3) Reasoning
All because of separate control plane
Control plane:
Software Program (i.e. Python, C…)
Logic that controls forwarding behavior
examples: routing protocols, configuration for network middleboxes
Data plane:
Programmable hardware (controlled by the control plane) Forward traffic according to control plane logic examples: forwarding, switching
SDN Application
Data Centers * Backbone Networks * Enterprise Networks * IXPs Home Networks
This course will focus on 1st 3 *
Examples of control plane operations?
1) Computing a forwarding path that satisfies a high level policy
2) Computing a shortest path routing tree
3) Authenticating a users device based on MAC Addresses
Why separate data and control plane?
1) independent evolution -> software & hardware can evolve independently
2) Control from high-level program -> allows operators to debug and check behavior easily
Why separate data and control plane?
1) Data centers: VM migration
2) Routing: More control over decision logic
3) Enterprise networks: Security
4) Research networks: Coexistense with production networks
Why separate data and control plane? Quiz
1) Independent evolution of data and control plane
2) Separating vendor hardware from control logic
3) Easier reasoning about network behavior
Data centers
SDN helps with VM migrations
How does control/data separation make managing data centers easier?
1) Monitoring/control of routers from a central point
2) Migrating VMs without renumbering hosts addresses
Why separate data and control plane?
Backbone security
Goal: filter the attack traffic
Challenges for SDN
1) Scalability: Hundreds to thousands of switches
2) Consistency: ensuring different replicas to see same view
3) Security/Robustness: Failure or compromise?