170 likes | 308 Views
Preliminaries: EE807 Software-defined Networked Computing. KyoungSoo Park Department of Electrical Engineering KAIST. routing algorithm. local forwarding table. header value. output link. 0100 0101 0111 1001. 3 2 2 1. value in arriving packet’s header. 1. 0111. 2. 3.
E N D
Preliminaries:EE807 Software-defined Networked Computing KyoungSoo Park Department of Electrical Engineering KAIST
routing algorithm local forwarding table header value output link 0100 0101 0111 1001 3 2 2 1 value in arriving packet’s header 1 0111 2 3 Interplay Between Routing, Forwarding
Intradomain Routing • Learning routes in an autonomous system (AS) • Also called “intraAS routing” • Two representative approaches • Distance vector (or Bellman-Ford) • Link state (or Dijkstra’s) • Time complexity • Per-node: O(nlogn) where n = # of nodes (routers)
Distance Vector Algorithm • Strategy: each node exchanges its DV with its neighbor whenever link cost changes • DV contains the estimated cost to every node • Dynamic programming • Min path cost (x, y) = min(link cost(x,v) + path cost(v,y)) for all neighbor v of x • Implementation • Routing Information Protocol (RIP) • EIGRP (Cisco-proprietary): solves limitations of RIP
Link State Algorithm • Strategy: flood the directly-connected link’s cost to every node • Send to all nodes, but the spread information is the local link cost • Link state packet (LSP) • Contains the link cost, id of the node, sequence number, TTL, etc. • Implementation • Open Shortest Path First (OSPF), Intermediate System-Intermediate System (IS-IS)
Interdomain Routing • Intradomain routing: process of finding the least-cost path to network prefix X (in the same AS) • Interdomain routing: process of finding AS-level path that reaches the destination prefix X (not in the same AS) • Routing: coarse-grain path (interdomain) + fine-grain path (intradomain)
Border Gateway Protocol (BGP) • The goal of interdomain routing • Find some loop-free path to the destination • Concerned with reachability than optimality • Concerned with the policies of ASs in the path • Finding path anywhere close to optimal is considered to be a great achievement • BGP advertises complete paths as an enumerated list of ASs to reach a particular network • Called a path-vector protocol • Example: 135.98/16: <AS3, AS7, AS10> • How do you detect a loop?
Router Functionality • Control plane: run routing protocols, run software on routing processor, circuit setup • Time scale: 10ms to second • Data plane: forwarding, buffering, filtering, scheduling, implemented in hardware • Time scale: nanoseconds • Management plane: administrator interface, analysis, configuration (traffic engineering) • Time scale: minutes to hours
Router Architecture Overview data plane control plane
Control/Data Separation decouple control and data planesby providing open standard API Borrowed from Jen Rexford’s slides
(Logically) Centralized Controller Controller Platform Borrowed from Jen Rexford’s slides
Protocols Applications Controller Application Controller Platform Borrowed from Jen Rexford’s slides
Software-defined Networking • Logically-centralized control plane • Why? fine-grained control of the traffic • No (traditional) routing protocols • Instead, there is a centralized controller • When a flow comes to a switch • The switch looks up forwarding table • If the entry is found, use it to forward packets • If not, it asks the controller to set up the route • OpenFlow is widely used to implement SDN • OpenFlow != SDN
Middlebox • In-network devices that manipulate packets for purposes other than packet forwarding • Inspecting, filtering, transforming packets • Examples • Network address translators (NATs), firewalls, network intrusion detection systems (NIDSes), (performance enhancement, Web, WAN-accelerating) proxies, etc. • Recent trend • # of deployed middleboxes >> # of deployed routers
Network Functions Virtualization • Motivation: difficult to manage many middlebox boxes • Each box runs different service • Configuration could be a nightmare • Conceptually, you have X units of Web proxy, Y units of NIDS, Z units of firewall • X, Y, Z are dynamically adjusting to the load • How to implement? • Virtualization: separate the service from physical infrastructure • Horizontal scaling (or scale out): add more nodes, install software, and turn them on • Vertical scaling (or scale up)?