闇ネットのつなぎかた(はじめての人向け)
https://scrapbox.io/files/62ecf7b8baf185001ff02f6b.jpeg
この記事の手順でセットアップを行うと、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公開鍵、タイムゾーンを設定する ホスト名は<ノード名>と同じものを入力する
https://gyazo.com/4878b02c02e6faa3a00adfb54df6a3db
設定ができたらSAVEを押す
Operating System は RASPBERRY PI OS LITE を、Storage は接続されているmicroSDカードアダプタをそれぞれ選択する
https://gyazo.com/a9db74a789c499863e6f3851b14090a7mj
WRITE を押す
続行するか訊かれるのでYESを押す
https://gyazo.com/eae38c7f66688655de9fc210c3565d58
Write Successful と表示されたら書き込み成功。CONTINUEを押す
https://gyazo.com/47712f2b7aa1d32aa41977bfad026b6d
microSDをRaspberryPiに挿し替える
RaspberryPiのLANコネクタとルータのLAN側をLANケーブルで接続する
RaspberryPiに電源を接続する
RaspberryPiにsshでログインする
code:sh
ssh pi@<ホスト名>.local
ログインができたら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でログインし、次のコマンドを実行する
code:sh
<ノード名> と <ゲートウェイのIPアドレス> は「2. ゲートウェイのIPアドレスとノード名を決める」のセクションで決めたものに置き換える
このスクリプトの詳細はこちら
実行したら、以下のように公開鍵が表示されるまで待つ
https://scrapbox.io/files/620e7bdafba0f1001d9de3fe.png
表示された公開鍵(文字が青い部分)をDiscordの 技術部 > 闇ネットHQ スレッドに貼り付けて、「闇ネットゲートウェイの設定が完了したので鍵登録よろしく」と投稿する ここまでできたら、Enterを押してRaspberryPiを再起動する
これでRaspberryPi自体の設定はおしまい。
4. 静的経路の設定
ルータに 宛先: 10.0.0.0/8, ゲートウェイ: <RaspberryPiのLAN側IPアドレス> という静的経路(ルーティング)を設定する
設定すると、LAN内のすべてのホストがRaspberryPi経由で闇ネットにアクセスできるようになる
5. 疎通確認
LAN内のコンピュータから 10.0.0.1 にpingが通ればok
code: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 を削除して、再度セットアップスクリプトを実行してみてください
code:sh
sudo rm -rf /etc/tinc/gsnet
間違えたのでやりなおしたい
/etc/tinc/gsnet を削除して、再度セットアップスクリプトを実行してみてください
code:sh
sudo rm -rf /etc/tinc/gsnet
VPN接続(tinc)を一時的に停止したい
接続を一時的に切断したい場合は、以下のコマンドを実行する
code:sh
sudo systemctl stop tinc@gsnet.service
再開するには、
code:sh
sudo systemctl start tinc@gsnet.service
接続できない
まず、対向のtincサーバにpingが飛ぶか確認する
次に、tinc@gsnet.serviceの状態やログを確認してみる
code:sh
# サービス状態の見方
systemctl status tinc@gsnet.service
# ログの見方
journalctl -f -n 100 -u tinc@gsnet.service
サービスの状態を確認したい
code:sh
systemctl status tinc@gsnet.service
ログを確認したい
code:sh
journalctl -f -n 100 -u tinc@gsnet.service
メモ:
ページのタイトルがよくない気がする
候補
自宅のLANにはじめての闇ネットゲートウェイを設置しよう
はじめて闇ネットに繋ぐガイド
はじめての人向けの闇ネット接続ガイド
闇ネットのつなぎかた(はじめての人向け)
tinc接続自体のガイドは別途ページをつくる
RaspberryPi 4 が全然手に入らないので、RaspberryPiに限らずDebian系のLinux前提に修正する
See Also: