私のネットワークを紹介します / Introducing My Network

私のネットワークを紹介します / Introducing My Network
図:実際に使っているRaspberry Pi 5。/ Fig.: The Raspberry Pi 5 I actually use.

(Updated on: 2025/06/09)
(English version will be updated soon™️)


ネットワーク構成(物理)

  • インターネット
    • お家のルーター
      • メインPC
      • NAS
      • メインサーバー嫌ホームラボ
      • Pi-hole専用サーバー

物理マシーンの補足説明(クリックで折りたたむ)


  • インターネット
    • 賃貸アパートの、100Mbps WANです。何も特別なものはない。
    • ただし、各自の部屋に回線を配るのにルーターを使っている。
  • お家のルーター
    • 何の特徴もない、TP-Linkさんの既製品
    • 主な役割は物理マシーン同士にギガビット通信ができるようにLANポートを提供すること
    • ルーターの下にもう一つのルーターがあることによって、固定IPを取得したり、UPnPフォーワディングをしたりすることができなかったため、すべての冒険は始まったのであった。
  • メインPC
    • 家の中で一番高い、私としては第一の資産。
    • 元々自作PCガチ勢だったため、Ryzen 7 5800Xと32GB RAM、そしてRadeon RX 6900 XTを搭載したガッツリのWindowsゲーミングPC。
    • 普段のお仕事と開発は全部これでやっているが、いろんなサーバーへのSSHキーを持っていること以外には、ネットワーク的な観点では大きな役割はしていない。
  • NAS
    • 怪しいブートローダー(Arc Loader、全然怪しくありません)によって洗脳され自分がSynologyのDS920+だと信じてしまった、ただのJ4125 ITXマザーボードとハードディスク2個の組み合わせ。
    • いろんな経路でマシーンたちのバックアップデータや、私自身の個人的なアーカイブが格納されている。
  • メインサーバー嫌ホームラボ
    • 嗚呼、その名もRaspberry Pi 5 8GB
    • 秋月電子でたった2万円で買った、のにも関わらず驚くほどの活躍をしてくれている、まさに今の私のホームインフラのヒーロー。
    • OSはOEMのRaspberry Pi OS(と書いてDebian系だと読む)
    • 何のサービスが導入されているかは、ソフトウェア構成で説明。
    • 新しいサービスを試したいとか、作ったアプリをデプロイするとかの状況になるとこのマシーン一択。
  • Pi-hole専用サーバー
    • その名もRaspberry Pi Zero 2W(Wモデルなのに無線は使ってない)
    • ローカルDNSレイヤーで広告を遮断するPi-holeを導入
    • SDカードに負担をかけないDietPiというDebian系のディストリビューションを使っている

ネットワーク構成(ソフトウェア)

ソフトウェアの補足説明(クリックで折りたたむ)


  • Tailscale
    • 「テイルスケール」と読む
    • Wireguardをベースにした超らくらくメッシュVPNソリューション
    • 設定が簡単すぎてチート級に使いやすい
    • が、Caddyと連携して内部HTTPSを設定するにはちょっと工数がかかった
    • 後ほどCaddyと一緒にもっと詳しく文書化したい
  • Caddy
    • Nginxなんて忘れてしまうほど便利な簡単リバースプロキシーソリューション
    • Caddyfileという独自のフォーマットを使っていろんなリダイレクトや経路設定が可能
  • Vaultwarden
    • 「Docker使っておうちで何する?」と聞かれた時に一番目にでるコンテナイメージ
    • docker runコマンド1行で2要素認証(OTP)とパスキーまで格納できるパスワードマネージャが出来上がる
    • アクセスにHTTPSを要求するため、そこ周りのトラブルシューティングが少しややこしい
  • Immich
    • 「Docker使っておうちで何する?」と聞かれた時に二番目にでるコンテナイメージ
    • 脱グーグルの第一歩である、Google Photosからの独立を手伝う強力なイメージバックアップ・ギャラリーサーバー
    • マシンラーニングモジュールを搭載して自動で顔認識やカテゴリ整理、重複整理などもGoogle Photos並みにしてくれる
  • Gogs
    • 「Docker使って(ry
    • おうちGitHubと言ったらピッタリ合うGitサーバー
    • レポジトリーバックアップ、GitのWebhookを活用したオンプレCI/CDパイプライン等、多様な使い道
    • 何ならGitHub Markdownを使ったブログプラットフォームとしても活用できる
  • FileBrowser
    • ImmichがGoogle Photosの代わりだとしたらこちらはGoogle Driveの代わりに使える
      • まあGoogle全体を代替するんだったらNextcloudなどもあるが私には重すぎた
    • 自動で消えるダウンロードリンクが作れるのが一番のメリット
    • CDN用でも使えそうだったがそっちには向いてない感じ
  • Pi-hole
    • これ一つでラズベリーパイ財団の売上高を引き上げたと言っても過言ではない、広告過剰時代の救援者
    • RPi Zeroのような超低電力 ARM SBCで稼働することを前提して設計
    • DNSの階層(ネットワーク)で特定の広告やトラッキングに使われるドメインを遮断する
      • アプリ階層で動くアドブロッカー拡張機能と比べて検知しにくいし、リストに登録されているドメインなら全部遮断するので簡易ファイアウォールとしても機能する
      • そのためTailscaleとの相性も抜群。DNSをTailnetのDNSにオーバーライドすればTailnetの中のすべてのデバイスがどこに居てもPi-holeの範囲に入る
  • Cloudflare Tunnel
    • 固定IP無しでもcloudflaredパッケージをインストールするだけでインターネットにサービスを公開できる魔法のリバースプロキシ
    • アウトバウンドトラフィックのみなので厳密ではリバースプロキシではないが、あのCloudflareのセキュリティ機能を全部使いこなしながら簡単にHTTPSホスティングができるのは魅力的
    • ~/.cloudflare/config.ymlでカスタマイズも可能、もちろん設定なしてCloudflareの管理者ページで設定するのも可能
  • Apache Tomcat
    • 懐かしと言ったら懐かしの、定番のJavaウェブアプリケーションサーバー
    • 最近のSpring Bootはこれを内装しているため、実際の環境では少し見えなくなったかも
    • 私のサーバーにある理由は、ポートフォリオ用のJSP/Servletアプリがデプロイされているため
  • Ghost
    • WordPressより使いやすく、でも機能はマシマシなCMS嫌ホームページサービス
    • 個人ブログにも、中型ECサイトとしても使える
    • 私の場合、ここと同じポストを私のドメイン(dev.kade.jp)でホスト中
  • Arc Loader
    • TCRP(TinyCore RedPill)系の使いやすいDSMブートローダー
    • 「使いやすい」は私の感想で、人によってARPLやTCRPが楽かもしれない
    • Synology社の独自OSをグレーな方法で使うので、自己責任の上使うこと

これからの抱負

  • Java周りの、いわゆる「模型開発インフラ」を構築したい
    • CI/CDとか、デプロイスクリプトとか、テストサーバーとか
  • 今Raspberry Piの中に混在しているプロダクション環境とテスト環境を分離したい
    • まあ、これはラズパイをもう一個買うか、それとももっとパワフルなサーバーをプロダクションに使うかの問題
  • 内部ネットワークを2.5Gにしたい
    • 優先順位は低いが、欲を言うんだったらってこと