Insights Into RouterVM’s Flexibility and Performance Mel Tsai

Slides:



Advertisements
Similar presentations
IP Router Architectures. Outline Basic IP Router Functionalities IP Router Architectures.
Advertisements

CSC458 Programming Assignment II: NAT Nov 7, 2014.
Transitioning to IPv6 April 15,2005 Presented By: Richard Moore PBS Enterprise Technology.
OpenFlow overview Joint Techs Baton Rouge. Classic Ethernet Originally a true broadcast medium Each end-system network interface card (NIC) received every.
© 2009 Cisco Systems, Inc. All rights reserved. SWITCH v1.0—4-1 Implementing Inter-VLAN Routing Deploying Multilayer Switching with Cisco Express Forwarding.
Building Your Own Firewall Chapter 10. Learning Objectives List and define the two categories of firewalls Explain why desktop firewalls are used Explain.
The RouterVM Architecture: Motivation and Principles Mel Tsai
Router Architecture : Building high-performance routers Ian Pratt
1 Router Construction II Outline Network Processors Adding Extensions Scheduling Cycles.
The RouterVM Architecture: Motivation and Principles Mel Tsai
This work is supported by the National Science Foundation under Grant Number DUE Any opinions, findings and conclusions or recommendations expressed.
An Active Networking Testbed for Storage Presenter Mel Tsai People Mel Tsai Anshi Liang Paul Huang Perry Dong and Tal Lavian.
1 A High-Level Framework for Network Application Design Mel Tsai 12/5/2002 EE249 Final Project Presentation.
RouterVM A High-Level Programming Model and Virtual Machine Architecture for Next-Generation Programmable Routers Mel Tsai
The RouterVM Architecture: Motivation and Principles Mel Tsai
CS335 Networking & Network Administration Tuesday, April 20, 2010.
A Programming Model and VM Architecture for Next-Generation Programmable Routers Mel Tsai
ECE 526 – Network Processing Systems Design
Router Construction II Outline Network Processors Adding Extensions Scheduling Cycles.
Networking Components
Bandwidth Throttling. Reason for Implementing Bandwidth Throttling Limited Available Bandwidth If left unattended, patron internet traffic can place a.
Network Devices BY JACKSON HARDESTY. Hubs  Hubs are a now outdated way of sending signals at layer 2 compared to switches.  Hubs are used primarily.
Jennifer Rexford Princeton University MW 11:00am-12:20pm Programmable Data Planes COS 597E: Software Defined Networking.
Networking Components Mike Yardley LTEC 4550 Assignment 3
CECS 5460 – Assignment 3 Stacey VanderHeiden Güney.
ECE 526 – Network Processing Systems Design Network Processor Architecture and Scalability Chapter 13,14: D. E. Comer.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Software-Defined Networks Jennifer Rexford Princeton University.
1 Liquid Software Larry Peterson Princeton University John Hartman University of Arizona
Module 4: Configuring ISA Server as a Firewall. Overview Using ISA Server as a Firewall Examining Perimeter Networks and Templates Configuring System.
Router Architecture Overview
To be smart or not to be? Siva Subramanian Polaris R&D Lab, RTP Tal Lavian OPENET Lab, Santa Clara.
Web Cache Redirection using a Layer-4 switch: Architecture, issues, tradeoffs, and trends Shirish Sathaye Vice-President of Engineering.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco PublicITE I Chapter 6 1 Filtering Traffic Using Access Control Lists Introducing Routing and Switching.
CCNA 2 Week 9 Router Troubleshooting. Copyright © 2005 University of Bolton Topics Routing Table Overview Network Testing Troubleshooting Router Issues.
Chapter 7 Backbone Network. Announcements and Outline Announcements Outline Backbone Network Components  Switches, Routers, Gateways Backbone Network.
NETWORK HARDWARE CABLES NETWORK INTERFACE CARD (NIC)
Switch Features Most enterprise-capable switches have a number of features that make the switch attractive for large organizations. The following is a.
5 Firewalls in VoIP Selected Topics in Information Security – Bazara Barry.
Cisco S3C3 Virtual LANS. Why VLANs? You can define groupings of workstations even if separated by switches and on different LAN segments –They are one.
Department of Computer Science and Engineering Applied Research Laboratory Architecture for a Hardware Based, TCP/IP Content Scanning System David V. Schuehler.
Security fundamentals Topic 10 Securing the network perimeter.
High-Speed Policy-Based Packet Forwarding Using Efficient Multi-dimensional Range Matching Lakshman and Stiliadis ACM SIGCOMM 98.
Network Components By Kagan Strayer. Network Components This presentation will cover various network components and their functions. The components that.
Networking Components WILLIAM NELSON LTEC HUB  Device that operated on Layer 1 of the OSI stack.  All I/O flows out all other ports besides the.
Network Equipment Assignment 3 LTEC 4550 Aaron Whitaker.
ECE 526 – Network Processing Systems Design Network Address Translator.
ECE 526 – Network Processing Systems Design Network Address Translator II.
Coping with Link Failures in Centralized Control Plane Architecture Maulik Desai, Thyagarajan Nandagopal.
PART1: NETWORK COMPONENTS AND TRANSMISSION MEDIUM Wired and Wireless network management 1.
System Optimization Networking
Network Processing Systems Design
Quality and Value for the Exam 100% Guarantee to Pass Your Exam Based on Real Exams Scenarios Verified Answers Researched by Industry.
Security fundamentals
P4: Programming Protocol-Independent Packet Processors
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
CompTIA Security+ Study Guide (SY0-401)
CSC458 Programming Assignment II: NAT
Original slides prepared by Theo Benson
Layered Architectures
06- Transport Layer Transport Layer.
Introduction to Networking
CompTIA Security+ Study Guide (SY0-401)
OASIS Deployment: VideoCollective
Software Defined Networking (SDN)
Software Defined Networking
The performance requirements for DSP applications continue to grow and the traditional solutions do not adequately address this new challenge Paradigm.
Computer Networking A Top-Down Approach Featuring the Internet
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

Insights Into RouterVM’s Flexibility and Performance Mel Tsai

2 Outline Network Appliance Convergence Brief Overview of RouterVM & GPFs GPF Flexibility GPF Performance Demo

3 New Requirements in the Enterprise ISP Edge Router Firewall / VPN Server Load Balancer IP Storage Gateway Intrusion Detection Content Cache Link Compressor Switch Server Blades SAN Client Workstations 200 Mbps 2.5 Gbps 1 Gbps 40 Mbps Offsite Gbps Gbps

4 Network Appliance Convergence Recent strong trend towards cascading multiple functions into one appliance Netscalar, F5, Redline, Tasman, Inkra The hardware is coming… We are slowing reaching the point where we can do almost anything to packet flows at line rate But how do you manage multiple devices/functions in your network? What about configurability and ease-of-deployment? Can end-users or administrators program the device? What about the user interface?

5 RouterVM Overview RouterVM turns the concept of a “packet filter” into a high-level, programmable building-block for network appliance applications FILTER 19 SETUP NAME - SIP - SMASK - DIP - DMASK - PROTO - SRC PORT - DST PORT - VLAN - ACTION - example any tcp,udp any 80 default drop Classification Parameters Action Traditional Filter RouterVM Generalized Packet Filter (type L7)

6 RouterVM HTTP Switch Example

7 Trade-offs for GPF Flexibility (cont ) # of classification fields more fewer # of actions more fewer # of programmatic elements more fewer # of packet tagging options more fewer classification depth deeper shallower # of control flow options more fewer Extent and variety of per-flow state more fewer Greater flexibility, more difficult to use …and generally higher performance? Less flexibility, easier to use …and generally lower performance?

8 Trade-offs for GPF Flexibility (cont ) # of classification fields more fewer # of actions more fewer # of programmatic elements more fewer # of packet tagging options more fewer classification depth deeper shallower # of control flow options more fewer Extent and variety of per-flow state more fewer Greater flexibility, more difficult to use …and higher performance? Less flexibility, easier to use …and lower performance? Where is the sweet spot? Depends on the application and usage scenario!

9 Trade-offs for GPF Flexibility # of classification fields more fewer # of actions more fewer # of programmatic elements more fewer # of packet tagging options more fewer classification depth deeper shallower # of control flow options more fewer Extent and variety of per-flow state more fewer Greater flexibility, (somewhat) more difficult to use …and higher performance? Less flexibility, easier to use …and lower performance? In addition, a complexity-hiding intelligent interface and the use of smart defaults can shift the sweet spot towards greater flexibility, without decreasing ease of use.

10 How many GPF types are enough? Not a simple question, since the number of applications and usage scenarios supported by a library of GPFs is not equal to the number of available GPFs By virtue of a common set of available actions, any GPF can support the following features: Programmatic decision making (“if dest_ip == then drop;”) Server load balancing (“loadbalance table SLB_Table;”) Packet field rewriting (“rewrite dest_ip ;”) Packet duplication (“copy;”) QoS (“ratelimit 1 Mbps;”) Packet logging (“log intrusion_log.txt;”) Network address translation (“nat dir=forward, table=NAT_table;”) Server health monitoring (“if is alive”); …and others In practice, actions serve to multiply the base-level functionality of a given GPF to a much higher level than suggested by its name “A server load-balancing, bandwidth throttling, health monitoring, and statistics-gathering ‘L7 filter’”

11 Planned/Implemented GPF Library for RouterVM.NET Basic Filter Simple L2-L4 header classifications Any RouterVM actions L7 Filter Adds regular expressions & ADU reconstruction NAT Filter Adds a few more capabilities beyond the simple NAT action that is available to all GPFs Content Caching Builds on the L7 filter functionality WAN Link Compression Relatively simple to specify, but requires lots of computation IP-to-FC Gateway Requires its own table format & processing XML Preprocessing Not very well documented, and difficulty is unknown…

12 GPF Flexibility by OSI Layer …As expected, GPF flexibility at the application layers starts to depend heavily on the breadth of the GPF library and the availability of GPFs for specific applications

13 GPF Performance: Basic Filters Performance of filters has been measured on RouterVM for.NET using Win32 performance counters Accurate to roughly 0.5 microseconds Measured on an Athlon XP 2000 system, Win2k A basic filter with simple actions (no payload processing) requires roughly 3000 CPU cycles to perform its processing This is mostly independent of packet size Results in ~284 Mbps for 64-byte packets, 6.7 Gbps for 1500-byte packets (theoretically of course) If the average packet size is ~240 bytes, a packet stream can traverse 10 basic filters and still maintain 100 Mbps …Keep in mind, this is with no optimization (yet)!

14 GPF Performance: Complex Filters What about complex L7 filters that search packet payloads with regular expressions? Benchmark setup… Let’s hand-craft a packet stream of 256-byte packets: L2-L4 Headers“Retreat” 25 bytes of char ‘X’ “Retreat”25 bytes of char ‘X’“Retreat” Padding with ‘X’ Create three different L7 filters, which search for three different patterns: ^Retreat ^Retreat.*Retreat ^Retreat.*Retreat.*Retreat Although this is instructive, the setup is a little artificial We’re searching every bit of every packet payload, whereas a real L7 filter would stop when it identifies a flow matching the expression

15 GPF Performance: Complex Filters L2-L4 Headers“Retreat” 25 bytes of char ‘X’ “Retreat”25 bytes of char ‘X’“Retreat” Padding with ‘X’

16 GPF Performance: Complex Filters L2-L4 Headers“Retreat” 25 bytes of char ‘X’ “Retreat”25 bytes of char ‘X’“Retreat” Padding with ‘X’ Lesson: try to use start-of-buffer indicators ^ and avoid *’s… Many apps can be identified with simple start-of- buffer expressions.NET Regex also involves payload copying, which might be avoidable

17 Thread Optimization The choice of thread boundaries, thread scheduling, and packet FIFO implementations has a tremendous impact on overall performance My current choice of four threads per module/port is too many… Too difficult to optimally schedule the CPU, and overall performance is at least 10X slower than should be possible Also, threads waste a lot of time waiting for locks on the packet FIFOs, which also can be avoided by reducing the # of threads

18 Performance Conclusions RouterVM for.NET is just one possible implementation of RouterVM, and is only a demonstration of functionality, not performance Many other performance aspects haven’t been mentioned, such as maintaining shared tables and per-flow state. …Left for future presentations Porting RouterVM to higher-performance parallel hardware should drastically increase performance RouterVM’s 3000/cycles per packet per basic filter using.NET would be a terrible result for a network processor! Dedicated search hardware is severely needed… It is trivial to come up with regular expression searches that require 200,000+ cycles per packet using.NET’s regular expression engine Other regular expression libraries may be faster, but a software-only approach will rarely be good enough for high-performance datacenter apps

19 Backup

20 Comments on GPF Flexibility We can show that GPFs are flexible by examining the following GPF properties: Classification capabilities Headers fields only vs. headers + payloads Stateless classifications vs. stateful, individual packets vs. specific flows Simple field searches vs. complex general search expressions Layer support: L1 through L7 Action capabilities Packet handling (allow, drop, packet generation/copying) Packet rewriting (header field rewrites, truncation, header stripping/adding, checksum recalculations) Control flow (filter jump/skip via tags, messaging to downstream filters & RouterVM elements such as the routing engine) QoS support (e.g. rate limiting, WFQ, etc.) (cont )

21 Comments on GPF Flexibility (cont) Maintaining shared state and GPF interaction Efficient state sharing mechanism through tables or message passing Maintaining per-flow state within a filter, and between filters Mass storage capability (e.g. for content caching) Computational Power Simple, low-latency computations vs. complex, high-latency computations (e.g. NIDS, in-network antivirus scanning) Specification Flexibility Specific Application Support Storage, XML, Wireless, etc.