700 likes | 705 Views
15-744: Computer Networking. L-7 Software Forwarding. Software-Based Routers. Motivation Enabling innovation in networking research Software data planes Readings: OpenFlow: Enabling Innovation in Campus Networks The Click Modular Router Optional reading
E N D
15-744: Computer Networking L-7 Software Forwarding
Software-Based Routers • Motivation • Enabling innovation in networking research • Software data planes • Readings: • OpenFlow: Enabling Innovation in Campus Networks • The Click Modular Router • Optional reading • RouteBricks: Exploiting Parallelism To Scale Software Routers
Active Networking Recap • Network API exposes capabilities • Processing, queues, storage • Custom code/functions run on each packet • E.g., conventional IP is best effort, dst based • When could this be insufficient?
Two models of active networks • “Capsule” • Packet carries code! • Programmable router • Operator installs modules on router • Pros/cons?
Criticisms • Too far removed from conventional networks • Upgrade/deployability? • Capsule was considered insecure • No killer apps (continues to be problem) • Performance?
Three logical stages (more hindsight) • Active networking era • Case for “programmable” network devices • “Separation” of control vs data era • Specifically about routing etc • OpenFlow/Network OS era
Network Management Traffic Engineering Performance Security Compliance Resilience
Problem: Toolbox is bad! Traffic Engineering Performance Security Compliance Resilience
Why: Toolbox is implicit in routers! Traffic Engineering Performance Security Compliance Resilience Motivation: Management is complex, expensive, fragile Need: Direct control, expressive policy, network-wide views
Solution • Separate out the “data” and the “control” • Open interface between control/data planes • Logically centralized views • Simplifies optimization/policy management • Network-wide visibility
Today: OpenFlow Controller OpenFlow Config Config
Next Lecture: ONIX Controller E.g., ONIX, NOX, … Config Config
OpenFlow: Motivation • The Internet is a “success disaster” • Many successful applications • Critical for economy as a whole • Too huge a vested infrastructure • Vendors loathe to change anything • Fear in community: “ossification” • New ideas cannot get deployed
Driving questions • Get our own operators comfortable with running network experiments • Isolate experimental traffic from production traffic • What is the functionality that enables innovation?
Rejected alternatives • Get vendors to support • Use PC/Linux based network elements • Existing research prototypes for programmable elements
Their Path • “Pragmatic compromise” • Sacrifice generality for: • Performance • Cost • Vendor “buy-in”
Three Basic Features in OpenFlow Controller Secure Channel Open Protocol Config Config Flow Table
FlowTable Actions • Forward on specific port/interface • Forward to controller (encapsulated) • Drop • Forward legacy • Future support: counters, modifiers
What is nice • Fits well with the TCAM abstraction • Most vendors already have this • They can just expose this without exposing internals
Example Apps • Ethane • Amy’s own OSPF • VLAN • VoIP for Mobile • Support for non-IP
Driving questions: Did it achieve this? • Get operators comfortable with running experimental? • Isolate experimental traffic from production traffic? • What is the functionality that can enable innovation?
Software-Based Routers • Enabling innovation in networking research • Software data planes • Readings: • OpenFlow: Enabling Innovation in Campus Networks • The Click Modular Router • Optional reading • RouteBricks: Exploiting Parallelism To Scale Software Routers
Click overview • Modular architecture • Router = composition of modules • Router = data flow graph • An element is the basic unit of processing • Three key components of each element: • Ports • Configuration • Method interfaces
Two types of “connections” • Push • Source element has finished processing • Sends it downstream • E.g., FromDevice • Pull • Destination is ready to process • Initiates packet transfer • E.g., ToDevice
Other elements • Packet Classification • Scheduling • Queueing • Routing • What you write…
Idea: Polling • Under heavy load, disable the network card’s interrupts • Use polling instead • Ask if there is more work once you’ve done the first batch • Click paper we read – does pure polling
Takeaways • Click is a flexible modular router • Shows that s/w x86 can get pretty good performance • Extensible/modular • Widely used in academia/research • Play with it!
Software-Based Routers • Enabling innovation in networking research • Software data planes • Readings: • OpenFlow: Enabling Innovation in Campus Networks • The Click Modular Router • Optional reading • RouteBricks: Exploiting Parallelism To Scale Software Routers
Buildingrouters • Fast • Programmable • custom statistics • filtering • packet transformation • …
Why programmable routers • New ISP services • intrusion detection, application acceleration • Simpler network monitoring • measure link latency, track down traffic • New protocols • IP traceback, Trajectory Sampling, … Enable flexible, extensible networks
Today: fast or programmable • Fast “hardware” routers • throughput : Tbps • little programmability • Programmable “software” routers • processing by general-purpose CPUs • throughput < 10Gbps
RouteBricks • A router out of off-the-shelf PCs • familiar programming environment • large-volume manufacturing • Can we build a Tbps router out of PCs?
Router = • N: number of external router ports • R: external line rate R R packet processing + switching R R N R R R R
A hardware router • Processing at rate ~R per linecard R R N linecards linecards
A hardware router • Processing at rate ~R per linecard • Switching at rate N x R by switch fabric R R N switch fabric linecards linecards
RouteBricks • Processing at rate ~R per server • Switching at rate ~R per server R R commodity interconnect N servers servers
Outline • Interconnect • Server optimizations • Performance
Requirements • Internal link rates < R • Per-server processing rate: c x R • Per-server fanout: constant R R commodity interconnect N
A naive solution R R R N
A naive solution • N external links of capacity R • N2 internal links of capacity R R R R N
Valiant load balancing (VLB) R/N R R/N R N
Valiant load balancing (VLB) • N external links of capacity R • N2 internal links of capacity R R/N R/N R R N 2R/N
Valiant load balancing (VLB) • Per-server processing rate: 3R • W/ uniform traffic: 2R R/N R/N R R N
Per-server fanout? • Increase server capacity R N
Per-server fanout? • Increase server capacity R N