140 likes | 255 Views
NetServ represents a breakthrough in in-network service deployment, offering a dynamic, modular architecture for core network services. Unlike Active Networks, which attempted per-packet processing, NetServ leverages a service-oriented approach separated from packet forwarding, enabling more secure and portable virtual services. The platform incorporates extensible building blocks and service modules, facilitates network service discovery, and implements key functionalities, such as monitoring and routing services. With a focus on prototyping and showcasing applications, like a Content Distribution Service, NetServ redefines modern networking.
E N D
NetServDynamic in-network service deployment Henning Schulzrinne (Columbia University) Srinivasan Seetharaman (Georgia Tech) Volker Hilt (Bell Labs)
NetServ overview Extensible architecture for core network services • Modularization • Building Blocks • Service Modules • Virtual services framework • Security • Portability No more ossification in NGI
How is NetServ different from Active Networks? • Active Networks • Packet contains executable code • Can modify router states and behavior • Not successful • Per-packet processing too expensive • Security concerns • No compelling killer app to warrant such a big shift • Notable work: ANTS, Janos, Switchware • NetServ • Virtualized services on current, passive networks • Service invocation is signaling driven, not packet driven • Service modules are stand-alone, addressable entities • Separate from packet forwarding plane • Extensible plug-in architecture
Building Blocks • Key components of network services • Access to network-level resource • Implementation of common functionality • For example: • Link monitoring and measurement • Routing table • Packet capture • Data storage and lookup
Service Modules • Full-fledged service implementations • Use Building Blocks and other Service Modules • Can be implemented across multiple nodes • Invoked by applications • Examples: • Routing-related services • Multicast, anycast, QoS-based routing • Monitoring services • Link & system status, network topology • Identity services • Naming, security • Traffic engineering services • CDN, redundancy elimination, p2p network support
Virtual Services Framework • Container for Service Modules • Security by module isolation (sandboxes) • Portability by virtualization and common API to Building Blocks • Features • Dynamic distribution of modules • Network service discovery • AAA mechanisms • Wide-range of nodes: routers, servers, PCs, set-top boxes
Research objectives • Define requirements for service-oriented Internet architecture • Design architectural framework for virtualized services • Identify key building blocks • Develop service discovery and distribution mechanisms • Develop a content distribution service as a showcase application
Content Distribution Service:our showcase application • CDN, the current kludge • IP address conflates identity and location • DNS abuse to get around it • Content Distribution Service on NetServ Framework • Based on generalized naming service module • Ideas borrowed from other NGI proposals • Also relies on network monitoring service module • Together with policy info, underlies naming resolution • Evaluation on GENI
Our initial approach • Series of rapid prototyping cycles • Identify technical challenges early on • Start project with code rather than documents and slides
Service Modules Building Blocks written in Java Building Blocks written in Java Building Blocks written in C/C++ (library functions and/or system calls) NetServ prototype technology overview Virtual Services Framework in Java using OSGi Java Native Interface (JNI) wrapper • Click Modular Router • (user or kernel mode)
Prototype technology:Click router • Runs as a Linux kernel module or user-level program • Modules written in C++ (called Elements) are configured in a text file • Elements are arranged in a directed graph, through which packets traverse • Example: • Click router command: sudo click example.click • Configuration file jae.click: FromDevice(en0)->CheckIPHeader(14)->IPPrint->Discard; • http://www.read.cs.ucla.edu/click/
Prototype technology: OSGi • Dynamic module system for Java • Modules loaded and unloaded at runtime • Bundle: self-contained JAR file with specific structure • Open-source implementations: Apache Felix, Eclipse Equinox • Security and accounting • Security built on Java 2 Security model • Permission-based access control • No fine-grained control or accounting for CPU, storage, bandwidth • Can load native code with appropriate permission • Strict separation of bundles • Classpath set up by Bundle class loader • Inter-bundle communication only through published interfaces
1st prototype implementation Privileged System Bundle (Java) App Bundle (Java) Java Native Interface (JNI) Published interface Equinox open-source OSGi framework Java Virtual Machine Packet queue NetServ Click element in C++ - starts up a JVM packet User-level Click router Single process
Summary • NetServ • Architecture for dynamic in-network service deployment • Modular and extensible • Building Blocks and Service Modules • Secure and portable • Virtualized Services Framework • And it is NOT Active Networks • Content Distribution Service • Our planned showcase application • Our initial approach • Rapid prototyping cycles • Implementation using Click and OSGi