310 likes | 329 Views
Explore how i3 tackles networking challenges through indirection, enabling efficient support for mobility, multicast, and more. Learn about i3's services, communication model, and its promise for network improvements. Discover i3's innovative approach to routing efficiency, robustness, and security enhancements. Find out why end-host control in routing and data forwarding is crucial for improved security. Dive into i3's flexibility and performance in providing end-host security and routing control.
E N D
i3 Status Ion Stoica UC Berkeley Jan 13, 2003
The Problem • Indirection: a key technique in implementing many network services, e.g., • Mobility • Multicast, anycast • Web caching, replication, load-balancing • Anonymity • IP doesn’t provide efficient support for indirection difficult and complex to deploy these services • Our approach: make indirection a first level design principle in network architecture istoica@cs.berkeley.edu
Our Solution: Internet Indirection Infrastructure (i3) • Add an efficient indirection layer on top of IP • Use an overlay network to implement it • Incrementally deployable; no need to change IP IP router i3 node istoica@cs.berkeley.edu
send(R, data) send(id, data) trigger id R i3 Communication Abstraction • Provide a rendezvous based communication abstraction (instead of point-to-point) • Each packet is associated an identifier id • To receive a packet with identifier id, receiver R maintains a trigger (id, R) into the overlay network Sender Receiver (R) istoica@cs.berkeley.edu
Service Model • API • sendPacket(p); • insertTrigger(t); • removeTrigger(t) // optional • Best-effort service model (like IP) • Triggers are periodically refreshed by end-hosts • Reliability, congestion control, and flow-control implemented at end-hosts istoica@cs.berkeley.edu
The Promise • Provide support for • Mobility • Multicast • Anycast • Service composition istoica@cs.berkeley.edu
send(R1, data) send(id,data) Mobility • Host just needs to update its trigger as it moves from one subnet to another Receiver (R1) Sender id R1 istoica@cs.berkeley.edu
send(id,data) Mobility • Host just needs to update its trigger as moves from one subnet to another send(R2, data) Sender id R2 Receiver (R2) istoica@cs.berkeley.edu
Multicast • Unifies multicast and unicast abstractions • Multicast: receivers insert triggers with the same identifier • An application can dynamically switch between multicast and unicast send(R1, data) send(id,data) id R1 Receiver (R1) Sender id R2 send(R2, data) Receiver (R2) istoica@cs.berkeley.edu
Anycast • Generalize the matching scheme used to forward a packet • Until now we assumed exact matching • Next, we assume: • Longest prefix matching (LPM) using a prefix larger than a predefined constant l to avoid collisions • In the current implementation: ID length, m = 256, l = 128 istoica@cs.berkeley.edu
Anycast (cont’d) • Anycast is simply a byproduct of the new matching scheme, e.g., • Each receiver Ri in the anycast group inserts IDs with the same prefix p and a different suffix si send(R1,data) Receiver (R1) p|s1 R1 send(p|a,data) p|s2 R2 Sender Receiver (R2) p|s3 R3 Receiver (R3) istoica@cs.berkeley.edu
send((id_MPEG/JPEG,id), data) send(R, data) send(id, data) Service Composition • Use a stack of IDs to encode the successions of operations to be performed on data • Advantages • Don’t need to configure path • Load balancing and robustness easy to achieve S_MPEG/JPEG Receiver R (JPEG) Sender (MPEG) id R S_MPEG/JPEG id_MPEG/JPEG istoica@cs.berkeley.edu
What We’ve Done Since Summer? • Performance improvements • Routing efficiency • Robustness • Security istoica@cs.berkeley.edu
Routing Efficiency • Recall that i3 uses Chord for routing • Use simple heuristics to reduce Chord’s routing latency • Results using 16,384 node networks (path length = 7), and real latency distributions • 90th percentile latency < 500 ms • 90th percentile relative delay penalty (RDP) < 2 • Note: in i3 the latency cost is paid only first time when a trigger is accessed • Trigger’s location is cached after first access istoica@cs.berkeley.edu
Robustness • Use cooperative algorithms to reduce time to detect a node failure • Same message overhead as a simple keep-alive alg. • Can achieve recovery times on the order of a few RTTs • Bottleneck in practice: the time it takes to make sure that a node has failed with high probability • See Shelley and Matt’s talk istoica@cs.berkeley.edu
Security • Show that i3’s flexibility can improve (not hurt) end-host security • Redesign i3 to make it secure without compromising its flexibility and performance (see Dan’s talk tomorrow) istoica@cs.berkeley.edu
Key Observation • To improve end-host security it is necessary to give end-hosts more control on routing and data forwarding in the infrastructure istoica@cs.berkeley.edu
Why? • End-hosts are in the best position to detect when they are under attack • E.g., flash-crowd vs. DoS, SYN attack • Once an end-host detects an attack, it should be able to stop/redirect the offending traffic before it arrives at its inbound connection • i3 gives end-host this flexibility istoica@cs.berkeley.edu
Example • Server maintains a public trigger idpublic • Clients contact the server via its public trigger • For each client i , the server allocates a private trigger • The private trigger is a shared secret between the server and client Server (S) send(idprivateA,data) idpublic S Host (A) idprivateA S send(idprivateB,data) idprivateB S Host (B) istoica@cs.berkeley.edu
Attack on Private Trigger • Defense: just remove trigger under attack! Server (S) send(idprivateA,data) idpublic S Attacker (A) idprivateA S send(idprivateB,data) idprivateB S Host (B) istoica@cs.berkeley.edu
Attack on Private Trigger • Defense: just remove trigger under attack • Offending traffic stopped in the network, before arriving at server’s inbound connection Server (S) send(idprivateA,data) idpublic S Attacker (A) send(idprivateB,data) idprivateB S Host (B) istoica@cs.berkeley.edu
Attack on Public Trigger • Server maintains n (instead of one) public triggers • To establish a connection, a client randomly selects one of the public triggers idpublic1 S idpublic2 S Server (S) … Attacker (A) idpublicn S send(idprivateB,data) idprivateB S Host (B) istoica@cs.berkeley.edu
Attack on Public Trigger (cont’d) • Assume flooding attack • Defense: remove the highest loaded m triggers • Eliminate f=m/n of the offending traffic • Trade-off: clients need to make 1/(1-f) tries to connect • Ongoing connections (i.e., private triggers) not affected idpublic1 S idpublic2 S Server (S) … Attacker (A) idpublicn S send(idprivateB,data) idprivateB S Host (B) istoica@cs.berkeley.edu
Attack on Public Trigger (cont’d) • An intelligent attacker can detect when a public trigger was removed and redirect its attack on the remaining public triggers • Server can defend against this by periodically changing the subset of active triggers • Every period T make active a different subset of m triggers out of the available n public triggers istoica@cs.berkeley.edu
Attack on Public Trigger (cont’d) • Assume bottleneck is computation not communication • Defense: redirect traffic to a fake server instead of removing triggers • Make it more difficult for attacker to detect when a trigger was redirected Fake server (F) idpublic1 F idpublic2 F Server (S) … Attacker (A) idpublicn S send(idprivateB,data) idprivateB S istoica@cs.berkeley.edu Host (B)
Attack on Public Trigger (cont’d) • Have the fake server reply with puzzles which, if solved, reveal active public triggers • Can use captchas, i.e., puzzles easy to solve by humans, but very difficult by machines • E.g., distorted words: • A human user can always connect after the second try istoica@cs.berkeley.edu
Conclusions • Indirection, key primitive to support • Basic communication abstractions, e.g., multicast, anycast, mobility • Improve end-host security • This research advocates for: • Leaving IP do what is doing best: point-to-point unicast communication • Building an efficient Indirection Layer on top of IP istoica@cs.berkeley.edu
Future Work • More applications • So far: mobility, multicast • Next: light-weight name resolution, modular protocols, … • Resource management and QoS istoica@cs.berkeley.edu
Increasing Routing Efficiency • i3 uses Chord for routing • Study simple heuristics to reduce Chord’s routing latency • Proximity Node Selection, PNS(K) • Each node maintains for each finger the set of its K successors • Chose the closest successor of the finger to route instead the finger • Proximity Route Selection (PRS) • Choose a finger that balances the progress in the ID space vs. the latency cost istoica@cs.berkeley.edu
send(R, data) send(id, data) send((id_MPEG/JPEG, R), data) Service Composition (cont’d) • Receiver can also specify the operations to be performed on data S_MPEG/JPEG Receiver R (JPEG) Sender (MPEG) S_MPEG/JPEG id_MPEG/JPEG id (id_MPEG/JPEG, R) istoica@cs.berkeley.edu
Students: Daniel Adkins Karthik Lakshminarayanan Ananth Rajagopala-Rao Sonesh Surana Shelley Zhuang Postdocs: Kevin Lai Faculty: Randy Katz Scott Shenker Collaborators istoica@cs.berkeley.edu