9/29/99 1 openet center - java-enabled network devices open programmable architecture for...
TRANSCRIPT
9/29/99 1Openet Center - Java-enabled Network Devices
Open Programmable Architecture
for Java-enabled Network Devices
Tal LavianTechnology Center
http://openet.lab.baynetworks.com
9/29/99 2Openet Center - Java-enabled Network Devices
Programmable Network Devices
Openly Programmable devices enable
new types of intelligence on the network
9/29/99 3Openet Center - Java-enabled Network Devices
Agenda
• Local Computation
• Architecture
• New types of applications
• ORE - Oplet Run-time Environment
• API’s
• Summary
9/29/99 4Openet Center - Java-enabled Network Devices
—JVMs Network devices
–Accelar, Accelar, Bay Routers
—ORE - Oplet Run-time Environment
—Java-enabled Device Architecture
—Java SNMP MIB API
—Implementation of Network Forwarding API
—Dynamic applications
—SDK and Linux Simulator
Accomplishments
9/29/99 5Openet Center - Java-enabled Network Devices
Agenda
• Local Computation
• Architecture
• Applications
• ORE - Oplet Run-time Environment
• API’s
• Summary
9/29/99 6Openet Center - Java-enabled Network Devices
Evolution vs. Revolution
HW
Net
Static Net SW
Net SW Intelligence Dynamic
Time
Performance /Enhancement
Log
arit
hmic
Now
10M
100M
1G
10G
Web
Bandwidth x200Last Mile56kb ==>10Mb
9/29/99 7Openet Center - Java-enabled Network Devices
Changing the Rules of the Game
• Move Turing Machine onto device—Add local intelligence to network
devices
while (true) {doLocalProcessingOnDevice()
}
9/29/99 8Openet Center - Java-enabled Network Devices
The Web Changed Everything
• Browsers— Introducing JVM to
browsers allowed dynamic loading of Java Applets to end stations
• Routers— Introducing JVM to routers
allows dynamic loading of Java Oplets to routers
This Capability WILL Change Everything
9/29/99 9Openet Center - Java-enabled Network Devices
Network Device
Dynamicloading
Example: Downloading IntelligenceExample: Downloading Intelligence
HWOS
JVM
React
MonitorA
uthe
ntic
atio
n
Sec
urity
Intelligenceapplication
9/29/99 10Openet Center - Java-enabled Network Devices
Security and Stability
• secure download of Java Applications
• safe execution environment—insulate core router applications from
dynamically loaded applications
9/29/99 11Openet Center - Java-enabled Network Devices
Device-based Intelligence
• Static-vs-Dynamic Agents—Static
– SNMP set/get mechanisms – Telnet, User Interfaces (cli, web, etc…)
—Dynamic closed-loop interaction on nodes– capable of dealing with new and difficult
situations – autonomous and rational properties. – dynamically system monitoring &
modification – report status and trends
9/29/99 12Openet Center - Java-enabled Network Devices
Agenda
• Local Computation
• Architecture
• Applications
• ORE - Oplet Run-time Environment
• API’s
• Summary
9/29/99 13Openet Center - Java-enabled Network Devices
ORE - Oplet Run-time Environment
Service A
JVM
ORE
Service B
Oplet 1
Service C
Oplet 2
Why ORE?
9/29/99 14Openet Center - Java-enabled Network Devices
Java-enabled Device Architecture Java-enabled Device Architecture
Device HWOperating System
JVM
Oplet
C/C++API
JavaAPI
DeviceCode
Oplet Runtime Env
DeviceDrivers
JNIJF
WD
AP
I
ORE Service
Download
9/29/99 15Openet Center - Java-enabled Network Devices
Architecture Issues
• Green Threads -vs- Native Threads —Native threads:
– provides non-interference between Java applications
– difficult thread-to-thread communication and sharing of data between threads
– creates a dependency on underlying RTOS
– multiple JVM instances consume resources
—Green Threads– single JVM must manage CPU & memory
resources between concurrently running threads
9/29/99 16Openet Center - Java-enabled Network Devices
Evolution of Router Architecture
Line cardLine card(forwarding (forwarding
buffering)buffering)
Line cardLine card(forwarding (forwarding
buffering)buffering)
Lin
e c
ard
Lin
e c
ard
(fo
rwa
rdin
g
(fo
rwa
rdin
g
bu
ffe
rin
g)
bu
ffe
rin
g)
Lin
e c
ard
Lin
e c
ard
(fo
rwa
rdin
g
(fo
rwa
rdin
g
bu
ffe
rin
g)
bu
ffe
rin
g)
CPUCPUBufferBuffer
memorymemory
Routing softwareRouting softwarew/ COTS OSw/ COTS OS
Routing softwareRouting softwarew/ COTS OSw/ COTS OS
NI
as
NI
as
lin
e c
ard
lin
e c
ard
NI
as
NI
as
lin
e c
ard
lin
e c
ard
NI
as
NI
as
lin
e c
ard
lin
e c
ard
......
RoutingRoutingCPUCPU
BufferBuffermemorymemory
Routing softwareRouting softwarew/ router OSw/ router OS
Routing softwareRouting softwarew/ router OSw/ router OS
Centralized, Centralized, CPU-based ModelCPU-based Model
Distributed, Distributed, line-card based Modelline-card based Model
Control + ForwardingControl + ForwardingFunctions combinedFunctions combined Control separatedControl separated
From forwardingFrom forwarding
Added scalability, Flexibility, extensibility
9/29/99 17Openet Center - Java-enabled Network Devices
Explicit Separation of Control Plane from Data Forwarding
ForwardingElement
ForwardingElement
ControlElement
ForwardingElement
ForwardingRoutin
g
SharedMemory
Packet FlowPacket Flow
Forwarding
Forwarding
Forwarding
Forwarding/Flow/filterTableDownloadCPU
Line Card
Traditional device
Line Card
9/29/99 18Openet Center - Java-enabled Network Devices
Separation of Control and Forwarding Planes
Centralized, Centralized, CPU-based RouterCPU-based Router
Forwarding-ProcessorsForwarding-Processors based Routerbased Router
Control + ForwardingControl + ForwardingFunctions combinedFunctions combined
Control separatedControl separatedFrom forwardingFrom forwarding
CPU
Routing SW
CPU
Control Plane
Forwarding Processor
Forwarding Processor
Forwarding Processor
Slow Wire Speed
9/29/99 19Openet Center - Java-enabled Network Devices
Open Networking Architecture
Network Services Protocol
Connect Transport Interface
Real-time OSNetwork Si
Network OS
Network Services Objects
Server Operating System
Un
ified p
olicy-b
ased m
anag
emen
t Forwardingelement
Controlelement
Applicationserver
Today
Networking Box Level Hardware
Proprietary NOS
Proprietary Apps
Custom Switch ASIC’s
Vertical Proprietary
Open
IP Telephony
VPN
Policy Server
Firewall
Copyright - Intel
9/29/99 20Openet Center - Java-enabled Network Devices
Dynamic Configuration of Forwarding Dynamic Configuration of Forwarding Rules Rules
CPU
ForwardingProcessor
ForwardingProcessor
ForwardingProcessor
ForwardingProcessor
ForwardingRules
SW
HW
ForwardingRules
ForwardingRules
ForwardingRules
AN Apps
9/29/99 21Openet Center - Java-enabled Network Devices
Real-time forwarding Stats and Real-time forwarding Stats and Monitors Monitors
CPU
SW
HW
AN Apps
ForwardingProcessor
ForwardingRules
Statistics &Monitors
ForwardingProcessor
ForwardingRules
Statistics &Monitors
ForwardingProcessor
ForwardingRules
Statistics &Monitors
9/29/99 22Openet Center - Java-enabled Network Devices
Dynamic - On the Fly Dynamic - On the Fly ConfigurationConfiguration
ForwardingProcessor
ForwardingProcessor
Pac
ket
Policy
Filters
Dynamic Apps
Packet
Pack
et Filte
r
9/29/99 23Openet Center - Java-enabled Network Devices
Packet CapturePacket Capture
CPU
ForwardingProcessor
ForwardingProcessor
ForwardingProcessor
ForwardingProcessor
Oplet
JFWD to Divert or Copy
Wire Speed
Pac
ket
9/29/99 24Openet Center - Java-enabled Network Devices
Agenda
• Our market is changing
• Local Computation
• Architecture
• Applications
• ORE - Oplet Run-time Environment
• API’s
• Summary
9/29/99 25Openet Center - Java-enabled Network Devices
Applications
• Network Management — Proactive Network Management
— Diagnostic Agents
• Dynamic DiffServ Classifier
• Active Intrusion Detection
• Multicast Caching
• IP Accounting
• Application-Layer Router-Server Collaboration
• Pseudo Default Drop Capability
9/29/99 26Openet Center - Java-enabled Network Devices
Network Management
• Download Oplet Service to the device.
• Monitor MIB variables • Might be complex conditions• Trend analysis• DiffServ, RMON-II, etc… MIBs
• Report “events” to NMS — drop rate, packets/second
• Allow Service to take action
• Download application
• Adjust parameters based on direction from NMS
Monitor
AppropriateApplication
Download
Download
Complex Condition Exceeded
NMS
No more polling
router
Extensive access to internal resources
9/29/99 27Openet Center - Java-enabled Network Devices
An Open Service API Example
—SNMP API for Network Management–generated automatically–allows device-based applications
to query MIB–device-based application -- query
local MIB– report trends or significant events– initiate downloading of problem
specific diagnostic code – take corrective action
9/29/99 28Openet Center - Java-enabled Network Devices
Proactive Network Management
• Device-based Intelligence is Dynamic—Static Management
– SNMP set/get mechanisms – Telnet, User Interfaces (cli, web, etc…)
—Dynamic Closed-loop Management at Network Node– capable of dealing with new and difficult
situations – autonomous and rational properties. – dynamically system monitoring & modification – report status and trends
—Monitor MIB to identify poor performance and notify NMS prior to failures
—Downloaded service can instantiated new services
9/29/99 29Openet Center - Java-enabled Network Devices
Diagnostic Mobile Agents
• Automatic trace-route from edge router where problem exists.—Each node reached generates a report to NMS
—Trace-route code “moves” to next node in path
—Mobile agents identify router health
—Create logs for NMS
9/29/99 30Openet Center - Java-enabled Network Devices
Dynamic DiffServ Classifier
• Set router filters to sample packets from edge device host ports
• Identify real-time traffic (RTP flows)
• Set filter on port to adjust DS-byte value based on policy
• Keep track of filters set
• Remove filters no longer in use
9/29/99 31Openet Center - Java-enabled Network Devices
Dynamic DiffServ ClassificationDynamic DiffServ Classification
ForwardingProcessor
ForwardingProcessor
Policy
Filters
ORE Service
Packet
Pack
et Filte
r
• Sample packets, set filters to modify DS-byte for Per-Hop-Behavior modification
Packet
Control
Plane
9/29/99 32Openet Center - Java-enabled Network Devices
Active Intrusion Detection
• Intruder is identified by Intrusion Detection software
• Intruder signature is identified
• Mobile agent is dispatched in direction of intruder (based on physical port of entry)
• Mobile agent “chases” intruder and terminates him (shuts down link, reboot host, notify NMS)
9/29/99 33Openet Center - Java-enabled Network Devices
Server Collaboration
• Supports distributed computing applications in which network devices participate— router to router
— server to router
• Supports Intelligent Agents
• Supports Mobile Agents
Java-basedApplication
Java-basedApplication
Java-basedApplication
9/29/99 34Openet Center - Java-enabled Network Devices
Application Layer Collaboration Among Routers and Servers
• Server farm load balancing— server state monitored; rerouting based on
congestion/load
• Auctioning Applications
• Bandwidth Broker
9/29/99 35Openet Center - Java-enabled Network Devices
Collaboration with Business Applications
• New paradigm of distributed applications
• Network devices collaborating with business applications
• Application aware routing
JVM
Oracle DBE-CommerceBusiness appsSAP , ERP,Optivity
RMI, XML, CORBAApps
AccelarPassportShastaBayRSBS450
JVM
Apps
Apps Server
Oplet Oplet
9/29/99 36Openet Center - Java-enabled Network Devices
Dynamic - On the Fly ConfigurationDynamic - On the Fly Configuration
• From downloadable Java application, we can modify the behavior of the ASICs
9/29/99 37Openet Center - Java-enabled Network Devices
Agenda
• Our market is changing
• Local Computation
• Architecture
• New types of applications
• ORE - Oplet Run-time Environment
• API’s
• Summary
9/29/99 38Openet Center - Java-enabled Network Devices
Summary• Programmable
—Turing Machine on network devices—dynamic agents vs. static agents—dynamic loading
• Openness - successfully proven paradigm —Facilitates innovation—Domain experts - virtual development community —3rd parties - change the networking landscape
• Application aware routing
9/29/99 39Openet Center - Java-enabled Network Devices
This is only the first step
Compare to this first flight and look where aviation is today
1903 the Wright brothers
9/29/99 40Openet Center - Java-enabled Network Devices
Appendix
9/29/99 41Openet Center - Java-enabled Network Devices
MIB API Example
JavaV irtualM achine
SN M P PD U Layer
Instrum entation& AnnotationLayer
R eal Tim e O perating System
Processor and other H ardware
N ative V ariab le In terface
M IB M ap
Abstract Variab le In terface
C lien t AP I
C lien t B ean
•API uses a MIB Map to dispatch requests to variable access routines•Different parts of the MIB tree can be serviced by different mechanisms•Two main schemes:•An ad hoc interface to the SNMP instrumentation layer•A generic SNMP loopback
9/29/99 42Openet Center - Java-enabled Network Devices
An Open Service API Example
—SNMP API for Network Management–generated automatically–allows device-based applications
to query MIB–device-based application -- query
local MIB– report trends or significant events– initiate downloading of problem
specific diagnostic code – take corrective action
9/29/99 43Openet Center - Java-enabled Network Devices
But Java is slooowwwww
• Not appropriate in the fast-path data forwarding plane—forwarding is done by ASICs
—packet processing not affected
• Java applications run on the CPU—Packets destined for Java
application are pushed into the control plane
9/29/99 44Openet Center - Java-enabled Network Devices
Strong Security in the new model
• The new concept is secure to add 3rd party code to network devices—Digital Signature—Administrative “Certified Optlet”—No access out of the JVM space —No pointers that can do harm —Access only to the published API—Verifier - only correct code can be loaded—Class loader access list—JVM has run time bounds, type, and
execution checking
9/29/99 45Openet Center - Java-enabled Network Devices
Old model Security (C/C++)
• Old model: Not safe to open to 3rd party —Dangerous, C/C++ Pointers
– Can touch sensitive memory location—Risk: Memory allocations and Free
– Allocation without freeing (leaks)– Free without allocation (core dump !!!! )
• Limited security in SNMP
9/29/99 46Openet Center - Java-enabled Network Devices
The P1520 Reference Model
Algorithms for value-added communication services created by network operators, users, and third parties
Algorithms for routing and connection management, directory services etc.
Value Added Services Level
Virtual Network Device (software representation)
Physical Elements (hardware, namespace)
L interface
Network Generic Services Level
Virtual Network Devices Level
End User ApplicationsV interface
U interface
CCM interface
PE Level
9/29/99 47Openet Center - Java-enabled Network Devices
CSIX Consortium
• Common switch interface for switch fabric independence— www.csix.org
— Detailed interface specification between port/packet processor logic and interconnect fabric logic
— Similar to common media interface such as Utopia, but for switch fabric interface
— Targeted at scalable switches at higher end
— Permits mix-and-match of silicon and software components
9/29/99 48Openet Center - Java-enabled Network Devices
Multi-Services Switching Forum (MSF)www.msforum.org
• Open Multi-service Switching— Common transmission and switching infrastructure
— Modular, layered architecture
— Integration at a module level through open interfaces
— Multi-vendor model with 3rd party software options
SwitchSwitchAdaptionAdaption
SwitchSwitchAdaptionAdaption
IP Services
Source: MSS
ATM Services
Voice Service