Internet Indirection Infrastructure Ion Stoica UC Berkeley

advertisement
Internet Indirection
Infrastructure
Ion Stoica
UC Berkeley
Nov 14, 2005
Motivations
• Today’s Internet is built around a unicast
point-to-point communication abstraction:
– Send packet “p” from host “A” to host “B”
• This abstraction allows Internet to be highly
scalable and efficient, but…
• … not appropriate for applications that require
other communications primitives:
–
–
–
–
Multicast
Anycast
Mobility
…
2
Why?
• Point-to-point communication  implicitly
assumes there is one sender and one receiver,
and that they are placed at fixed and well-known
locations
– E.g., a host identified by the IP address 128.32.xxx.xxx
is located in Berkeley
3
IP Solutions
• Extend IP to support new communication
primitives, e.g.,
– Mobile IP
– IP multicast
– IP anycast
• Disadvantages:
– Difficult to implement while maintaining Internet’s
scalability (e.g., multicast)
– Require community wide consensus -- hard to achieve
in practice
4
Application Level Solutions
• Implement the required functionality at the
application level, e.g.,
– Application level multicast (e.g., Narada, Overcast,
Scattercast…)
– Application level mobility
• Disadvantages:
– Efficiency hard to achieve
– Redundancy: each application implements the
same functionality over and over again
– No synergy: each application implements usually
only one service; services hard to combine
5
Key Observation
• Virtually all previous proposals use indirection,
e.g.,
– Physical indirection point  mobile IP
– Logical indirection point  IP multicast
“Any problem in computer science can
be solved by adding a layer of indirection”
6
Our Solution
Build an efficient indirection layer
on top of IP
• Use an overlay network to implement this layer
– Incrementally deployable; don’t need to change IP
Application
Indir.
TCP/UDP
layer
IP
7
Internet Indirection Infrastructure (i3)
• 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
data id
Sender
Receiver (R)
data R
id R
trigger
8
Service Model
• API
– sendPacket(p);
– insertTrigger(t);
– removeTrigger(t) // optional
• Best-effort service model (like IP)
• Triggers periodically refreshed by end-hosts
• ID length: 256 bits
9
Mobility
• Host just needs to update its trigger as it moves
from one subnet to another
Sender
id R2
R1
Receiver
(R1)
Receiver
(R2)
10
Multicast
• Receivers insert triggers with same identifier
• Can dynamically switch between multicast and
unicast
data id
Sender
data R1
id R1
Receiver (R1)
id R2
data R2
Receiver (R2)
11
Anycast
• Use longest prefix matching instead of exact
matching
– Prefix p: anycast group identifier
– Suffix si: encode application semantics, e.g., location
data p|a
Sender
data R1
p|s1 R1
p|s2 R2
Receiver (R1)
Receiver (R2)
p|s3 R3
Receiver (R3)
12
Service Composition: Sender Initiated
• Use a stack of IDs to encode sequence of
operations to be performed on data path
• Advantages
– Don’t need to configure path
– Load balancing and robustness easy to achieve
Transcoder (T)
data idT,id
Sender
data id
data T,id
idT T
data R
id R
Receiver (R)
13
Service Composition: Receiver
Initiated
• Receiver can also specify the operations to be
performed on data
data id
Sender
Firewall (F)
data R
data F,R
idF F
Receiver (R)
data idF,R
id idF,R
14
Outline
 Implementation
• Examples
• Security
• Applications
• Legacy application support
15
Quick Implementation Overview
• i3 is implemented on top of Chord
– But can easily use CAN, Pastry, Tapestry, etc
• Each trigger t = (id, R) is stored on the node
responsible for id
• Use Chord recursive routing to find best
matching trigger for packet p = (id, data)
16
Routing Example
• R inserts trigger t = (37, R); S sends packet p = (37, data)
• An end-host needs to know only one i3 node to use i3
– E.g., S knows node 3, R knows node 35
S
2m-1 0
S
3
send(37, data)
20
[8..20]
7
7
[4..7]
3
[40..3]
Chord circle
37 R
[21..35]
41
41
20
37 R
35
[36..41]
trigger(37,R)
35
send(R, data)
R
R
17
Optimization #1: Path Length
• Sender/receiver caches i3 node mapping a
specific ID
• Subsequent packets are sent via one i3 node
[8..20]
[4..7]
data 37
[42..3]
Sender (S)
cache node
[21..35]
[36..41]
data R
37 R
Receiver (R)
18
Optimization #2: Triangular Routing
• Use well-known trigger for initial rendezvous
• Exchange a pair of (private) triggers well-located
• Use private triggers to send data traffic
[8..20]
[4..7]
37
data
[2] 30
2 S
Sender (S)
[42..3]
S
[30]
[21..35]
[36..41]
[2] R
37 R
data
R
2
[30]
30 R
Receiver (R)
19
Outline
• Implementation
 Examples
–
–
–
–
Heterogeneous multicast
Scalable Multicast
Load balancing
Proximity
• Security
• Applications
• Legacy application support
20
Example 1: Heterogeneous
Multicast
• Sender not aware of transformations
S_MPEG/JPEG
send(R1, data)
send(id, data)
id_MPEG/JPEG S_MPEG/JPEG
Sender
(MPEG)
Receiver R1
(JPEG)
send((id_MPEG/JPEG, R1), data)
id
(id_MPEG/JPEG, R1)
id
R2
send(R2, data)
Receiver R2
(MPEG)
21
Example 2: Scalable Multicast
• i3 doesn’t provide direct support for scalable multicast
– Triggers with same identifier are mapped onto the same i3 node
• Solution: have end-hosts build an hierarchy of trigger of
bounded degree
(g, data)
g
x
g g
R1 R2
R2
(x, data)
x
R3
R3
x
R4
R1
R4
22
Example 2: Scalable Multicast
(Discussion)
Unlike IP multicast, i3
1. Implement only small scale replication  allow
infrastructure to remain simple, robust, and
scalable
2. Gives end-hosts control on routing  enable endhosts to
– Achieve scalability, and
– Optimize tree construction to match their needs, e.g.,
delay, bandwidth
23
Example 3: Load Balancing
• Servers insert triggers with IDs that have random suffixes
• Clients send packets with IDs that have random suffixes
send(1010 0110,data)
S1
1010 0010 S1
A
S2
1010 0101 S2
1010 1010 S3
S3
send(1010 1110,data)
B
1010 1101 S4
S4
24
Example 4: Proximity
• Suffixes of trigger and packet IDs encode the
server and client locations
S2
S3
S1
send(1000 0011,data)
1000 0010
1000 1010 S2
1000 1101 S3
S1
25
Outline
• Implementation
• Examples
 Security
• Applications
• Legacy applications support
26
Some Attacks
Eavesdropping
Loop
id1 id2
id R
id A
S
R
id4 id1
Attacker (A)
id2 id3
id3 id4
Attacker
Confluence
Dead-End
id2 id3
Attacker id1 id2
id2 id3
id2 id3
id3 V
Victim
(V)
Attacker
id1 id2
id2 id3
27
Constrained Triggers
• hl(), hr(): well-known one-way hash functions
• Use hl(), hr() to constrain trigger (x, y)
Right constrained
must match
ID: prefix
64
key
128
y.key = hr(x)
suffix
64
x
y
Left constrained
x.key = hl(y.key)
x.key = hl(y)
x
y
x
y
end-host address
28
Attacks & Defenses
Attack
Defense
Trigger
constraints
Pushback
Trigger
challenges
Public ID
constraints
Eavesdropping&
Impersonation
Loops &
Confluences
Dead-ends
Reflection &
Malicious triggerremoval
Confluences
on i3 public nodes
29
Outline
• Implementation
• Examples
• Security
 Applications
 Protection against DoS attacks
– Service composition platform
• Legacy application support
30
In a Nutshell
• Problem scenario: attacker floods the incoming
link of the victim
• Solution: stop attacking traffic before it arrives
at the incoming link
– Today: call the ISP to stop the traffic, and hope for
the best!
• Our approach: give end-host control on what
packets to receive
– Enable end-hosts to stop the attacks in the network
31
Why End-Hosts (and not
Network)?
• End-hosts can better react to an attack
– Aware of semantics of traffic they receive
– Know what traffic they want to protect
• End-hosts may be in a better position to
detect an attack
– Flash-crowd vs. DoS
32
Some Useful Defenses
1. White-listing: avoid receiving packets on arbitrary
ports
2. Traffic isolation:
– Contain the traffic of an application under attack
– Protect the traffic of established connections
3. Throttling new connections: control the rate at
which new connections are opened (per sender)
33
1. White-listing
• Packets not addressed to open ports are
dropped in the network
– Create a public trigger for each port in the white list
– Allocate a private trigger for each new connection
34
2. Traffic Isolation
• Drop triggers being flooded without affecting
other triggers
– Protect ongoing connections from new connection
requests
– Protect a service from an attack on another
services
Transaction server
Legitimate client
(C)
ID1 V
ID2 V
Victim (V)
Web server
Attacker
(A)
35
2. Traffic Isolation
• Drop triggers being flooded without affecting
other triggers
– Protect ongoing connections from new connection
requests
– Protect a service from an attack on another
services
Transaction server
Legitimate client
(C)
ID1 V
Victim (V)
Web server
Attacker
(A)
Traffic of transaction server
protected from attack on web server
36
3. Throttling New Connections
• Redirect new connection requests to a gatekeeper
– Gatekeeper has more resources than victim
– Can be provided as a 3rd party service
Gatekeeper (A)
IDC C
Client (C)
X S
Server (S)
IDP A
37
Outline
• Implementation
• Examples
• Security
• Architecture Optimizations
 Applications
– Protection against DoS attacks
 Service composition platform
• Legacy application support
38
Service Composition
• Goal: allow third-parties and end-hosts to easily
insert new functionality on data path
– E.g., firewalls, NATs, caching, transcoding, spam
filtering, intrusion detection, etc..
• Why i3?
– Make middle-boxes part of the architecture
– Allow end-hosts/third-parties to explicitly route through
middle-boxes
39
Example
• Use Bro system to provide intrusion detection for
end-hosts that desire so
Bro (middle-box)
M
(idM:idBA, data)
(idBA, data)
idM M
client A
idAB A
(idAB, data)
i3
idBA B
server B
(idM:idAB, data)
40
Outline
• Implementation
• Examples
• Security
• Applications
 Legacy Application Support
41
The Problem
• New network architectures & overlays provide
new features
– RON : resilience to path failures
– i3 : mobility, NAT traversal, anycast, multicast
–…
• But still no widespread deployment
• How take advantage of new functionality?
• Enable popular applications (ssh, Firefox, IE) to
benefit from new features
42
Solutions
• Approach 1: rewrite/port apps for each new
overlay
– time-consuming, tedious, impossible for closed
source apps
• Approach 2: enable support for legacy
applications over multiple overlays
• We chose approach 2!
43
Overlay Convergence Architecture for
Legacy Applications (OCALA)
Interpose an Overlay Convergence Layer between
transport layer and overlay networks
Legacy Applications
(ssh, firefox, explorer, …)
Transport Layer
(TCP, UDP, …)
IP Layer
44
Overlay Convergence Architecture for
Legacy Applications (OCALA)
Interpose an Overlay Convergence Layer between
transport layer and overlay networks
Legacy Applications
(ssh, firefox, explorer, …)
Transport Layer
(TCP, UDP, …)
Overlay Convergence (OC) Layer
Overlay
(DOA, DTN, HIP, i3, RON, …)
OC Independent
(OC-I) Sublayer
OC Dependent
(OC-D) Sublayer
45
Simultaneous access to multiple
overlays
Host B
Host C
ssh
Host A
IRC
OC-I
Firefox
IRC
ssh
RON
i3
OC-D
OC-I
IP
i3
…
…
OC-I
RON
RON
i3
…
www.cnn.com
Internet
46
Which overlay to use?
• IP address and port number :
– E.g.: Forward all packets sent to 128.32.132.223
port 22 over i3
• DNS name:
– E.g.: Forward all packets sent to odu.edu.ron over
RON (Resilient Overlay Networks)
– E.g.: Forward all packets sent to odu.edu.i3 over
i3
47
Bridging Multiple Overlays
• Communication across overlays
• Stitch together functionality
Host A
Host C (foo.ron)
Appl.
OC-I
OC-I
OC-D
Appl.
Host B (bar.i3)
i3
i3
i3
RON
OC-I
RON
RON
tunnel
tunnel
path
48
Legacy Client Gateways – Demo
• Clients need not run OCALA locally
• Gateway has special Legacy Client IP (LCIP) module
Overlay server (dilip.i3)
Legacy gateway
Appl.
OC-I
Legacy Client
OC-I
Internet
LCIP
OV
OV
i3
DNSreq(ionhome.pli3.ocalaproxy.net)
49
Legacy Client Gateways – Demo
Access the following URL using your web browser:
http://ionhome.pli3.ocalaproxy.net:8000/ifconfig.html
50
Status
• i3 available as a service on Planetlab
• OCALA available on Linux, Window/XP; enable
legacy applications to take advantage of
–
–
–
–
i3
RON
HIP (Host Identity Protocol)
…
• Current applications
– Mobility
– Transparent access to machines behind NATs
– Secure and transparent access to services behind firewalls
51
Conclusions
• Indirection – key technique to implement basic
communication abstractions
– Multicast, Anycast, Mobility, …
• Internet Indirection Infrastructure
– Platform to deploy new services in the Internet
– Highly flexible forwarding infrastructure: allows endhosts and third-parties to choose their own routes!
i3: http://i3.cs.berkeley.edu
OCALA: http://ocala.cs.berkeley.edu
52
Other Architecture Optimizations
• Shortcuts:
– Sender can cache receiver instead of an i3 server
– Send subsequent packets directly to the receiver
• Private trigger aggregation
– Have all private triggers share the same prefix
– Insert only an anycast trigger with that prefix in i3
53
Conclusions
• i3: tremendously flexible infrastructure
– Allow end-hosts to control forwarding and
replication points in the infrastructure
– Abstract away the behavior of hosts (e.g., mask
mobility) form each other
– Provide a global and flexible identifier space
• IDs can identify virtually anything, end-hosts, services,
sessions, humans, devices, etc..
54
Enable Many Applications
• Access to machines behind NATs
• Transparent access to services/machines
behind firewalls
– Like VPNs but more secure and flexible
•
•
•
•
Protection against DoS attacks
Anycast
Transparent switching between two interfaces
…
55
Status
• Code publicly available:
http://i3.cs.berkeley.edu
– Supports Linux & Windows XP/2000 legacy
applications
– Includes a light weight Chord implementation
56
Private Trigger Aggregation (Problem)
• Each host maintains a private trigger in i3 for each other
host it communicate with
• Too many private triggers
– E.g., can reach 100 after browsing for 5 min!
• Every packet goes through an i3 server even if users
don’t want this
(idAB,data)
A
idAB A
(idAC,data)
idAC A
B
C
idAD A (idAD,data)
D
57
Private Trigger Aggregation (Solution)
• Chose all private triggers to have the same
prefix A
• Keep only an anycast trigger with prefix A in
infrastructure
(idAB,data)
A
(idAC,data)
idA* A
B
C
(idAD,data)
D
58
Private i3 Nodes (Problem)
• The resilience and truthworthiness of i3
infrastructure may not be good enough for
various users
– E.g., a company using i3 to provide transparent
and secure access for remote workers
59
Private i3 Nodes (Solution)
• Allow customers to add their i3 nodes to infrastructure
using anycast and shortcuts
ACME Inc
S
(idAS, data)
cache
idA* A
idAS A
ACME i3 server
60
Service Composition: Research
Questions
• How to locate and compose services?
• How to distribute state across hosts and
middle-boxes?
• How to transparently recover when a middlebox fails? How is the state recovered?
61
Shortcuts (Problem)
• Each packet is traversing an i3 server no
matter whether the user wants/needs to or
not
62
Shortcuts (Solution)
• Associate an “allow-caching” bit with both packets
and triggers
• If both the packet and trigger have the bit set 
sender can cache receiver’s address
Host A
LA
Host B (IPB)
(idBA,data)
LB
idBA A
1
1
cache=IPB
2
3
63
Shortcuts: Discussion
• Shortcuts are allowed only if both the sender
and receiver agree
• i3 used as a lookup infrastructure
• Indirection still needed for
– Mobility
– Symmetric NAT & Firewall traversal
– Anonymity
64
Download