Bulletinboard DHT and wireguard-p2p https://github.com/manuels - - PowerPoint PPT Presentation

bulletinboard dht and wireguard p2p
SMART_READER_LITE
LIVE PREVIEW

Bulletinboard DHT and wireguard-p2p https://github.com/manuels - - PowerPoint PPT Presentation

Bulletinboard DHT and wireguard-p2p https://github.com/manuels FOSDEM 2018 February 2 nd Mission Statement Connect any computers by just knowing their public keys 2 Bulletinboard: Kademlia Protocol 3 Bulletinboard: General Purpose DHT


slide-1
SLIDE 1

Bulletinboard DHT and wireguard-p2p

https://github.com/manuels FOSDEM 2018 February 2nd

slide-2
SLIDE 2

2

Mission Statement

Connect any computers by just knowing their public keys

slide-3
SLIDE 3

3

Bulletinboard: Kademlia Protocol

slide-4
SLIDE 4

4

Bulletinboard: General Purpose DHT

  • UDP-based, implemented in Rust
  • DBus Service

– Put

Put(str str app_id app_id, , byte[] byte[] key key, , byte[] byte[] value value)

– Get

Get(str str app_id app_id, , byte[] byte[] key key) → byte[][] byte[][] values values

– TODO: Subscribe(byte app_id, byte[] key)

→ byte[][] values

  • Max. value size: Soft: MTU, Hard (2KB)
slide-5
SLIDE 5

5

  • UDP-based
  • Using Noise protocol
  • Almost Linux mainline kernel

$ wg genkey $ wg genkey 6KRW+XV/Ef6+zDtS6fO0Ype7qXcUzSs0lZDCVjWLyWg= 6KRW+XV/Ef6+zDtS6fO0Ype7qXcUzSs0lZDCVjWLyWg= $ wg genkey | wg pubkey $ wg genkey | wg pubkey +LrzGOqVx21DJ5yOmpgvXdTmnOm4EsH1Z3XtCnix9QU= +LrzGOqVx21DJ5yOmpgvXdTmnOm4EsH1Z3XtCnix9QU=

Wireguard VPN

slide-6
SLIDE 6

6

wireguard-p2p: Concept

wg on lo wg-p2p lo port A STUN lo port B lo port C host B host C DHT Internet host A

slide-7
SLIDE 7

7

wireguard-p2p: Confgure

# /etc/wireguard-p2p.conf [wg0] Peer1=L33UsFS1bqI914MZ7sHMUTF... Peer2=ANGjhuZ5bwm0cUAKZMUi4ed... Peer2=qgJoFLslpa/icBSG1N6f4hO... ... $ wireguard-p2p daemon

slide-8
SLIDE 8

8

Wireguard Network Manager Plugin

slide-9
SLIDE 9

9

Packaging

  • Bulletinboard

– Debian and Fedora packages available – cargo install bulletinboard

  • wireguard-p2p

– cargo install wireguard-p2p

(Rust nightly required)

slide-10
SLIDE 10

10

Code: https://github.com/manuels