generated at
闇ネットのつなぎかた(はじめての人向け)
このページでは、闇ネットゲートウェイをつくって闇ネットに接続する方法を紹介します
この記事の手順でセットアップを行うと、RaspberryPiが闇ネットゲートウェイとして動作するようになり、LANの他のホストはRaspberryPi経由で闇ネットに接続できるようになります
tincによるVPN接続でtincサーバ(複数ある)を経由して闇ネットに接続される
GSNetと自宅のローカルネットはNATによって分離される
ローカルネットのホストからGSNetのホストに対して通信を開始することはできるが、逆はできない
ローカルネットとインターネットがブロードバンドルータのNATによって分離されているのと同様のことが行われる
同一闇ネット拠点に2台目以降のホストを増やす場合は、このドキュメントではなく、 闇ネットゲートウェイ以外のホストを闇ネットにつなぐ を参照してください


1. 用意するもの
Raspberry Pi
Raspberry Pi 4 が推奨
Raspberry Pi 3 で動作確認済み
Raspberry Pi Zero で動作確認済み
苦労している人が多いので非推奨
Raspberry Pi ZeroでGSNet Gateway にひととおり目を通してからはじめることをおすすめする
8GB以上のmicroSD
SDリーダ/ライタ
LANケーブル
ルータとRaspberryPiは有線接続を推奨
ACアダプタ
Raspberry Pi 4 の場合は5V/3A以上でType-Cコネクタのもの
Raspberry Pi 3 / Raspberry Pi Zero の場合は5V/2A以上でmicroBコネクタのもの

購入する場合はRaspberryPi 入門セットも参考に

2. ゲートウェイのIPアドレスとノード名を決める
次のセクションの「3. RaspberryPiのセットアップ」で必要になるので、どの割当アドレスブロックを使うかをまだ決めていない場合はいま決める
闇ネットのホスト一覧を眺めて、空いているアドレスブロックを見つける
Discordの #闇ネット チャンネルでGSNOCのメンバーと相談して最終的な割当アドレスブロックを決める
次に、同じくDiscordの #闇ネット チャンネルでGSNOCのメンバーと相談して <ノード名> <ゲートウェイのIPアドレス> を決める
<ゲートウェイのIPアドレス> は割当アドレスブロックの中の先頭のアドレスなど、わかりやすいアドレスにするのがおすすめ
後で出てくる LAN側IPアドレス とは別物なので注意
<ノード> 名は英数のみ使用可能
記号とアルファベットの大文字は使用不可
この2つの値は後でセットアップスクリプトを実行するときに引数として使用する
自宅以外に拠点を増やす場合など、2台目以降の闇ネットゲートウェイをセットアップする場合は、闇ネットのホスト一覧に存在するホスト名とかぶらないようにノード名を決めて、自分の割当アドレスブロックの中から <ゲートウェイのIPアドレス> として使用するIPアドレスを自由に選べばOK

3. RaspberryPiのセットアップ
3.1. 起動用microSDの作成
次に挙げるものは不要
microSDの初期化(フォーマット)
ディスプレイ
キーボード
マウス
https://www.raspberrypi.org/software/ からRaspberry Pi Imagerをダウンロードしてインストールする
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でログインする
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でログインし、次のコマンドを実行する
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経由で闇ネットにアクセスできるようになる
各ルータごとの設定方法は 闇ネットへの静的経路の設定方法 の「方法1」を参照のこと

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

最後に、 http://10.0.0.1 が見れていれば闇ネットに問題なく接続できている

おめでとう!闇ネットへようこそ!
闇ネットに繋がったらやることを読んで、闇ネットでの活動をはじめよう。

6. FAQ
セットアップに失敗した!
/etc/tinc/gsnet を削除して、再度セットアップスクリプトを実行してみてください
sh
sudo rm -rf /etc/tinc/gsnet curl -L https://bit.ly/36lbvOr > /tmp/gsn; sudo sh /tmp/gsn <ノード名> <ゲートウェイのIPアドレス>

間違えたのでやりなおしたい
/etc/tinc/gsnet を削除して、再度セットアップスクリプトを実行してみてください
sh
sudo rm -rf /etc/tinc/gsnet curl -L https://bit.ly/36lbvOr > /tmp/gsn; sudo sh /tmp/gsn <ノード名> <ゲートウェイのIPアドレス>

VPN接続(tinc)を一時的に停止したい
接続を一時的に切断したい場合は、以下のコマンドを実行する
sh
sudo systemctl stop tinc@gsnet.service
再開するには、
sh
sudo systemctl start tinc@gsnet.service

接続できない
まず、対向のtincサーバにpingが飛ぶか確認する
次に、 tinc@gsnet.service の状態やログを確認してみる
sh
# サービス状態の見方 systemctl status tinc@gsnet.service # ログの見方 journalctl -f -n 100 -u tinc@gsnet.service

サービスの状態を確認したい
sh
systemctl status tinc@gsnet.service

ログを確認したい
sh
journalctl -f -n 100 -u tinc@gsnet.service


メモ:
ページのタイトルがよくない気がする
候補
自宅のLANにはじめての闇ネットゲートウェイを設置しよう
はじめて闇ネットに繋ぐガイド
はじめての人向けの闇ネット接続ガイド
闇ネットのつなぎかた(はじめての人向け)
tinc接続自体のガイドは別途ページをつくる
RaspberryPi 4 が全然手に入らないので、RaspberryPiに限らずDebian系のLinux前提に修正する

See Also: