闇ネットのつなぎかた(はじめての人向け)
この記事の手順でセットアップを行うと、RaspberryPiが
闇ネットゲートウェイとして動作するようになり、LANの他のホストはRaspberryPi経由で
闇ネットに接続できるようになります
tincによるVPN接続でtincサーバ(複数ある)を経由して
闇ネットに接続される
GSNetと自宅のローカルネットはNATによって分離される
ローカルネットのホストからGSNetのホストに対して通信を開始することはできるが、逆はできない
ローカルネットとインターネットがブロードバンドルータのNATによって分離されているのと同様のことが行われる
1. 用意するもの
Raspberry Pi
Raspberry Pi 4 が推奨
Raspberry Pi 3 で動作確認済み
Raspberry Pi Zero で動作確認済み
苦労している人が多いので非推奨
8GB以上のmicroSD
SDリーダ/ライタ
LANケーブル
ルータとRaspberryPiは有線接続を推奨
ACアダプタ
Raspberry Pi 4 の場合は5V/3A以上でType-Cコネクタのもの
Raspberry Pi 3 / Raspberry Pi Zero の場合は5V/2A以上でmicroBコネクタのもの
2. ゲートウェイのIPアドレスとノード名を決める
次のセクションの「3. RaspberryPiのセットアップ」で必要になるので、どの割当アドレスブロックを使うかをまだ決めていない場合はいま決める
Discordの
#闇ネット
チャンネルで
GSNOCのメンバーと相談して最終的な割当アドレスブロックを決める
次に、同じくDiscordの
#闇ネット
チャンネルで
GSNOCのメンバーと相談して
<ノード名>
と
<ゲートウェイのIPアドレス>
を決める
<ゲートウェイのIPアドレス>
は割当アドレスブロックの中の先頭のアドレスなど、わかりやすいアドレスにするのがおすすめ
後で出てくる LAN側IPアドレス
とは別物なので注意
<ノード>
名は英数のみ使用可能
記号とアルファベットの大文字は使用不可
この2つの値は後でセットアップスクリプトを実行するときに引数として使用する
自宅以外に拠点を増やす場合など、2台目以降の
闇ネットゲートウェイをセットアップする場合は、
闇ネットのホスト一覧に存在するホスト名とかぶらないようにノード名を決めて、自分の割当アドレスブロックの中から
<ゲートウェイのIPアドレス>
として使用するIPアドレスを自由に選べばOK
3. RaspberryPiのセットアップ
3.1. 起動用microSDの作成
次に挙げるものは不要
microSDの初期化(フォーマット)
ディスプレイ
キーボード
マウス
Raspberry Pi Imagerを起動する
Ctrl + Shift + x
を押して Advanced Options
を呼び出す
以下のスクリーンショットのようにホスト名、sshの有効化、
ssh公開鍵、タイムゾーンを設定する
ホスト名は <ノード名>
と同じものを入力する
設定ができたら SAVE
を押す
Operating System
は RASPBERRY PI OS LITE
を、 Storage
は接続されているmicroSDカードアダプタをそれぞれ選択する

mj
WRITE
を押す
続行するか訊かれるので YES
を押す
Write Successful
と表示されたら書き込み成功。 CONTINUE
を押す
microSDをRaspberryPiに挿し替える
RaspberryPiのLANコネクタとルータのLAN側をLANケーブルで接続する
RaspberryPiに電源を接続する
RaspberryPiにsshでログインする
ログインができたらRaspberryPi OSのセットアップは完了
3.2. Raspberry Pi のLAN側IPアドレスの固定
固定するLAN側IPアドレスを決める
例えばルータのIPアドレスが 192.168.0.1
だとすると、 192.168.0.2
がおすすめ
以下のいずれかの方法で Raspberry Pi のIPアドレスを固定する
方法1
: ブロードバンドルータのDHCP固定割当機能を使う(推奨)
Raspberry Pi 側のネットワーク設定を変更しなくていいのがメリット
ルータの機種によってはできないので、その場合は諦めて 方法2
にしよう
方法2
: RaspberryPi OS自体に設定する
LAN側IPアドレスの固定ができたら、pingを打って応答があることを確認する
3.3. tincセットアップスクリプトの実行
❗❗注意❗❗「2. ゲートウェイのIPアドレスとノード名を決める」のセクションを読みましたか?読んでいない場合は実行前に必ず読んでください
RaspberryPiにsshでログインし、次のコマンドを実行する
sh url="https://raw.githubusercontent.com/geek-space-hq/setup_gsngw/master/setup_gsngw.sh";(curl -L "${url}" || wget -O - "${url}") > /tmp/s; sudo sh /tmp/s <ノード名> <IPアドレス>
<ノード名>
と <ゲートウェイのIPアドレス>
は「2. ゲートウェイのIPアドレスとノード名を決める」のセクションで決めたものに置き換える
このスクリプトの詳細はこちら
実行したら、以下のように公開鍵が表示されるまで待つ
表示された公開鍵(文字が青い部分)を
Discordの
技術部 > 闇ネットHQ
スレッドに貼り付けて、「闇ネットゲートウェイの設定が完了したので鍵登録よろしく」と投稿する
ここまでできたら、Enterを押してRaspberryPiを再起動する
これでRaspberryPi自体の設定はおしまい。
4. 静的経路の設定
ルータに 宛先: 10.0.0.0/8, ゲートウェイ: <RaspberryPiのLAN側IPアドレス>
という静的経路(ルーティング)を設定する
設定すると、LAN内のすべてのホストがRaspberryPi経由で闇ネットにアクセスできるようになる
5. 疎通確認
LAN内のコンピュータから 10.0.0.1
にpingが通ればok
sh$ ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1): 56 data bytes
64 bytes from 10.0.0.1: icmp_seq=0 ttl=63 time=24.003 ms
92 bytes from console.gl-inet.com (192.168.8.1): Redirect Host(New addr: 192.168.8.2)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 a6c3 0 0000 3f 01 01aa 192.168.8.147 10.0.0.1
64 bytes from 10.0.0.1: icmp_seq=1 ttl=63 time=22.031 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=63 time=28.767 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=63 time=28.912 ms
64 bytes from 10.0.0.1: icmp_seq=4 ttl=63 time=70.134 ms
64 bytes from 10.0.0.1: icmp_seq=5 ttl=63 time=28.695 ms
^C
--- 10.0.0.1 ping statistics ---
6 packets transmitted, 6 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 22.031/33.757/70.134/16.482 ms
おめでとう!闇ネットへようこそ!
6. FAQ
セットアップに失敗した!
/etc/tinc/gsnet
を削除して、再度セットアップスクリプトを実行してみてください
shsudo rm -rf /etc/tinc/gsnet
curl -L https://bit.ly/36lbvOr > /tmp/gsn; sudo sh /tmp/gsn <ノード名> <ゲートウェイのIPアドレス>
間違えたのでやりなおしたい
/etc/tinc/gsnet
を削除して、再度セットアップスクリプトを実行してみてください
shsudo rm -rf /etc/tinc/gsnet
curl -L https://bit.ly/36lbvOr > /tmp/gsn; sudo sh /tmp/gsn <ノード名> <ゲートウェイのIPアドレス>
VPN接続(tinc)を一時的に停止したい
接続を一時的に切断したい場合は、以下のコマンドを実行する
shsudo systemctl stop tinc@gsnet.service
再開するには、
shsudo systemctl start tinc@gsnet.service
接続できない
まず、対向のtincサーバにpingが飛ぶか確認する
次に、 tinc@gsnet.service
の状態やログを確認してみる
sh# サービス状態の見方
systemctl status tinc@gsnet.service
# ログの見方
journalctl -f -n 100 -u tinc@gsnet.service
サービスの状態を確認したい
shsystemctl status tinc@gsnet.service
ログを確認したい
shjournalctl -f -n 100 -u tinc@gsnet.service
メモ:
ページのタイトルがよくない気がする
候補
自宅のLANにはじめての闇ネットゲートウェイを設置しよう
はじめて闇ネットに繋ぐガイド
はじめての人向けの闇ネット接続ガイド
闇ネットのつなぎかた(はじめての人向け)
tinc接続自体のガイドは別途ページをつくる
RaspberryPi 4 が全然手に入らないので、RaspberryPiに限らずDebian系のLinux前提に修正する
See Also: