DHT and NAT

3,228 views

Published on

A short presentation about Distributed Hash Tables (DHT) p2p systems and how they cope with Network Address Translators (NAT).
The presentation aims at giving a bird-perspective of the subject, without entering too much into the details.

Published in: Technology, Health & Medicine
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,228
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

DHT and NAT

  1. 1. DHTs and NAT Valerio Schiavoni INRIA 29/06/2009
  2. 2. plan • Real-world examples • Ongoing research
  3. 3. we know • how NATs work • how DHTs work • classic NAT traversal techniques • UPnP, relaying, hole punching
  4. 4. DHT assumptions • “Every node in the overlay is able to exchange messages with any other overlay node” • But it’s not true in several cases
  5. 5. Kademlia • XOR as distance metric • single routing table (bucket list) • closer/farther buckets as finger table and routing table
  6. 6. Kademlia and NATs • UPnP if possible • ‘Invisible nodes’ are cached [Freedman05] • Lookups done in parallel [Maymounkov] • No details on specific NAT types
  7. 7. BitTorrent • tcp-layer for file-transport • udp-layer for searches • built-in DHT (CHORD alike) • for tracker-less file-sharing
  8. 8. BitTorrent and NATs • PORT msg for NAT traversal: • tcp-layer pass ip:port to the udp-layer • only discussed: http://lists.ibiblio.org/pipermail/ bittorrent/2007-June/002116.html • In [Lai05] support for Restricted/Port Restricted in the tcp-layer
  9. 9. Maidsafe-DHT • Kademlia++ built-in NAT traversal, C++ • force-k, report dead-nodes in responses • UDP hole-punching • Nodes in the routing table used as rendezvous points to forward OPEN_HOLE messages • UPnP
  10. 10. BruNet • UCLA, Chord-alike, C#, CoRR’07 • a library to build NAT-resilient DHTs • 2-phase protocol • request connection • handshake: nodes exchange their public/private addresses
  11. 11. BruNet and NATs • Due to 2-phase, nodes learn public address • Rendez-vous nodes can be NATted • It doesn’t work if boths are SYM NATs • Claims to perform distributed tunneling for problematic routing problems (SYM NATs, firewalls, BGP outages) • no references on papers
  12. 12. non-transitive connectivity • [Freedman05] describes the non-transitive connectivity problem • NATs induce this problem X B A C
  13. 13. non-transitive connectivity • [Freedman05] report solutions adopted by 3 majors DHT implementations • Defined as hacks, not as protocol-redesign • caching unreachable nodes • iterative routings
  14. 14. NTC in FreePastry • Exchange link state informations among leaf sets • restricted to local leafset, not finger table • probabilistic approach
  15. 15. Source-routing to solve NTC • In [Dedinski,ISCC’07] a generic source- routing solution is proposed to NTC • To build routing tables, nodes exchange full paths • Optimizations • probing, load-balancing • Evaluation with Chord
  16. 16. UIP: Unmanaged Internet Protocol • Ford, 2003, tech report • Routing protocol • Adapt Kademlia, but relax basic assumption • don’t assume global connectivity • physical and virtual links • support source routing • recursive tunnelling
  17. 17. UIP: recursive tunnelling arge m. in a ns a sical rop- ward- Figure 9: Forwarding by Recursive Tunneling
  18. 18. UIP • Ideas are there • No explicit reference to NAT traversal techniques • No evaluations
  19. 19. References • “Non-Transitive Connectivity and DHTs”, Freedman et alii, WORLDS’05 • “A Source Routing Solution to Non-Transitivity Connectivity Problems in DHTs”, Dedinksi et alii, ISCC’07 • “Implementing NAT traversal on BitTorrent”,Lai’05, unpublished • “WoW: Self organizing...”, Ganguly et ali, HDPC’07 • “A Symphony Conducted by Brunet”, Boykin2007, tech report • “Scalable Internet Routing on Topology-Independent Node Identities”, Ford, 2003

×