Sign inSign up

snowstar/tap-demo

By snowstar

•Updated over 7 years ago

Image
0

163

snowstar/tap-demo repository overview

⁠Supported tags and Dockerfiles

⁠Source code

Tap Demo⁠

⁠Description

pipeline status

tap tunnel via udp demo, this demo creates a virtual tap network interface, and send packets from tap devices to other nodes and vice versa.

⁠Features

  • auto discovery other nodes using multicast
  • encrypt
  • auto assign ip address
  • use IPC to add nodes manually

⁠How to use this image

⁠Requirements

  • kernel tuntap support

⁠(Optional) Create docker network

docker network create tap-tunnel

⁠Start

⁠Option 1: scan manually
⁠Start service
# start peer 1
docker run --name peer-1 --rm --cap-add=NET_ADMIN --device /dev/net/tun:/dev/net/tun --network tap-tunnel snowstar/tap-demo start
# start peer 2
docker run --name peer-2 --rm --cap-add=NET_ADMIN --device /dev/net/tun:/dev/net/tun --network tap-tunnel snowstar/tap-demo start
# or start more
⁠Scan node
docker exec peer-1 peers scan
docker exec peer-2 peers scan
⁠Option 2: auto discovery
# start peer 1
docker run --name peer-1 --rm --cap-add=NET_ADMIN --device /dev/net/tun:/dev/net/tun --network tap-tunnel snowstar/tap-demo start -a
# start peer 2
docker run --name peer-2 --rm --cap-add=NET_ADMIN --device /dev/net/tun:/dev/net/tun --network tap-tunnel snowstar/tap-demo start -a
# or start more
⁠Option 3: add peers manually later
⁠Start service
# start peer 1
docker run --name peer-1 --rm --cap-add=NET_ADMIN --device /dev/net/tun:/dev/net/tun --network tap-tunnel snowstar/tap-demo start
# start peer 2
docker run --name peer-2 --rm --cap-add=NET_ADMIN --device /dev/net/tun:/dev/net/tun --network tap-tunnel snowstar/tap-demo start
# or start more
⁠Add peers
docker exec peer-1 peers add peer-2 peer-2:9909
docker exec peer-2 peers add peer-1 peer-1:9909

⁠Assign IP

docker exec peer-1 ip a add 10.0.0.1/24 dev tap0
docker exec peer-1 ip l set mtu 1460 tap0

docker exec peer-2 ip a add 10.0.0.2/24 dev tap0
docker exec peer-2 ip l set mtu 1460 tap0

⁠Test

Notice: It could take 1 or 2 minutes to let every node discovery and establish connection with each other if using auto mode

docker exec peer-1 ping 10.0.0.2

docker exec peer-2 ping 10.0.0.1

⁠Benchmark

Hardware: i7-6700 HQ, 8 G RAM, Intel 545s 512G SSD

Software: Arch Linux, Docker 18.09.6-ce, Nginx 1.14.0

Download directly
Direct

Download via tunnel
Via tunnel

Tag summary

Content type

Image

Digest

Size

48 MB

Last updated

over 7 years ago

docker pull snowstar/tap-demo