420 likes | 536 Views
OCALA: An Architecture for Supporting Legacy Applications over Overlays. Dilip Antony Joseph 1 , Jayanth Kannan 1 , Ayumu Kubota 2 , Karthik Lakshminarayanan 1 , Ion Stoica 1 , Klaus Wehrle 3. 1 UC Berkeley, 2 KDDI Labs, 3 University of Tübingen. Motivation.
E N D
OCALA: An Architecture for Supporting Legacy Applications over Overlays Dilip Antony Joseph1, Jayanth Kannan1, Ayumu Kubota2, Karthik Lakshminarayanan1, Ion Stoica1, Klaus Wehrle3 1UC Berkeley, 2KDDI Labs, 3University of Tübingen
Motivation • Efforts to change Internet infrastructure not successful • Mobile IP, IP multicast, Intserv • Overlays provide new features without changing the Internet • RON : resilience to path failures • i3 : mobility, NAT traversal, anycast, multicast • OverQOS : quality of service • But still no widespread deployment • Inertia in shifting to a new application • Enable popular applications (Firefox, IE, samba, ssh) to benefit from overlay
Legacy Applications on Overlays • Approach 1 : rewrite/port apps for each new overlay • time-consuming, tedious, impossible for closed source apps • Approach 2 : enable support for legacy applications on multiple overlays
Goals • Transparency • Legacy apps unaware of overlay • Inter-operability • Hosts in different overlays should be able to talk to each other • Expose Overlay Functionality • User control over which overlay to use, what overlay specific properties to use • Factor out common requirements • Security, compression
Legacy Applications (ssh, firefox, explorer, …) Transport Layer (TCP, UDP, …) OC Independent (OC-I) Sublayer Overlay Convergence (OC) Layer OC Dependent (OC-D) Sublayer Overlay (DOA, DTN, HIP, i3, RON, …) Overlay Convergence Architecture for Legacy Applications (OCALA) Interpose an Overlay Convergence Layer between transport layer and overlay networks.
Simultaneous access to multiple overlays Host B Host C ssh Host A IRC OC-I Firefox IRC ssh OC-I … RON … OC-I i3 … OC-D IP i3 RON RON www.cnn.com i3 Internet
Overlay specific name Overlay instance Naming • DNS-like names to identify machines (or services) berkeley berkeley .pl.i3 .pl.i3 Transport Overlay type OC-I • Interpreted by OC-I • OC-I uses suffix to • invoke corresponding • OC-D instance OC-D Overlay • Interpreted by OC-D • OC-D resolves this name • to an overlay specific • ID/Addr (e..g, i3 ID, HIT, • EID, IP addr) • OC-D resolution mechanism • Overlay specific (e.g., hashing names to IDs in i3) • General (e.g., OpenDHT, DNS, address book) • Identity mapping: OC-D names can be just flat IDs • Configuration file to store user preferences
Bridging Overlays • Application at host A issues a DNS request for foo.ron_bar.i3 • A sets up tunnel to bar.i3 (B) over i3. • B sets up tunnel to foo.ron (C) over RON. • Path from A to C consisting of the two tunnels. Host A Host C (foo.ron) Appl. Appl. Host B (bar.i3) OC-I OC-I OC-I OC-D i3 RON i3 RON RON i3 tunnel tunnel path
Legacy Server Gateways • Server need not run OCALA locally • Special OC-D module called Legacy Server IP (LSIP) at gateway • LSIP behaves like a software NAT box Overlay client Legacy gateway Appl. Legacy server (www.nasa.gov) OC-I OC-I OV LSIP OV Overlay (OV) Internet *.gov OV … Configuration file
Legacy Client Gateways • Clients need not run OCALA locally • Gateway has special Legacy Client IP (LCIP) module Overlay server (foo.ov) Legacy gateway Appl. OC-I Legacy Client OC-I OV OV LCIP Internet Overlay (OV) DNSreq(foo.ov.ocalaproxy.net)
Legacy Client Gateway Demo http://flute.i3.6to4.jp:8080/ • Home machine behind NAT running OCALA. • Legacy Client Gateway running OCALA. • No modification to NAT. • Client (your web browser) does not run OCALA.
DNSreq(foo.ov) DNSresp(oc_handle = IPAB) OCI-Setup (pdAB) 1 7 8 Name Res. Service (local addrbook, DNS, OpenDHT…) tunnel_d = tdAB setup(foo.ov) 2 6 resolve(foo.ov) 3 IDB 4 overlay specific setup protocol 5 Setting up a new connection Host A Legacy App. 1.x.x.x Transport Layer Host B (foo.ov, IDB) OC-I Layer OC Layer … Overlay (DTN, i3, RON) i3 RON
data IPAB data IPBA tdAB, data data pdAB IPAB pdAB IPAB IDB pdAB IPAB data Data Flow Host A (IDA) Host B (foo.ov, IDB) Legacy App. Legacy App. Transport Layer Transport Layer “foo.ov” pdAB OC-I pdAB↔ IPBA OC-I pdAB↔ IPAB pdAB tdAB pdAB tdBA Overlay (DTN, i3, RON) OC-D tdABIDB tdBAIDA OC-D
Overlay Dependent Layer • API exposed by OC-D to OC-I layer • Setup (tunnel_info) • Close (tunnel_d) • Send (tunnel_d, pkt) • Callbacks from OC-D to OC-I • SetupDone (tunnel_d) • Recv(pkt) • i3, RON modules implemented
Applications • Simultaneous access to multiple overlays • Overlay composition • Allows user to merge functionality of various overlays • Eg: Wireless internet access using i3 over the wireless hop and RON over the wide area. • Applications enabled by new overlays • Receiver imposed middleboxes • NAT traversal
Receiver Imposed Middleboxes • Receiver (foo.i3) enforces all traffic to pass through a middlebox using overlay functionality (e.g., i3) • Demonstration of receiver imposed Bro Intrusion Detection System during poster session Sets up connection to foo.i3 Host A foo.i3 Appl. Bro Appl. OC-I OC-I OC-I i3 i3 i3 i3
i3 NAT Box NAT Traversal Application • Using i3 servers as a relaying point • Allows direct communication between NATed hosts • Demo during poster session
Implementation • Implemented as a proxy • tun device used to capture packets • Works on Linux and Windows XP/2000 (using cygwin) • Implemented RON and i3 OC-D modules. • 200 lines of glue code in case of RON • Security • Authentication and Encryption using an ssl-like protocol extended to accommodate middleboxes
Limitations • Applications sending IP addresses in packet payload may fail • Example: ftp, SIP • Increase in packet size due to new headers • Legacy applications cannot leverage all overlay features • Example: multicast
Conclusion • Overlays are a means to overcome the “Internet Impasse”. • OCALA enables legacy applications to benefit from the new features offered by new network architectures. • OCALA enables interoperability between different network architectures. • Generic proxy implementation.
Thank you More information and proxy download at http://i3.cs.berkeley.edu
mytranscoder.i3 Transcoder OC-I i3 Sender Imposed Middleboxes • Sender wishes to communicate with foo.i3. • Sender wishes to force traffic to go through a transcoder not directly on the path. Sets up connection to foo.i3_mytranscoder.i3 Sets up connection to foo.i3 Host A foo.i3 Appl. Appl. OC-I OC-I i3 i3 i3
Transparent use of Overlays • Make legacy apps oblivious to overlays preserve standard IP interface • OC needs to decide which overlay to use • IP address and port number: • E.g., forward all packets to 64.236.24.8 port 80 over RON • Advantage: works with all applications • Disadvantage: hard to remember and configure • DNS name: • E.g., forward all packets sent to berkeley.ron over RON • Advantages: human readable, flexible • Disadvantage: some applications don’t use DNS names
Goal 1: Achieving Transparency • Make legacy apps oblivious to overlays • Preserve standard IP interface • Deciding which overlay to use • IP address and port number : • E.g., forward all packets sent to 64.236.24.8 port 80 over RON • DNS name: • E.g., forward all packets sent to berkeley.ron over RON • Human readable • Easy to encode user preferences
Goal 3: Customizing Overlay Functionality • Overlays have customizable parameters • Example: OverQoS – maximum acceptable latency, RON – which routing metric (loss, throughput) to use, i3 – enable shortcut • Encode preferences in DNS name • Example: berkeley.mindelay.ron • Example: berkeley.maxbwdth.ron • Max 255 characters • Long names are inconvenient • Use regular expressions in configuration files
berkeley.maxbwdth.ron berkeley.mindelay.ron Customizing Overlay Functionality Host B ssh ftp Host A OC-I Firefox ftp ssh … RON OC-I … OC-D IP i3 RON RON i3 Internet
Goal 4: Common functionality • Functionality required by multiple overlays implemented in the OC-I layer • Example: Security • Similar to SSL • Modifications for supporting middleboxes
Legacy Applications (ssh, firefox, explorer, …) Transport Layer (TCP, UDP, …) OC Independent (OC-I) Sublayer Overlay Convergence (OC) Layer OC Dependent (OC-D) Sublayer Overlay (DOA, DTN, HIP, i3, RON, …) Overlay Convergence Architecture for Legacy Applications Interpose an Overlay Convergence Layer between transport layer and overlay networks.
Overlay Dependent Layer • API exposed by OC-D to OC-I layer • Setup (tunnel_info) • Close (tunnel_d) • Send (tunnel_d, pkt) • Callbacks from OC-D to OC-I • SetupDone (tunnel_d) • Recv(pkt) • i3, RON modules implemented
Client Middlebox M Hello.i3 Firefox BRO apache OC-I OC-I OC-I i3 i3 i3 i3 i3 Middlebox Demo
Web Server R hello.i3 idhello idhello idhello idhello idhello data data data data data idhello idM,idR idM idR IPM IPR i3 Middlebox M BRO IDS Client Web Browser i3 Middlebox Demo
idR idR data data idR IPR i3 Home NAT Box Client NAT Traversal Demo Receiver R
Interfacing middleboxes Middleboxes cleanly fit into the OC architecture. Host A Host M (mbox.i3) Host C (foo.i3) Appl. Middlebox Appl. OC-I OC-I OC-I i3 i3 i3 i3
Evaluation • Micro-benchmarks • ~20 μs overhead each for tun, OC-D and OC-I layers • DNS lookup latency • First time : 169 μs • From cache: 15 μs • LAN experiments • Throughput close to that of pure IP. • Latency less than double that of pure IP. • Wide Area experiments • Throughput close to that of pure IP. • No increase in latency.
Example Configuration File All traffic going to URLs containing “berkeley” or ending with “.gov” should first go through a firewall over i3 and then to the destination over RON. <PathInfo > <Match urlPattern = "*berkeley*" /> <Match urlPattern = "*.gov" /> <Security protocol = "custom SSL" mode = "endhostonly" /> <Compression algo = "zlib" level = "5" /> <Hop overlayId = "PlanetLab.i3" HopEndPointName = “firewall1.berkeley.edu.i3" > <Property name = “shortcut” value = “enabled” /> </Hop> <Hop overlayId = "PlanetLab.i3" HopEndPointName = “RON_i3_Gateway.berkeley.edu.i3" /> <Hop overlayId = "ron.PlanetLab" /> </PathInfo>
Micro-benchmarks Per-packet overhead while sending data Per-packet overhead while receiving data • DNS lookup overhead • First time = 169 microseconds • From cache = 15 microseconds
LAN Experiments • 2 proxies on the same LAN Latency Throughput
Wide Area Experiments • Proxies running at 3 different locations. • RON and i3-with-shortcut have latency close to pure IP.
Wide Area Experiments (contd.) • RON and i3-with-shortcut throughput >= 75% of throughput of pure IP • Anomalous behavior of packets sent to A