Lecture 5 Soft Defined Network Overview¶
Traditional Computer Networks¶
Closed & Distributed¶
- APP
- Operating System
- specialized in Server, not just simple OS like Windows and Linux
- Specialized Packet Forwarding Hardware
- encapsulation(封装)
The Ossified(僵化的) Network¶
- Control Plane
- Routing / Management / Access Control / VPNs ...
- Plane between APP and OS
- Million of lines of source code (6000+ RFCs)
- Data Plane
- Packet forwarding
- Billion of gates (Bloated, 臃肿的)
The fact is that
- Many complex functions baked into the infrastructure
- An industry with a "mainframe-mentality", reluctant to change
Review¶
History:
Vertically Integrated / Closed / proprietary Slow innovation / Small industry
- Specialized APPs
- Specialized Operating System
- Specialized Hardware
Now:
Horizontal / Open Interfaces / Rapid Innovation / Huge Industry
- APP
- Open Interface
- Windows(OS) / Linux / Mac OS
- Open Interface
- Microprocessor
Future:
- APP
- Open Interface
- Control Plane-1 / Control Plane-2 / ...
- Open Interface
- Merchant Switching Chips
Software Defined Network¶
origin:
SDN:
Cogitation (设计思想)
- Open the black box: decouple the control plane and data plane
- Make the control plane centralized
- ( Form a centralized Network Operating System )
- Examples
- nox / pox
- floodlight
- onos
- open daylight
- Examples
- Standardize the Interface (eg: OpenFlow)
- Switch send its state-message to Network OS
- Network OS send its controlling message to Switch
- Examples
- CISCO
- HUAWEI
- Juniper Networks
- H3C
Benefits
- Distributed => Centralized
- eg:
OpenFlow¶
Overview¶
- APP
- Open Interface (Northbound)
- Network Operating System
- Open Interface (Southbound)
- Specialized Packet Forwarding Hardware
OpenFlow
- Offer the Protocol between Network OS and Switches
- Define the actions of Switches
OpenFlow¶
- Original Purpose: make it easy for experiments
- Not practical to experiment with new network protocol
- Not practical to persuade vendors (卖家) to provide an open, programmable platform on their switches and routers
- Most modern switches and routers contain flow-tables that run at line-rate to implement firewalls, QoS, etc.
- Example
- the administrator Alice applies the "Alice's code" on the Network OS (Controller)
- A client called Bob sends an message to a switch
- This switch receives the message and asks the controller what to do next via a TCP connection
- The request is answered by "Alice's code" in controller and the decision is made here
- The Network OS gives orders to those switches which are along the way
- Then the Bob's message sent along those switches above
The Role of OpenFlow in SDN¶
1) OpenFlow Rule = Match + Action 2) We use a 2-element tuple to present Rule as (Match, Action)
- Match
- Match on any header, or new header
- Allows any flow granularity(粒度)
- Only match on Header Part, not Data
- “通配”可以出现在任何位置,没有限制
- Action
- Forward to port(s), drop, send to controller
- Overwrite header with, mask, push or pop
- Forward at specific bit-rate (velocity controlling)
3) Hence, we offer a new concept "Flow Table"
OpenFlow Controller¶
the controller is just a software
- Receive the events from the switches
- Topology changes
- Traffic statistics
- Arriving packets
- Make decisions and calculations, and etc.
- Offer commands to switches
- (Un)install rules
- Query statistics
- Send packets
Reactive Control (响应式)
- a packet is sent to one switch
- if the rule is defined in this switch, use it ( check by hardware, O(1) );
- else, the switch send packet_in message to controller
- and then the Controller (Network OS) makes decision what's the packet's correct path
- the APPs execute packet_in event handler
- the Controller sends and installs rule to this switch for this forwarding packet
- the rule installed contains Match + Actions + Counters
- PS: if "Actions" is empty, it will discard the packet
Proactive Control (主动式)
- the program is running on APP/NOS
- Compile program install rules
- if "Action" is empty, it will discard the packet
- else, ......
SDN vs. OpenFlow¶
- SDN \(\neq\) OpenFlow
- SDN is a general network architecture, OpenFlow is a protocol or standard
- OpenFlow is an interface protocol for SDN
- spoken by the controllers and switches
- OpenFlow is more than just a protocol
- also including switch specification
- can be seen as the de factor standard implementation of SDN: SDN / OpenFlow
SDN Applications¶
Dynamic Access Control (动态访问控制)¶
- Inspect(检查) first packet of a connection (检查权限...)
- Consult(参考) the access control policy
- Install rules to block or route traffic
Seamless Mobility / Migration (无缝迁移)¶
- See host send traffic at new location
- Modify rules to reroute the traffic
Server Load Balancing (负载均衡)¶
- Pre-install load-balancing policy
- Split traffic based on source IP
Others¶
- Routing
- Dynamic access control
- Seamless mobility/migration
- Server load balancing
- Network virtualization
- Using multiple wireless access points • Energy-efficient networking
- Adaptive traffic monitoring
- Denial-of-Service attack detection