異なる環境間で private network を構築して接続する
概要
Meshbird - distributed private networking.
異なる環境間で private network を構築できる Go 製のツール Meshbird を試してみる。
クライアント間の peer については、BitTorrent と同じような DHT(分散ハッシュテーブル) ネットワークを使用しているらしい。
Intro
Meshbird create distributed private networking between servers, containers, virtual machines and any computers in different datacenters, different countries, different cloud providers. All traffic transmit directly to recepient peer without passing any gateways. Meshbird do not require any centralized servers. Meshbird is absolutly decentralized distributed private networking.
For example, user can create private network between DigitalOcean’s droplets in each datacenter and link it together by executing one command. All traffic will be encrypted with strong AES-256.
環境
アカウント別の AWS インスタンス2台を用意
インストール
各インスタンスでインストール
$ curl http://meshbird.com/install.sh | sudo sh
/usr/local/bin/meshbird
にインストールされる
network secret key 作成
どちらかのインスタンスで secret key 作成
$ sudo meshbird new
[main] 2016/02/09 02:27:50 key: 16a45a9e6fbc5db5c2f4ca7c875faa600a070000ffff0000
private network に join する
各インスタンスで以下コマンド実行
export MESHBIRD_KEY="16a45a9e6fbc5db5c2f4ca7c875faa600a070000ffff0000"
$ sudo meshbird join
各インスタンスに tun0
インターフェイスが作成される
1台目
$ ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.7.145.222 P-t-P:10.7.145.222 Mask:255.255.0.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1400 Metric:1
RX packets:68 errors:0 dropped:0 overruns:0 frame:0
TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:16082 (15.7 KiB) TX bytes:19530 (19.0 KiB)
2台目
$ ifconfig tun0
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1400
inet 10.7.9.125 netmask 255.255.0.0 destination 10.7.9.125
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC)
RX packets 83 bytes 10862 (10.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 74 bytes 24482 (23.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
接続してみる
1台目→2台目に対して接続
$ ping 10.7.9.125
PING 10.7.9.125 (10.7.9.125) 56(84) bytes of data.
64 bytes from 10.7.9.125: icmp_seq=1 ttl=64 time=4.79 ms
64 bytes from 10.7.9.125: icmp_seq=2 ttl=64 time=3.74 ms
64 bytes from 10.7.9.125: icmp_seq=3 ttl=64 time=3.71 ms
64 bytes from 10.7.9.125: icmp_seq=4 ttl=64 time=3.67 ms
ssh接続も接続出来る
$ ssh ******@10.7.9.125
The authenticity of host '10.7.9.125 (10.7.9.125)' can't be established.
ECDSA key fingerprint is 3c:4f:51:d5:76:4c:03:8e:b3:d4:4d:ad:74:7a:42:b2.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.7.9.125' (ECDSA) to the list of known hosts.
$
meshbird を停止すれば tun0 も削除される