FrontierStack ユーザマニュアル マニュアル先頭
デスクトップ版マニュアル モバイル版マニュアル English한국어 frontierstack.app ↗
9

第 9

ネットワークと境界

LAN 上のあらゆるデバイスを把握し、ルータのライブ状態を読み取り、外の世界からサービスへ到達する — ポートを 1 つも開けずに、あるいは開けて。

サービスを動かす Mac はネットワークの中に存在し、現実のトラブルの多くはそのネットワークから始まります — WAN リンクが切れたルータ、誤ったサブネットに紛れたデバイス、何か月も前に開けたまま閉じ忘れたポート。FrontierStack は、ネットワークとその境界(LAN とインターネットの境目)を一級のオブジェクトとして扱います。ルータを直接読み取り、LAN をスキャンしてインベントリを作り、データフロー図を描き、外部へサービスを公開するための規律ある複数の方法を提供します。

本章はサーバを取り巻くネットワークを扱います。サーバ自体を SSH で連携する方法は第 8 章、ホストファイアウォール・fail2ban・セキュリティ監査は第 10 章、Cloudflare の DNS と TLS は第 7 章を参照してください。

9.1読み取り・操作できるルータとファイアウォール

FrontierStack は、管理 API があればそれを通じて、なければ SSH で、ネットワーク機器と対話します。最も緊密な連携は OPNsense(フル REST API)と Cloudflare(第 7 章)の 2 つで、より広範なルータ・ファイアウォール群はライブ状態を報告します。Router & Network ペインでアドレス・ベンダー・API キーを指定してデバイスを追加すると、AI 管理者の router_info ツールが バージョンとモデル、稼働時間、CPU・メモリ、WAN リンクとゲートウェイ(上/下)、インターフェイス、クライアント数を読み取れます — さらに FrontierStack がマップしないフィールドの生の API JSON も。読み取り専用で、デバイス自身の API を照会し、SSH は使いません。

デバイスFrontierStack の到達方法
OPNsenseフル REST API — ライブ状態、ファイアウォールルール、境界のポートフォワード(rdr)
pfSenseAPI パッケージ経由の REST
MikroTik RouterOSREST API(RouterOS v7 以降)
Ubiquiti UniFi/EdgeOSコントローラ/ゲートウェイの API キー
OpenWrtLuCI/ubus API
DD-WRTWeb 管理/SSH
ASUSWRTルータ Web API/SSH
FRITZ!BoxTR-064/Web 管理
TP-Link Omadaコントローラ API
Huawei LTE/5G(HiLink)ルータの Web API — 接続状態、4G/5G、通信事業者、電波。切断時にアラート
Huawei Wi-Fi AX/BE、EchoLife/OptiXstar ONTWeb 管理画面(公開ローカル API なし)
Huawei VRP(AR、NetEngine、USG、S、CloudEngine)/AirEngineWeb 管理画面(HTTPS)/SSH/SNMP。AirEngine AP はコントローラ経由
スクリーンショット追加予定
図 9.1. 設定済みの OPNsense ゲートウェイと、その WAN リンク・インターフェイス一覧を表示した Router & Network ペイン。撮影手順: capture: OPNsense デバイスを 1 台追加した Router & Network を開き、WAN/ゲートウェイ状態を展開して撮影
メモルータは API 資格情報がなくても見える必要はありません。Device Discovery(後述)でピン留めしたがキーを追加していない場合でも、router_info はそれがどこにピン留めされ、到達可能かを報告し — Router & Network で API キーを追加すればバージョン・ゲートウェイ・WAN・インターフェイスをライブで読み取れると案内します。

Huawei の LTE/5G ルータ:Huawei の B シリーズ、E5186/E5785、5G CPE(H112/H122/H138)は、Huawei LTE/5G Router (HiLink) プラットフォームでピン留めします(既定のアドレスは http://192.168.8.1)。ステータス確認ではルータ自身の Web API を読み、接続状態、4G/5G のネットワーク、通信事業者、電波(RSRP・RSRQ・SINR と分かりやすい評価)、Wi-Fi クライアント数はパスワードなしで、機種、ファームウェア、電波の詳細はアクセスに Web パスワードを設定すると表示します。モバイル接続を監視をオンにすると、モバイルデータが切れたときにアラートを出します。光回線が落ちるまで誰も見ないバックアップ WAN に便利です。これらのルータは Web セッションを 1~2 個しか許可せず、ログイン失敗が続くと管理ページをロックするため、FrontierStack のサインインは最大 10 分に 1 回(状態ページまでログインが必要な機種ではスイープごと)で、毎回サインアウトし、拒否されたパスワードは 30 分間再試行しません。Huawei の Wi-Fi ルータ、光回線終端装置(ONT)、VRP 機器、AirEngine アクセスポイントにもそれぞれのプラットフォームがあり、適切な Web UI、SSH ユーザ、注記を設定します。デバイス検出は Huawei の製品名を認識してプラットフォームを提案します。

OPNsense と pfSense では、API キーを設定すると継続的なファイアウォール監視(ピン留めデバイスのペインにあるトグル)が使えます。アラートのスイープごとにファイアウォール自身へゲートウェイ状態・インターフェイスのキャリア・サービスの稼働を照会します — マルチ WAN ルータがサイレントにフェイルオーバーして WAN 回線の死を隠しても(サーバは外に出られるのにサイトへのインバウンドは全滅)、原因不明の赤いドットの海ではなく、どのゲートウェイが落ち、どのポートがキャリアを失ったかを名指しで通知します。ルータには何もインストールしません。OPNsense の REST API は標準搭載、pfSense は REST API v2 パッケージのみ必要です。同じペインから OPNsense ルータをテイルネットに参加させることもできます。Mac 側で Tailscale にサインイン(Google アカウント可)して事前認証キーを発行し、デバイスペインの Tailscale セクションに貼り付けるだけで、FrontierStack が必要に応じて os-tailscale プラグインをインストールし、キーとログインサーバ(Headscale も可)を保存してサービスを API 経由で再起動します。ルータでのブラウザログインは不要です。参加後はテイルネットアドレスがフォールバックとして記憶されます。LAN アドレスが応答しなくなったとき(社外にいる、VPN 経路が落ちた、LAN 側が死んだ)、ステータス確認・監視・証明書更新は自動的に Tailscale 経由で再試行してその旨を表示し、監視は別途「LAN アドレス」のアラートを上げるので、経路の障害をルータの故障と取り違えません。

攻撃と障害の兆候。ゲートウェイを監視するのと同じスイープが、ルータ自身のトラブルも監視します。異常のあるルータはサイドバーでオレンジ+警告三角になります — 理由はホバーで表示。侵入検知プラグインを有効にした OPNsense では、同じ API 経由で直近の Suricata アラートを読み取り、件数と上位シグネチャを表示します(ファイアウォール UI を開かずに攻撃の試みを可視化。pfSense の REST API は IDS を一律に公開しないため現状は OPNsense のみ)。すべての監視対象ルータ — OPNsense、pfSense、OpenWrt ほか — では各スイープが、予期しない再起動(稼働時間の急減:クラッシュ・電源イベント・攻撃)、ルータ管理/SSH への総当たりの急増(失敗ログインの連続。最も多い送信元 IP をルータ自身のログから名指し)、リソース逼迫(メモリまたは負荷が危険なほど高い — DoS・暴走/侵害されたプロセス)、利用可能なファームウェア更新(古いファームウェア=既知の穴)も検出します。それぞれアラートを上げ、あるプラットフォームが報告できない兆候は単にスキップします — 誤った「異常なし」にはなりません。OPNsense と OpenWrt が最も多く報告し、pfSense の API はより限定的です。

証明書の期限。同じスイープがファイアウォールのトラストストア — サービスが使うすべての CA と証明書 — を読み取り、期限切れの 1 か月前に、そして期限切れ後にもアラートを上げます。これは誰も想定しない障害です:OPNsense の既定 397 日で発行された OpenVPN サーバ証明書は 1 年後に静かにすべてのリモートユーザを締め出し、Web GUI 自身の HTTPS 証明書が切れれば管理画面はブラウザ警告に変わります。デバイスペインは期限の近い順に色付きドットで一覧し、更新…ボタンがルータの API 経由で証明書をその場で再発行します:秘密鍵・サブジェクト・CA は同じまま、有効期間は選択可能(最長 10 年)、必要なら OpenVPN サーバと Web GUI を再起動して読み込ませます。鍵とサブジェクトが変わらないため、既存の VPN クライアントのプロファイルはそのまま動きます — 再エクスポートは不要です。pfSense では REST API の更新アクションが同等の処理を行い、依存サービスも自動で再起動します。pfSense の API は認証局(CA)の有効期限を報告しないため、FrontierStack は CA 証明書そのものから期限を読み取ります。これにより pfSense の CA も他と同様に警告されます。CA はどちらの API でも更新できません。CA の期限が早めに通知されるのは、置き換えに証明書の再署名とクライアントプロファイルの再配布が必要だからです。OpenVPN サービスペインには同じルータ証明書が、Mac 上の各 .ovpn プロファイル(OpenVPN Connect、Tunnelblick、最後に使ったファイル)に埋め込まれた CA とクライアント証明書と並んで表示されるので、クライアント側とサーバ側の期限を一目で比べられます。Plan & Cost カードには OpenVPN 自体は無料であることと、Access Server と CloudConnexa の料金も記載しています。

ルータの操作と診断。AI 管理者は読み取り以上のこともできるようになりました:reboot_router はサーバの再起動と同じ方法でアプライアンスを再起動し(OPNsense/pfSense は API、OpenWrt は SSH)、「Allow changes」でゲートされます。ルータ自身のコンソールで行う方が本当に適したタスクのときは、アシスタントが open_web_ui でその Web UI を開くことを提案します — アドレスは推測せずデバイスペインから解決します。FrontierStack 自身はこれらアプライアンスのファイアウォールルールを意図的に編集しません — OPNsense/pfSense/OpenWrt は独自の設定システムでルールを管理するため、ペインとアシスタントは代わりにネイティブのファイアウォールページを案内します(ルータを右クリック ▸ Open firewall rules… が直接移動)。ペインの利便機能が 2 つあります:Diagnostics ボタンは API 不要の到達性チェック(ping、よく使う管理ポート 80/443/8443/53、逆引き DNS、ゲートウェイ)を実行するので、API キーがなくてもルータをトリアージできます。またルータ/ファイアウォールでは、Discover Services がポートスキャンではなく Web UI を開くことを提案します(自分の境界機器をスキャンするのは通常望ましくありません)。OPNsense や pfSense への SSH が拒否される場合、SSH が無効になっているか — より多いのは — 特定のインタフェース(多くは WAN ではなく LAN)でのみ許可されているためです:LAN 経由(例:VPN 経由)なら通常つながり、外部からは通常ブロックされます。Web UI で SSH と待ち受けインタフェースを有効にしてください(OPNsense は System ▸ Settings ▸ Administration ▸ Secure Shell)。SSH ボタン自体が非表示になるのは、管理シェルをまったく持たない民生用ゲートウェイ(NTT、一部の TP-Link/FRITZ!Box)だけで、その場合は Web UI が唯一の入口です。

セキュリティルータのセキュリティ兆候は読み取り専用の監視であり、アプライアンス自身のロギングの代わりではありません — しかし Suricata が発報した瞬間、誰かが管理画面に総当たりした瞬間、あるいは箱が予期せず再起動した瞬間のオレンジのドットは、境界で何かが起きていることを知る最も早い警告になることが多いのです。これらをアラートチャンネル(第 11 章)に結び付け、予期しないルータの再起動や失敗ログインの急増は、そうでないと証明されるまでインシデントとして扱ってください。

9.2ファイアウォールの状態・グラフ・電源

監視を有効にしたピン留め済みの OPNsense・pfSense・OpenWrt ファイアウォールは、自身の API から状態を報告します。そのペインでグラフ表示されるようになりました。CPU とメモリを 0〜100 の 1 つのチャートに、そしてロードアベレージと温度です。サンプルはすでに実行中の監視ポーリングから取得するため、追加の API 呼び出しは発生せず、アラートのスイープが進むにつれてグラフが埋まり、セッションのおよそ直近 6 時間分をカバーします。

プラットフォームごとに提供される情報は異なり、ペインには実在する値だけが表示されます。pfSense は瞬間的な CPU 使用率を、OPNsense は代わりにロードアベレージを報告します。温度は FreeBSD が読み取れるセンサをハードウェアが備えているかに依存します——仮想環境や ARM の構成では搭載されていないことが多く、値がない場合は「センサなし」であり故障ではありません。

ピン留めしたあらゆるデバイスに、サーバと同じようにスマートプラグをリンクできます。オン・オフ・電源再投入、そして計測対応プラグならリアルタイムの消費電力も表示されます。これはファイアウォールで特に重要です。動作不良時に SSH で到達できない唯一の機器だからです——到達に使うネットワークこそ、その機器が提供しているものです。OPNsense も pfSense も自身の消費電力は報告しない(FreeBSD が公開するのは温度センサであり電力ではない)ため、計測対応プラグがファイアウォールで得られる唯一の実測値です。電源再投入は確認を求め、ファイアウォールを通過する全接続が切断されることを警告します。まず API 再起動をお試しください。

API で連携した OPNsense ファイアウォールは、ファームウェアがインストールした PHP も報告します。OPNsense の Web GUI は PHP を root として動かし、キャプティブポータルはゲストの端末に PHP のページを返すので、これは境界にある PHP です。FrontierStack は毎日のファームウェアチェックでファームウェアのパッケージ一覧からバージョンを読み取り、php.net にあるそのブランチの最新リリースと比べます。セキュリティリリースより古い場合や、修正が提供されなくなったブランチの場合は、ファイアウォールのセキュリティの行に警告と対処が表示されます。OPNsense が修正を含むリリースを出したら System ▸ Firmware ▸ Updates で更新し、それまでは GUI に信頼できるネットワークからだけ接続できるようにします。ファイアウォールに PHP のパッケージを手で入れないでください。

9.3通信量、使用量の急増、無断使用の可能性

監視中のルータは WAN の通信量も報告します。アラートのスイープごとに、FrontierStack はルータがすでに公開している累積バイトカウンタ(OPNsense のインターフェイス統計、pfSense のインターフェイス情報、OpenWrt のデバイス統計、MikroTik RouterOS のインターフェイス、Huawei HiLink ルータのモバイルデータ合計)を読み取り、2 回の読み取りの差を速度に換算します。WAN インターフェイスは合算します(インターネットの通信はすべて、そのどれかを必ず 1 回だけ通過します)。WAN を特定できない場合は最も通信量の多いインターフェイスで代用し、ペインの計測対象の行にどれを使ったかを表示します。UniFi コンソールはカウンタではなくゲートウェイの現在のアップリンク速度を報告するため、1 日の通信量は推定値です。1 時間ごとの通信量はこの Mac に約 60 日間保持されます。

ルータのペインには、現在の速度とこの時間帯の通常の速度、今日の通信量と通常の 1 日、ルータが報告する場合は接続デバイス数、直近 6 時間の速度グラフ、2 か月分の 1 日の使用量の棒グラフが表示されます。これをもとに 2 つのアラートがあり、どちらも既定でオン、しきい値は控えめです。それぞれにスイッチと控えめ/標準/最も敏感のメニューがあります。

アラート発生条件(既定の「控えめ」)
使用量の急増同じ曜日・時間帯の通常の速度の 8 倍以上、かつ 25 Mbps 以上の状態が 20 分続いたとき。下限があるため、静かな回線がスマートフォンのバックアップ程度で通知されることはありません。
長期使用量丸 1 日の使用量が直前 28 日の中央値の 2 倍以上、かつ 1 日あたり 5 GB 以上多い状態が 3 日連続したとき。大きな日が 1 日だけ(ゲームのダウンロード、クラウドバックアップ)では発生しません。

重く受け止めるべきなのは長期使用量のアラートです。誰かが黙って回線を使っている場合(Wi-Fi パスワードを知った近所の人、開いたままのゲストネットワークなど)、急増は起きずに毎日の通信量だけが増えます。そのためアラートは無断使用の可能性として通知し、接続デバイス数を通常値と比べ、接続デバイスの一覧と Wi-Fi パスワードを変更…(多数のルータの Wi-Fi パスワードをまとめて変更するを参照)を案内します。想定どおりの増加であれば、新しい基準として受け入れるで両方の基準を直近数日から取り直せます。全履歴を使うで元に戻ります。

メモ再起動やカウンタのリセットが通信量として数えられることはありません。値が戻ったカウンタは新しい読み取りの起点になるだけで、急増の判定には連続した複数の読み取りが必要なため、1 回だけの異常値で急増アラートが出ることもありません。履歴が短いうちは各行が学習中と表示されます(急増は約 2 日、長期使用量は 1 週間)。

9.4Device Discovery:LAN のインベントリ

Device Discovery を開き、Find Monitors を押します(先にサブネットを選んでも構いません)。FrontierStack は選んだ /24 を利用可能なすべての方法で一斉にスイープし、ルータ・アクセスポイント・スイッチ・NAS(Synology、QNAP、ZimaCube/ZimaOS など)・プリンタ・カメラ・他のサーバをまとめて浮かび上がらせます。

  • Ping/ARP — ICMP スイープ。ARP/MAC が各ホストのベンダーを示します。TCP Probe をオンにすると、ICMP をフィルタするホストも見つかります。
  • Bonjour(mDNS)と SSDP/UPnP — アドバタイズされたサービスとそのフレンドリ名。
  • SNMP と LLDP/CDP — net-snmp と lldpd をインストールするとモデル・ポート・近隣の詳細が加わります(ペイン内のボタンでインストール)。
  • Windows サービスポート — ICMP をフィルタするマシンも、特徴的なポート(RDP・WinRM・SMB など)を探ることで見つかるため、Windows PC がスイープから隠れることはなくなりました。

スキャンは各ホストの到達方法も記録します。ローカルで AnyDesk が稼働中、または既定ポート 7070 で応答すると AnyDesk バッジが付き、この Mac 自身の tailscale status から Tailscale バッジ(ピアがオンラインなら緑)が付いてメッシュのピアを検出デバイスに対応付けます(保持するのはエンドポイント・ホスト名・OS のみで、ログイン名は保持しません)。直接接続の LAN では、macOS が既に Bonjour で把握している Mac やデバイスが低速な IP スイープより先に現れ、一覧がすばやく埋まります。デバイス詳細には対応する AnyDesk/Tailscale 行とアプリを開くショートカットがあります。

以前のスキャンで見つかったデバイス。スキャンは、このネットワークで過去 90 日間に記憶したデバイスから始まり、応答しないものを Expected · not yet seen と表示します。完全になくなったデバイスは、スキャン終了後に ⋯ メニューの このデバイスを忘れる で削除できます。一覧とスキャン履歴から消えますが、後のスキャンで応答したデバイスは、また検出されます。

別のアドレスでピン留めしたルータ。ファイアウォールはネットワークごとに異なるアドレスとハードウェアアドレスを持つため、スキャンで見つかったゲートウェイが、別のインターフェースでピン留めした OPNsense と同じものに見えないことがあります。API キーを設定すると、FrontierStack は OPNsense が報告するインターフェース一覧を保存し、そのハードウェアアドレスを持つスキャン行を ピン留め済み のルータとして表示します。ほかのメーカーのルータは、まだこの方法では照合されません。

接続先の Wi-Fi 機器。この Mac の Wi-Fi が接続している機器は、macOS が報告する無線アドレス(BSSID、位置情報へのアクセスが必要)をもとに、Access Point として この Mac の Wi-Fi バッジ付きで表示されます。ワイヤレスブリッジは中継するサブネット上にアドレスを持たないことが多く、その場合、行には このサブネットにアドレスなし と表示され、管理用アドレスを IP で追加するまでピン留めや監視はできません。

スキャンせずに tailnet のデバイスをピン留めするには、Tailscale サービスペインを開きます。Tailnet のデバイスに、この Mac の Tailscale から見える tailnet 上の全デバイスが並びます(API トークン不要。この Mac で Tailscale が未接続のときは Tailnet ペインの API 一覧を使います)。各デバイスの LAN(Wi-Fi/Ethernet)アドレスも、Tailscale の直接接続・tailscale ping・Tailscale API・Bonjour から検出します。ピン留め済みのデバイスやサーバに登録済みのデバイスには印が付き、クリックで開けます。Mac とサーバにはサーバに追加(デバイス検出と同じ登録先)、それ以外にはピン留めボタンがあります。この Mac と同じネットワークのデバイスは LAN アドレスで追加され、外出中も tailnet アドレスで監視されます。別の場所のデバイスは tailnet アドレスで追加されます。Mac・Windows PC・サーバ・NAS は、ピン留めしたときや種類をそれらに変えたときにも自動でサーバに追加され、MAC アドレス・ベンダ・アイコン・色・電源と UPS の連携・保存したパスワード・場所・サイドバーのグループが引き継がれます。「識別情報」のサーバで開くでその項目に移動できます。

別の tailnet デバイスのサブネットルート経由で到達する LAN 上のルータは ping に応答しますが、トンネル越しではハードウェアアドレスでどのルータが応答したかを確認できません(192.168.1.1 は複数の拠点にありえます)。そのため確認するまではオフラインのままです。ルータのペインに、そのサブネットをルーティングしているデバイス名とともに Tailscale サブネットルート欄が表示されるので、このルータは … のネットワーク上にあるをクリックすると、以後そのルート経由の応答でオンラインと判定します。1 つのルートを紐付けられるのは、同じアドレスのピン留めルータのうち 1 台だけです。

AI 管理者の discover_devices ツールは同じスキャンを実行し、種別を確信を持って識別できたデバイスを自動でピン留めします。あいまいなものは推測せず一覧に戻すので、アシスタントはそれが何かをあなたに尋ね、pin_device でピン留めできます。ピン留め(監視)されたデバイスはその種別のサイドバーセクションに現れ、ダブルクリックでペインを開けます。行の Open Web UI・Discover Services・Reclassify・Remove も使えます。アドレスが分かっていれば Add a device by IP フィールドが直接プローブしてピン留めします — 全体スキャンは不要です。

スキャンの完了を待たずにピン留め。すでに高い信頼度で識別された行には、スイープ実行中でも Pin が表示され、識別が不確かな行は Review & Pin… で種別を選んでピン留めできます。スキャン中にピン留めしたデバイスはそのまま残り、スキャンが完了するか Stop を押すと、残りのスキャンで判明した情報がピン留めの記録に反映されます。1 台をじっくり調べたいときは Stop を押し(それまでに見つかった行は残ります)、その行の Review & Pin… または ⋯ メニューから 識別してピン留め を選びます。FrontierStack はそのアドレスだけをフィンガープリントし、結果の信頼度が高ければピン留めし、そうでなければフィンガープリントの結果を表示したまま確認待ちとして残します。

POS 機器。Square Terminal や Register はポートを開かず Bonjour でも告知しないため、Square 自身の MAC アドレスブロックで識別し、POS(販売時点管理)として表示します。Square ペインのハードウェアセクションには、Square の API が報告するデバイス(状態、バッテリー、Wi-Fi、IP)と並べて表示されます。Square のカードリーダは Bluetooth で接続するため、ネットワークには現れません。Star Micronics や Epson TM のレシートプリンタはベンダとモデル名で識別します。

Android TV・Google TV ボックス。NVIDIA Shield、Chromecast with Google TV、Mi Box、onn などのボックスは、告知する Android TV Remote サービスで識別され、Android TV/Google TV として固定されます。プラットフォームを Android TV / Google TV (adb) にすると、状態を確認で adb 経由で状態を読み取ります:モデル、Android のバージョンとセキュリティパッチの古さ、稼働時間、ストレージ、メモリ、画面のオン/オフ、温度、前面のアプリ。1 年以上古いパッチ、90% を超えたストレージ、熱による性能制限は警告します。デバイスペインから Google の Platform Tools をインストールし、TV で開発者向けオプション ▸ USB デバッグをオンにして、「USB デバッグを許可しますか?」を一度だけ許可してください。FrontierStack は読み取るだけです。サイネージやサブネットルータとして使うボックスにはオフライン通知も設定できます。

Chromecast と Google Cast。Chromecast や Cast 内蔵のテレビ・スピーカは、告知する Google Cast サービスで識別されます。デバイスのページは、サインインも事前の設定もなしに、名前、モデル、Cast ファームウェア、ネットワーク、稼働時間、キャスト中の内容、スタンバイ状態、音量を読み取ります。キャストを停止… は確認のうえで現在のキャストを止めます。Fire TV のような再起動はありません。Google が Google アカウントの認証を必須にしているためです。再起動は Google Home アプリで行うか、スマートプラグを紐付けて電源を入れ直してください。Chromecast with Google TV は Android TV ボックスとして扱います。

Aqara と Thread ボーダールータ。Aqara にはローカル API がないため、FrontierStack は各機器が報告する場所でそれを捉えます。ハブ(M1S、M2、M3、M100、M200)はスマートハブとして固定され、HomeKit・Matter・Thread ボーダールータを告知しているかを表示します。ハブが止まると配下の Zigbee センサがすべて止まるため、オフライン通知をオンにしてください。カメラとドアベルは Aqara Home で RTSP をオンにするとポート 8554 で RTSP 配信します。AV フィードでベンダ Aqara を選んで追加してください。FP シリーズのレーダ人感センサ(FP1、FP1E、FP2、FP300、FP400)は Zigbee2MQTT 経由(製品名で表示され、在室、照度、温度、湿度、電池残量低下の通知付き)、または Home Assistant 経由(センサごとに 1 行にまとめて表示)で報告します。Thread ボーダールータとして告知しているデバイスにはネットワーク名付きの Thread バッジが付き、Apple TV のペインではそのモデルが Thread 無線を搭載しているかも示します。

Apple ホームのホームハブ。ホームハブになっている HomePod や Apple TV には、デバイス検出で名前の横にバッジが付きます。今ホームを動かしているハブには緑のホームハブ、他のハブにはスタンバイハブ、この Mac のホームデータにどれがアクティブか記録されていない場合は単にハブと表示します。デバイスペインには同じ状態を示す Apple ホームセクションが加わり、Apple ホームペインには各ホームのハブが一覧されます。Apple ホームはアクティブなハブを自分で選び、ハブの再起動、アップデート、ネットワークの切断などでいつでも別のハブに移ることがあります。優先するハブはホーム App のホーム設定 ▸ ホームハブとブリッジで選べます。FrontierStack はこの情報を Mac のホームデータから読み取り専用で読み、ハブとデバイスを名前で照合します。macOS がアクセスをブロックした場合は、システム設定 ▸ プライバシーとセキュリティでフルディスクアクセスを許可してください。

ヒントこの Mac とゲートウェイしか見つからない? それはほぼ確実にクライアント分離(ゲスト Wi-Fi で一般的)か VLAN 分離です — AP やスイッチがデバイス間通信をブロックしています。多くのスマートホーム機器は 2.4 GHz 専用でもあるため、バンドが別ネットワークなら、ペインのフィールドでそのサブネットを明示的にスキャンしてください。

9.5あらゆるメーカのカメラ

カメラペインは、FrontierStack が把握しているすべてのカメラを、映像を表示できるかどうかに関係なく 1 つにまとめた状態ボードです。Device Discovery で見つかったカメラ(ピン留め済みと、見つかったが未ピン留めのもの)、AV Feeds のストリーム、SwitchBot のカメラ、Smart Life のカメラ、UniFi Protect のカメラを集めます。カメラが何十台あっても、上部の台数とオフラインフィルタですぐにわかります。オフラインのカメラが先頭に並び、ピン留めしたカメラと同じアドレスのストリームは、2 つに分かれずそのカメラのタイルに表示されます。ピン留めしたカメラと同じ MAC アドレスの Protect カメラは、そのカメラのタイルに表示します。各タイルのベルでオフラインのアラートを切り替えられ、すべてにアラートで確認できるカメラすべてをまとめて対象にできます。アラートはアラートペインを通るので、連絡先のプリセットで現地の技術者を呼び出せます。

カメラは、RTSP(ポート 554)、Web ポート(80)、ONVIF(2020)のいずれかに応答すれば稼働中とみなします。Ring・Nest・Blink・Arlo などクラウド専用のカメラは、自社アプリからしか届かないため状態を表示しません。

Tapo カメラを外出先から確認(非公式)。サービス ▸ カメラ ▸ Tapo Cameras で TP-Link ID でサインインすると、Mac が自宅のネットワークの外にあっても各 Tapo カメラのオンライン / オフラインがわかり、アラート経由でオフライン通知を受け取れます。TP-Link は公式 API を提供していないため、FrontierStack は Tapo Android アプリと同じ方法でサインインします。そのため TP-Link がアプリを変更すると動かなくなることがあり、利用が TP-Link の規約に反する可能性があります。読み取るのは状態だけです。パスワードは保存せず、2 回続けてオフラインと確認されたときだけオフラインとみなします。TP-Link のクラウドに接続できないときは状態を取得できませんと表示し、オフラインにはしません。ピン留めした Tapo カメラは、クラウドがオンラインと報告している間はネットワークの外でも緑の表示のままです。その他の Tapo デバイスや、2 つ目のサインインで Kasa デバイスも監視できます。

SD カード。Tapo、Hikvision/Annke、Dahua/Amcrest/Lorex、Reolink、Axis のカメラでは、各タイルにカメラ自身が報告するメモリカードの状態も表示します:SD ✓ 42% 使用、SD カードなし、未フォーマット、SD カードのエラー、不明のときは SD —(理由はポインタを重ねると表示)。FrontierStack はクラウドではなくカメラ自体のローカル API に、Mac がカメラのネットワーク上にいる間だけ問い合わせます。ネットワークの外では、最後の結果を確認時刻とともに表示したままにします。確認は 30 分ごとに 1 台ずつ、カメラごとに最短 10 分間隔で行います。Tapo 以外のカメラは、AV Feeds のストリームのログインか、カメラのデバイスペインで入力したログインを使います。Tapo カメラには admin と TP-Link アカウントのパスワードが必要で、Tapo Cameras ▸ ローカルカメラアクセスで一度入力します。パスワードはキーチェーンに保存し、TP-Link のクラウドに送ることはありません。カメラがログインを拒否すると、ログインを直すか再試行を押すまで問い合わせを止めます。カメラはサインインの失敗が続くとアカウントをロックするためです。接続やサインインができないカメラを「カードなし」と報告することはありません。SD のアラートは任意で、満杯に近いときのアラートは初期設定でオフです。ほとんどのカメラはループ録画のため、常に満杯に近いからです。eufy、WTW、Eseecloud のカメラにはストレージを読み取るローカル API がありません。

Tapo カメラの再起動。Tapo カメラのデバイスペインにはカメラを再起動…があります。Tapo アプリの「再起動」と同じ操作で、SD の確認と同じローカルサインインを使い、同じ条件(カメラのネットワーク上のみ、固定した証明書、ログイン拒否やロック後は実行しない)で送ります。再起動中の約 1 分間、録画とストリーミングは止まります。

メーカごとに必要なこと:

メーカできること設定方法
Anker eufy多くの機種で RTSP。ONVIF と公開 API はなしeufy Security アプリで、カメラ ▸ 設定 ▸ ストレージ ▸ NAS(RTSP)を開きます。ユーザ名とパスワードをそこで設定し(既定はランダム)、表示されるリンクをコピーします。通常は rtsp://user:pass@ip:554/live0 です。連続録画を選んでください。イベントモードやバッテリ式カメラでは、イベント中にしかストリームがないため、オフラインのアラートが誤報になります。同時に見られるのは最大 4 台です。
WTW(塚本無線)PoE/IP シリーズは RTSP と ONVIF に対応。EAGLE Wi-Fi シリーズは非対応下記を参照。
Eseecloud(EseeCloud/IP Pro アプリ)レコーダは Web ポート 80 で RTSPレコーダ本体のネットワークメニューで RTSP サーバをオンにし、rtsp://user:pass@nvr-ip:80/ch0_0.264 を使います。チャンネルは 0 から数え(ch0 がカメラ 1)、_1 はサブストリームです。単体の Eseecloud Wi-Fi カメラの多くは RTSP がありません。既定のログインは admin、パスワードは空です。

9.22.1WTW のカメラとレコーダ

古い IP カメラ。WTW 自身の 2018 年版 IP カメラ取扱説明書では、メインストリームが rtsp://ip:554/live/0/main、サブストリームが /live/0/sub です。ポート 554 が既定で、変更できます。RTSP はカメラの Web 設定のネットワーク設定でオンにします。現行の PoE/IP モデルと NV4 シリーズのレコーダは、仕様に RTSP と ONVIF を記載しています。上記のパスで接続できない場合は、NVR アプリで ONVIF として追加して URL を調べてください。

EAGLE Wi-Fi シリーズ。RTSP にも ONVIF にも対応していません。WTW のサポートサイトはあるカメラについてそう明記しており、レコーダの仕様には TCP/IP・DHCP・P2P しか記載がありません。これらでできるのは、レコーダが Web ポートに応答するかの確認までです。Device Discovery で WTW Camera / NVR としてピン留めし、オフラインのアラートをオンにしてください。

初期パスワード。NV4 レコーダは 00000000 で、工場出荷時に戻すと wtwjapan になります。古いカメラは admin で空パスワード、または admin/admin です。ネットワークにつなぐ前に変更してください。

セキュリティ廉価なカメラとレコーダは、空または周知のパスワードで出荷され、よく攻撃の標的になります。パスワードを設定し、カメラをインターネットにポート開放しないでください(遠隔で見るには Tailscale を使います)。ネットワークに IoT 用 VLAN があれば、カメラはそこに置いてください。

9.22.2スマートホームのクラウド

Smart Life(Tuya)の機器は、Tuya 公式の Cloud API で読み取ります。iot.tuya.com でアカウントのデータセンタ(日本のアカウントは Western America)に Cloud プロジェクトを作り、Devices ▸ Link Tuya App Account で Smart Life のアカウントを連携し、プロジェクトの Access ID と Secret を Smart Life ペインに貼り付けます。これで各機器のオンライン状態とプラグの電力が見え、プラグや照明のオン/オフ(電源タップはコンセントごと)ができ、どの機器もオフラインになったらアラートを出せます。TESSAN、BN-LINK、Edison Smart、OHMAX、MEAPUXIN のプラグも Smart Life 機器です。サーバの電源再投入に使うには、電源コントロールで Smart Life / Tuya コンセントとして追加してください。無料トライアルは月に約 26,000 回の呼び出しまでで、数か月ごとに延長が必要なため、FrontierStack は 10 分ごとに確認します。

Minut のセンサは、賃貸物件の騒音・在室人数・温度・湿度を報告します。Minut ペインは、センサのオフライン、バッテリ残量の低下、物件で騒音トラブルが進行中のときにアラートを出します。Minut は承認したアカウントにしか API を開放しておらず、ヘルプ記事ではエンタープライズプランが条件とされています。

SmartThings、Govee、LIFX、Sensibo、Nuki には、それぞれ専用のペインがあります。アカウントのデバイスを一覧にして、状態を色で示します。緑はオンライン、赤はオフライン、灰色はクラウドが状態を返していないことを表します。デバイスの横のベル、またはすべてアラートをオンにすると、オフラインになったときにアラートを出します。Govee、LIFX、Sensibo、Nuki に必要なのは、各社のアプリやサイトで発行する API キーかトークンだけです。SmartThings では、SmartThings CLI で自分用の OAuth アプリを一度作っておくと、サインインが切れずに使えます。個人用アクセストークンでも使えますが、24 時間で失効します。キーが拒否されたりサインインが期限切れになったりすると、アカウントのアラートを 1 件出します。クラウドに到達できないときは、そのデバイスを不明として扱います。どちらの場合も、デバイスのオフラインとは報告しません。賃貸物件では Nuki のロックを監視しておくと安心です。接続が切れたロックは、ゲストのために遠隔で開けられません。

キーパッドコード。キーパッドをペアリングした Nuki のロックは、Nuki ペインでコードを表示を押すとコードを一覧にします。数字は表示するまで隠れています。コードの追加、数字や名前の変更、期間・曜日・時間帯の制限、無効化、削除ができます。Nuki のコードは 1〜9 を使った 6 桁で、12 から始めることはできません。API トークンには、ロックの閲覧に加えてスマートロックの認可を管理する権限が必要です。変更はブリッジ経由で約 1 分以内にロックに届きます。SwitchBot ペインでは、キーパッドや Lock Vision の行にパスコード一覧があり、6〜12 桁の常時・期間限定・ワンタイム・緊急パスコードを追加したり削除したりできます。SwitchBot はパスコードを編集できず、読める形で返すこともないため、変更するときは新しいパスコードを追加してから古いものを削除し、追加するときに控えておいてください。どの変更にも実際の操作が必要で、人間の操作による承認が求める場合は Touch ID も必要です。画面を操作する自動化がドアのコードを発行することはできません。変更はすべて、数字を含めずに監査ログに記録されます。

9.6電話機・PBX・SIP トランク

VoIP・電話はフルフリートの機能です。スタンダードでは以下はすべて表示のみです。Device Discovery は卓上電話機と ATA(Yealink、Poly、Grandstream、Snom、Fanvil、Cisco、Avaya、Mitel、Panasonic、Gigaset、2N や Algo のインターホンなど)と、PBX 装置と SBC(Grandstream UCM、Yeastar、Avaya IP Office、NEC UNIVERGE、Panasonic KX-NS、AudioCodes Mediant、FreePBX や 3CX のサーバなど)を認識し、IP電話機 / ATA または PBX / 電話システムに分類します。FRITZ!Box のように電話ポート付きのルータはルータのままです。デバイスページの VoIP セクションには、実際の SIP OPTIONS リクエストを送る SIPを確認、アラートで監視、電話機ではオフライン時のアラートがあります。

SIP チェックはポートが開いていること以上を確かめます。401 や 404 でも SIP の応答があれば SIP スタックは動いていますが、503 などの 5xx は動いていても通話を受け付けていない状態なのでダウンとみなします。ツール ▸ SIPヘルスチェックで UDP・TCP・TLS を指定して手動で実行でき、アラートの SIP (OPTIONS) 監視は毎回のチェックで実行します(ポート 5061 は TLS)。PBX、SIP トランク事業者のプロキシ、SBC に使います。

VoIP・電話カタログには、通話が止まる原因そのものでアラートするライブモニタがあります。Asterisk、FreePBX、PBXact、Issabel、VitalPBX のオフラインの内線とトランク(LAN か VPN 経由で、読み取り専用の Asterisk REST Interface ユーザを使用)、3CX の未登録トランク・期限切れのライセンス・停止したサービス、Zoom Phone と Webex Calling のオフラインの電話機、Telnyx・Plivo・Vonage・VoIP.ms の下限を下回ったプリペイド残高です。

国内・韓国の製品。Device Discovery は国内のビジネスホンメーカも認識します:サクサ PLATIA、岩崎通信機 Frespec、ナカヨ NYC、沖電気 CrosCore・DISCOVERY neo、日立 NETTOWER、NTT スマートネットコミュニティ α、IPECS(旧 Ericsson-LG)、Samsung OfficeServ。メーカ名だけでは判定しないため、OKI のプリンタ、NTT のホームゲートウェイ、Samsung のテレビは元の種類のままです。カタログには BIZTEL、MOT/TEL、MiiTel、ソフトバンク ConnecTalk、KDDI 光ダイレクト、Arcstar IP Voice、LG U+・KT・SK ブロードバンドの法人向けインターネット電話も加わりました。BIZTEL モニタは BIZTEL の API(履歴取得API オプションと API トークン)で通話履歴を読み、直近 1 時間の応答なしの着信がしきい値を超えるとアラートします。毎回新しい通話だけを取得するので、アカウントの月間 API 上限をほとんど消費せず、その利用量も表示します。

9.7Data Map

Data Map ペインはロケーションごとのデータフロー図を描きます。1 つの拠点で、データがどこに存在し、デバイスやサービスを横断してどう流れるかを示します。FrontierStack はそのロケーションのインベントリ — 検出したデバイス、その役割、(任意で)スキャンしたポート — をシリアライズし、秘密情報を伏せて、ローカルの claude CLI を通じてあなたのサブスクリプション Claude に渡します(アプリ内ハーネスが使う従量課金 API ではありません)。返答は Mermaid フローチャートと短い説明として戻り、ペイン内でオフライン描画されます。各ロケーションの最新図は保持され、Obsidian ボールトにランブックとして保存できます。ロケーション自体は第 8 章で説明します。

9.8ポートを開く:UPnP と NAT-PMP/PCP

従来の方法でインターネットからサービスへ到達するには、ルータのポートを Mac へフォワードする必要があります。手作業でルータにログインさせる代わりに、FrontierStack はルータがアドバタイズする標準プロトコルでマッピングを依頼できます。

  • UPnP IGD(miniupnpc 経由)— 一般的な家庭用ルータの方法。
  • NAT-PMP/PCP(libnatpmp 経由)— Apple 由来の方式とその現代的後継。
  • OPNsense — その API を通じて境界ルールとポートフォワードを直接設定。

これらのツールは初回使用時にオンデマンドでインストールされます。一時セッション用に作ったマッピング(Debug Share 参照)は、セッション終了時に自動で撤去されます。

セキュリティポートのフォワードは、何かが取り除くまで開いたままになる穴を境界に開けます — 偶発的露出の最も多い原因です。堅牢化・認証されたサービスにのみポートを開け、後述のトンネル方式(受信ポートを一切必要としません)を優先し、ルータのフォワード設定を定期的に見直してください。境界フォワードは公開された非 CGNAT の IP がないと機能しません。キャリアグレード NAT の背後では不可能です。

9.9ダイナミック DNS:変化する IP を追う

家庭や小規模オフィスの回線は静的 IP を持たないことが多く、今日のアドレスに向けたホスト名は明日には古くなります。Dynamic DNS ペインはホスト名を現在のパブリック IP に追従させます。Name、Hostname(例 myhost.duckdns.org)、プロバイダのアカウント情報でエントリを追加し、Update Now で即時公開するか、Update automatically をオンにします。更新を FrontierStack の実行中のみ行うか、システムサービスとして恒久的に行うかを選べるので、アプリを閉じてもレコードは最新に保たれます。Cloudflare ユーザにはより緊密な経路があります — パブリック IP を追う Cloudflare DDNS A レコードで、第 7 章と同じ Cloudflare 連携が動かします。他プロバイダは更新 URL による汎用インターバル更新がカバーします。

9.10DHCP サーバ:スコープ・リース・フェイルオーバー

DHCP サーバペイン(DNS の下、フルフリート)は、ネットワークでアドレスを配るサーバを見守ります。連携済みサーバを選ぶと、既存の SSH 接続を通じて、そこで動いている DHCP サーバを見つけます:Windows Server の DHCP 役割(PowerShell の DhcpServer モジュールで読み取り)、Kea(kea-dhcp4.conf とリースファイル)、ISC DHCP(dhcpd.conf と dhcpd.leases)、dnsmasq(Pi-hole 内蔵のものを含む)。Linux でリースファイルを読むには、通常そのサーバの sudo パスワードをリモート管理に保存しておく必要があります。

セクション表示内容
サーバDHCP サーバの種類・バージョン・動作状況。ドメイン参加済みの Windows サーバでは Active Directory で承認済みかどうか。
検出事項重大度順の問題:サービス停止、ほぼ満杯のスコープ、フェイルオーバーの不一致、予約アドレスが別の機器に貸し出されている、1 台に DHCP サーバが 2 つ設定されている。
スコープすべての IPv4 スコープ/範囲と使用率バー:プールサイズに対する使用中アドレス数と予約数。
フェイルオーバーWindows のフェイルオーバー関係と ISC のフェイルオーバーピア。このサーバとパートナーの状態。
予約/リース固定アドレスと、有効なすべてのリース(MAC アドレス・ホスト名・期限)。IP・MAC・名前で絞り込めます。

予約。Windows の DHCP サーバでは予約の追加(スコープ・IP・MAC・任意の名前)と削除ができます。リースを右クリックしてこのアドレスを予約…を選ぶとフォームに入力されます。Kea・ISC・dnsmasq の設定ファイルを FrontierStack が編集することはありません。リースを右クリックして予約行をコピーを選び、設定に貼り付けてサーバを再読み込みしてください。

ピン留めデバイスのアドレスを予約する。DHCP の更新のたびにアドレスが変わるデバイス(Wi-Fi が切れがちなカメラ、ルータ再起動後の PC など)は、アドレスを固定できます。デバイスのペインでこのアドレスを予約…を押すか、AI 管理者に頼みます(ツールは dhcp_reservation)。FrontierStack はデバイスの MAC から、そのリースを持つ DHCP サーバを探します。API キーのある OPNsense では Dnsmasq または Kea を API で変更し、すぐに適用します。キーには「Dnsmasq DNS/DHCP: Settings」または「DHCP: Kea(v4)」の権限が必要で、Dnsmasq の予約ではその名前がローカルで名前解決されるようにもなります。ここにある Windows サーバは PowerShell で変更します。OPNsense の ISC DHCP や設定ファイル型のサーバでは、静的マッピングの場所か設定行を示します。それ以外は、デバイスのロケーションのルータについて Web UI の手順を示します。TP-Link Archer や Deco などの家庭用ルータには API がないためです。確認するまで何も変更されません。

アラート。サーバのアラートで監視をオンにすると 30 分ごとに確認します。DHCP サービスの停止、スコープがアラート水準(既定 95 %、ペイン上の警告は 85 % から)に達したとき、フェイルオーバーが partner-down になったときにアラートが届きます。水準はペイン下部で変更できます。AI 管理者は get_server_health の area=dhcp で同じ状態を読めます。

メモフルフリート。スタンダードではペインはグレー表示のまま見えてアップグレードのリンクが出ます。確認やアラートは行いません。

9.11トンネルとメッシュ:開けずに届く

外部からサービスへ到達するより良い方法は、受信ポートを完全に省くことです。トンネルは外向きの接続を張り、外部エンドポイントがそれに乗って戻ってくることで、何もフォワードせず NAT を越えます。

  • Cloudflare Tunnel — クイックトンネルはアカウント不要で公開 *.trycloudflare.com URL を、名前付きトンネルは恒久的なホスト名を与えます。
  • Tailscale — Serve はサービスを tailnet 内で非公開に保ち、Funnel は Tailscale ノードを通じてインターネットへ公開します。

マシン間の継続的な接続には、メッシュ/VPN ネットワークが、どこへ移動しても各ノードに安定した私的アドレスを与えます。FrontierStack は一般的なものを管理します — 対応ルータ(OPNsense)では API で、サーバでは SSH で。

ネットワーク内容
WireGuard現代的で高速なカーネル VPN トンネル — 他の多くが土台にする基盤層
Tailscale出口ノードとサブネットルータを持つ WireGuard メッシュ。SSH または OPNsense API で設定。VPN ペインでは FrontierStack の起動時に Tailscale を自動接続でき、ルータのフォールバックアドレスやテイルネット監視が最初のスイープから機能します
Headscaleセルフホストのオープンソース Tailscale コントロールサーバ
NetBirdオープンソースのゼロトラストネットワーク。セルフホスト可能
Nebula軽量なオーバーレイメッシュ(Slack/Defined Networking)
ZeroTierゼロトラスト SD-WAN/仮想ネットワーク — エージェント+API
メモトンネルとメッシュは、近日公開の iOS コンパニオンアプリがどこからでも Mac へ到達する方法でもあります — LAN・Tailscale・Cloudflare トンネル経由で、何もオープンなインターネットに露出せずに。各デバイスは独自の署名付きリクエストキーで認証します。

9.22.3テイルネット:Tailscale 全体のビュー

サーバごとの Tailscale 操作は各サーバのペイン内にあり、SSH 経由で「そのマシンでデーモンが動いているか」を確認します。テイルネットペインは、Tailscale 自身の API でしか分からないネットワーク全体の状況を扱います。API アクセストークン(このペインは書き込みを行わないため、デバイスの読み取り権限だけで十分)を貼り付けると、各デバイスのアドレス、OS、クライアントバージョン、所有者、タグ、最終確認時刻が一覧表示されます。

このペインの価値は「要対応」リストにあります。期限が近づいたノードキー(キーが失効するとデバイスは静かにテイルネットから外れ、再認証するまで戻りません=予定された障害)、承認待ちのデバイス、承認されていないルートを広告しているデバイス(ノードは正常なのにサブネットへ到達できない典型的な原因)、そして数週間チェックインしていないデバイスを表示します。キーの期限切れと承認待ちはアラートにも通知されます。

9.22.4セルフホストの DERP リレー

Tailscale や Headscale の機器同士が直接つながれないとき — たいていはどちらかがハード NAT の内側にあるため — 通信は DERP リレーを経由します。Tailscale は世界各地でリレーを運用していますが、遅延を減らすため、あるいは中継される通信を自分で管理するハードウェアに留めるために、自前の derper を運用することもできます。Tailscale DERP リレーペイン(VPN ▸ Tailscale DERP リレー)は両方を扱います:

  • この Mac から見た状況。ローカルの tailscale netcheck から、UDP が使えるか、ネットワークがハード NAT か、ホームリージョンと各リージョンへの遅延、tailnet の DERP マップにあるセルフホストのリージョン、そして直接接続やピアリレーではなくいま DERP 経由で中継されているピアを表示します。
  • 自分のリレー。追加した derper を認証情報なしで確認します — HTTPS の /derp/probe、DERP ハンドラが有効か、証明書の有効期限、UDP 3478 での実際の STUN バインディング — 応答しなくなったときや証明書の期限が 14 日以内になったときにアラートを出します。
  • 運用に組み込む。リレーごとに起動コマンド(go install tailscale.com/cmd/derper@latest。必要なら -verify-clients を付けて自分の tailnet の機器だけに使わせる)、tailnet ポリシーファイル用の derpMap ブロック、Headscale 用の DERP マップファイルを生成します。
メモリレーには TCP 80・443 と UDP 3478 を開けたパブリックアドレスが必要で、前段には何も置けません — NAT もロードバランサもプロキシも不可です。このペインは読み取り専用です。AI 管理者は tailscale_control の op=derp で同じレポートを読みます。

9.22.5Apple TV を入口に:ロックされた ISP ルータへ届く

NTT の XG-100NE などフレッツのホームゲートウェイのような ISP 支給ルータには Tailscale も VPN も入れられず、設定画面は LAN からしか開けません。IPoE(MAP-E/DS-Lite)の回線では外から使える IPv4 ポートもないため、ポート開放も従来型の VPN サーバも使えず、静的ルートはネットワーク内の経路を決めるだけです。答えは、ルータの内側で常時稼働する機器に Tailscale を入れてサブネットルータにすることです。外向きの接続しか使わずインターネットには何も公開しません。テレビにつないである Apple TV は手軽な選択肢です。

  1. Apple TV の App Store で Tailscale をインストールし、Install VPN Configuration を選んで QR コードでログイン。
  2. アプリのサブネットルータをオンにし、LAN を入力(例:192.168.1.0/24)。
  3. Tailscale 管理コンソールの Machines 一覧で Apple TV の ⋯ ▸ Edit route settings… を開き、範囲にチェックを入れて保存。同じメニューで Disable key expiry。
  4. tailnet 上のどこからでもルータの LAN アドレスを開く(例:http://192.168.1.1)。
モデルTailscale
Apple TV 4K(2021・2022)完全対応(tvOS 27)
Apple TV HD(2015)、Apple TV 4K(2017)動作するが tvOS 26 止まり。HD の Ethernet は 100 Mbit
Apple TV 第 3 世代以前App Store がなく不可

Apple TV をホームハブにしてスリープ中も届くようにし、ポートのあるモデルでは Ethernet を使い、出かける前に電源の抜き差しを試してください(tvOS のアップデートで勝手に再起動します)。自宅の LAN は珍しい範囲にして(NTT のゲートウェイでは Web設定 ▸ LAN設定)、接続元の 192.168.1.x と衝突しないようにします。tvOS には SSH がないため FrontierStack は Apple TV 自体を設定できませんが、Tailnet ペインでオンラインかどうかと、承認待ちのルートを確認できます。

ヒントほかの機器もサブネットルータになれます:Raspberry Pi、Mac、NAS や Home Assistant、自分で管理するルータ(OPNsense・OpenWrt・GL.iNet)、Android TV 機器。Android ベースの旧 Fire TV は Tailscale アプリをサイドロードできますが、バックグラウンドのアプリを止めやすく当てになりません。Echo スピーカ、iPhone、iPad では不可能です。

9.22.6自前の ZeroTier コントローラを運用する

ZeroTier のクライアントはメンバ側だけで、ネットワークの管理は通常 my.zerotier.com で行います。しかし zerotier-one はどのインストールでも、そのネットワークのコントローラ自体になれます。完全にセルフホストでき、メンバ一覧を第三者に預ける必要もありません。ただしこの構成にはローカルの管理 UI が一切付属しません。ZeroTier コントローラペインがその欠けた部分を埋めます。

コントローラの identity と所有するネットワークを表示し、メンバの承認キューをワンクリックの承認/取り消しで処理できます。承認済みでも 2 週間確認されていないメンバには印が付きます。使われていない許可はネットワークの穴になり続けるためです。ネットワーク名、公開/非公開、ルート、IP 割り当てプールを編集でき、ZeroTier 独自のルール言語でフロールールを記述できます。入力しながらローカルでコンパイルされ、よくある構成のテンプレートに加えて、全員を締め出すルールセットを保存する前に警告が出ます。

すべての操作はコントローラ自身のループバック API に対して SSH 経由で行われます。コントローラは 127.0.0.1:9993 で待ち受け、root 権限で読めるトークンで認証するため、FrontierStack はコントローラ API を外部に公開する必要がなく、むしろ公開しない設計です。内蔵の監査は、誰かが公開してしまっている場合や、ファイル権限が緩い場合、バックアップがない場合に警告します。Prometheus への書き出し、ウォームスタンバイのバックアップ/復元、ZeroTier Central からの移行アシスタントも用意しています。

メモネットワーク ID にはコントローラの identity が埋め込まれているため、ネットワークをコントローラ間で移すことはできず、Central から ID を引き継ぐこともできません。移行とは設定を作り直し、メンバが新しい ID で参加し直すことを意味します。同じ理由で identity.secret は代替不可能です。失うと、そのコントローラが持つすべてのネットワーク ID が孤立します。暗号化して別の場所にバックアップしてください。

9.12UniFi:クラウドゲートウェイ、Dream Machine、Superlink

Ubiquiti のコンソールには専用ペインを用意しています。UniFi ゲートウェイは、汎用のルータ監視では見えない仕事をしているためです。Dream Machine(UDM、UDM Pro、UDM SE)、クラウドゲートウェイ(UCG-Ultra、UCG-Max、UXG)、Superlink ゲートウェイ、Cloud Key、セルフホストのコントローラのいずれにも対応します。UniFi ペインは Ubiquiti の 2 つの API を扱います。両者は答える問いが異なります。Site Manager キー(unifi.ui.com で作成する 1 つのキー)は、アカウント内の全コンソールを機種・ファームウェア・オンライン状態とともに一覧します。遠隔サイトが電源やインターネットを失ったことを知る唯一の方法です。ネットワークから切り離されたコンソールは、ローカルでは何も伝えられないからです。コンソール側(設定 ▸ 管理者とユーザ)で作成するローカル API キーは、ゲートウェイの現在の動作を明らかにします。

ローカル接続では、WAN 回線を ISP・レイテンシ・スループットとともに表示し、実際に通信を担っている回線を示します。この点が重要です。プライマリ回線が落ちると UniFi は無言でバックアップに切り替えますが、バックアップは多くの場合低速で従量課金です。通常これに気付くのは翌月の請求書です。さらに、アダプト済みデバイスとファームウェア、ゲートウェイが評価する順序どおりのファイアウォールルール、クライアント一覧、そしてすべてのポートフォワードを表示します。有効なポートフォワードはいずれもファイアウォールに意図的に開けた穴なので、任意の送信元アドレスからの接続を受け付けるものには印を付けます。公開ウェブサーバなら妥当ですが、それ以外では確認する価値があります。

アラートは、コンソールのオフライン、WAN 回線のダウン、バックアップ回線での稼働、デバイスのネットワーク離脱、インターネットに開放されたポートフォワードを対象とします。このペインは意図的に読み取り専用です。ルールやネットワークの変更は、その検証機構がある UniFi コンソール側に残します。PoE のポート制御は次節が扱い、コンソールの単純な到達性は従来どおり Router & Network にも表示されます。

Site Manager キーで UniFi Protect のカメラとドアベルも一覧します(最大 5 分ごと)。カメラのアラート、またはすべての Protect カメラでアラートをオンにするとオフラインを通知します。更新中のカメラや、コンソール自体がオフラインのカメラは、ダウンではなく不明と表示します。

9.13多数のルータの Wi-Fi パスワードをまとめて変更する

Wi-Fi のパスワードが漏れたとき(退職者、客室に掲示したパスワード、誰かが黙って使っているネットワークなど)、対策はそのネットワークを配信しているすべてのルータとアクセスポイントで、一度にパスワードを変えることです。Wi-Fi パスワードを変更…(ルータとネットワーク ▸ ルータ、または Wi-Fi アナライザ)はこれを一度に行います。Full Fleet の機能です。FrontierStack はピン留めした各ルータにサインインして配信中のネットワークを一覧表示し、選んだネットワークを配信しているルータにチェックを入れます。新しいパスワードを入力するか生成で読み上げやすいランダムなパスワードを作り、確認します。ルータは 1 台ずつ変更され、この Mac のゲートウェイになっているルータは最後になります。各行に変更内容が表示されます。

プラットフォームパスワードの変更方法
OpenWrtubus 経由の LuCI ログイン:該当する wifi-iface のキー、uci commit、Wi-Fi の再読み込み
MikroTik RouterOS 7REST 経由のルータログイン:ネットワークが使うセキュリティプロファイルまたはインラインのパスフレーズ(wifi、wifiwave2、従来の wireless)
UniFi コンソールUniFi ペインのローカル API キー(Network 10.1 以降)。コンソールが管理下のすべてのアクセスポイントに反映
その他各ルータの Web UI へのリンク付き手動で変更チェックリスト

変更するのはパーソナル(WPA2/WPA3 の事前共有キー)ネットワークだけです。エンタープライズ、オープン、アップリンク(ステーション)のネットワークには触れず、別のネットワークも使っている RouterOS のセキュリティプロファイルは、そのネットワークのパスワードまで変わってしまうため拒否します。変更後はこの Mac を再接続でこの Mac を接続し直し、参加用コードを表示でスマートフォンが読み取れる QR コードを表示し、失敗したものを再試行用に選択で失敗したルータだけをやり直せます。

セキュリティ新しいパスワードは保存も記録もされず、AI 管理者にも渡されません。監査ログにはネットワーク名と変更したルータの台数だけが記録されます。ウインドウを閉じる前にパスワードマネージャに保存してください。OpenWrt の Web 画面は通常プレーン HTTP のため、そのルータではパスワードが暗号化されずに LAN を通ります。ロールアウトはそのルータに印を付けます。可能なら HTTPS のアドレスか Tailscale を使ってください。

9.14Power over Ethernet:電源ボタンのない機器の電源ボタン

アクセスポイント、カメラ、ドアコントローラ、デスクフォンには電源スイッチがありません。唯一の電源は接続先のスイッチポートです。そのため、応答しなくなった機器の復旧手段である「電源を入れ直す」には、通常ベンダの Web UI にログインするか、キャビネットまで歩く必要があります。

Power over Ethernet ペインは、そのポートをボタンに変えます。管理スイッチを IP で追加すると、ポートごとに PoE の状態(給電中、検索中、障害)、受電機器のクラス、優先度、スイッチが報告していれば消費電力が表示され、電源のオン/オフと電源の入れ直しが行えます。さらにスイッチの電力バジェット(総容量、使用中の電力、スイッチ自身の使用率しきい値の超過警告)も表示します。しきい値を超えるとスイッチは優先度の低いポートから給電を止めるため、ポート優先度もここで変更できます。

幅広く動作するのは PoE が標準化されているからです。RFC 3621 の POWER-ETHERNET-MIB は、ほぼすべての管理スイッチ(Cisco、Aruba/HPE、Netgear、TP-Link/Omada、Ubiquiti、MikroTik、D-Link、Zyxel)が実装しています。読み取りにはデバイス検出の SNMPv2c/SNMPv3 プロファイルを使います。SNMPv2c のポート電源操作には別の読み書きコミュニティをスイッチごとに設定し、Keychain に保存します。SNMPv3 は、認証済みユーザにスイッチ側で書き込み権限がある場合だけ同じプロファイルを使います。電源を切る操作には意図的な権限と確認が必要で、任意 OID 書き込みは公開しません。監視を有効にすると、障害状態のポートや電力バジェットを超えたスイッチがアラートに上がります。

ベンダーのコントローラ。エントリを追加するときに種類を選びます。SNMP のほか、コントローラ自身の API も使えます:UniFi コンソールまたはコントローラ(ローカル管理者アカウント、または Network API キー)、TP-Link Omada コントローラ、REST 経由の MikroTik RouterOS 7、NETGEAR Smart Managed Plus スイッチ(GS305EP、GS308EP、GS316EP。API がないためスイッチ自身の Web ログイン経由。Smart Managed Pro は SNMP)、Dashboard API キーによる Cisco Meraki。ポートはスイッチごとにまとめ、使用中のワット数と、コントローラが把握していれば各ポートの給電先デバイス名も表示します。UniFi、MikroTik、NETGEAR、Meraki はスイッチ自身がポートをサイクルするので、サイクル中のアクセスポイントがこの Mac 自身の接続を担っていても電源は戻ります。Omada のポートは一度オフにしてから元の設定どおりに戻します。自己署名証明書のコントローラは最初に SHA-256 フィンガープリントを表示します。コントローラと照合して一度承認してください。後で証明書が変わると、新しいものを承認するまでコマンドを送りません。

Web のみのシステム、ピン留め、スイッチ全体。公開 API のないクラウド管理製品(Aruba Instant On、Zyxel Nebula、NETGEAR Insight、EnGenius Cloud、Grandstream GWN、RUCKUS One、D-Link Nuclias)はWeb UI のみとして追加します。FrontierStack はそのポートを切り替えられないため、リンクしたデバイスにはボタンの代わりに… を開いて電源サイクルのリンクが表示されます。ピン留めすると、コントローラ、スイッチ、Web のみのシステムがピン留めデバイスと Places に Web ページへのリンク付きで並びます。すべてサイクル…は 1 台のスイッチの PoE デバイスをまとめて再起動します。ポートをまとめてオフにし、一度だけ待ってから、まとめて戻します。

デバイスから。どのデバイスのページでも、電源コントロールを追加… ▸ PoE スイッチポートで給電元のポートにリンクできます。コントローラがそのデバイスを検出したポートが最初に表示されます。これで電源コントロールのコンセントが作られ、デバイス自身の電源セクションでオン、オフ、サイクルができ、ヘルスチェックの失敗後に自動で電源サイクルでき、確認のうえで FrontierStack AI からもサイクルできます。

スクリーンショット追加予定
図 9.2. Power over Ethernet ペイン:ポート一覧の上にスイッチの電力バジェット、1 つのポートが電源入れ直し中。撮影手順: capture: open Power over Ethernet with one switch added and its ports listed

9.15Mellanox/NVIDIA ネットワーク

NVIDIA の Mellanox 製品群によるデータセンタのスイッチングには、専用のパネル Mellanox Networking(フルフリート)があります。読み取れるのは 6 種類です:Onyx(JSON API)または Cumulus Linux 5.x(ポート 8765 の NVUE REST API)の Spectrum イーサネットスイッチ、MLNX-OS の Quantum/SwitchX InfiniBand スイッチ、ファブリックマネージャ UFM、BMC の Redfish 経由の BlueField DPU、連携ユーザで SSH して読むフリートサーバの ConnectX NIC。

各デバイスは管理アドレスと読み取り専用アカウントで追加します:Onyx/MLNX-OS は monitor 権限のユーザ、Cumulus は nvue-monitor ユーザ、UFM は Monitoring Only、BMC は ReadOnly アカウント。自己署名証明書は指紋つきで表示されるので、コンソールと照合して承認してから、初めてパスワードが送られます。デバイスはアラートの巡回で 3 分ごとに確認され、確認のたびにセッションをログアウトします。

ポート。最初の読み取りで UP のポートがすべて監視対象になります。監視中のポートはリンクが落ちたとき、そして 2 回の確認の合間に落ちて戻ったときにもアラートを出します — 各ポート自身のリンクダウンカウンタを読むので、確認時に UP でも不安定なケーブルは見つかります。管理者が無効にしたポートはアラートを出しません。InfiniBand では LinkUp なのに Active でないポートを指摘します。通常はサブネットマネージャが動いておらず、有効なのに動いていない組み込み SM はそれ自体がアラートです。

ハードウェアとファブリック。電源・ファンの故障、臨界値(NIC と DPU は設定したしきい値)を超えたセンサ、エラー状態の devlink health レポータ、Arm OS がクラッシュした BlueField、UFM の Critical/Major アラーム(ファブリックごとに 1 件にまとめます)が、いつものアラートチャネルに届きます。NVIDIA の MFT を入れ、mlxfwmanager にパスワードなしの sudo を許可すれば、ConnectX のファームウェア更新も表示します。AI Administrator は router_info の report=mellanox で同じ状態を読めます。

9.16Show Network:クラブ・ステージ・ショーの監視

ショーは、誰も見ていないネットワークの上で動いています。何かが静かになるまで、気づかれることはありません — CDJ がリンクから外れる、照明ノードが応答しなくなる、タイムコードが止まる、NDI フィードがメディアサーバから消える。Show Network ペイン(サイドバー ▸ AV & Stage)は、この Mac をそのネットワークの監視役にします。ショーを動かすのではなく、ショーを動かしているものすべてを見守り、どれかが消えた瞬間に知らせます。

9.22.7センサス(一覧の要約)

ペインの上部には、Mac が接続している各ネットワーク/VLAN ごとに、機器自身のアナウンスから数えた平易な 1 文が表示されます。例:「en5 · 2.0.0.0/8 上に Art-Net ノード 14 台、使用中のユニバース 73、sACN ソース 2、NDI ビデオソース 1 があります。」会場に入ったときの「全部そろっているか?」への最短の答えであり、ケーブルを動かした後に最初に読む場所です。

9.22.8Show Dashboard

センサスの下の Show Dashboard は、ショーの各要素をタイルで表示します。

タイル表示内容
プレーヤーとミキサーPro DJ Link の各プレーヤーを番号で(CDJ 1 online)、DJM ミキサー、rekordbox。
テンポビートパケットからの BPM。プレーヤーステータスのパケットがこの Mac に届く場合はマスターデッキ、届かない場合は再生中のデッキ。
ResolumeWeb サーバが応答する、この Mac で動いている、または NDI 出力が見えるときにオンライン。
NDIネットワーク上の NDI ビデオソースの数。
Art-Net/sACN使用中のユニバースと、それを送っている Art-Net ノード・sACN ソース。
タイムコードCoreMIDI の任意のソースからの MIDI タイムコードと Art-Net タイムコードによる 正常/停止。
LED システム見つかった、または追加した WLED コントローラ・ピクセルコントローラ・LED プロセッサ。
制御OSC エンドポイント、RTP-MIDI セッション、TCNet ノード。

その下の一覧には各タイルの背後にあるすべての機器が並び、行ごとに Watch ボタンがあります。SMPTE LTC は音声信号のため直接は読みません。MTC または Art-Net タイムコードに変換すれば(多くの LTC インタフェースや ShowKontrol が変換します)タイムコードのタイルに表示されます。

9.22.9Arm Show

開場前に Arm Show を押します。FrontierStack はその時点でオンラインのもの — デッキ、ミキサー、照明ノード、sACN ソース、NDI ソース、LED コントローラ、Link セッション — をすべて監視し、どれかが消えればいつものチャネル(第 11 章)で Show Network グループのアラートを送ります。ショーが終わったら Disarm で監視一覧をクリアします。機器を個別に監視・解除することもできます。

9.22.10受信のみの検出と、ポートを譲る動作

ほぼすべては、問い合わせではなく受信によって見つけます。

プロトコル受信する場所
Pro DJ Link(CDJ/XDJ、DJM、rekordbox)UDP 50000–50002:キープアライブとビートパケット
Denon StageLinQ(Engine DJ)UDP 51337
Ableton Linkマルチキャスト 224.76.78.75:20808:ピア、テンポ、セッション
TCNet(ShowKontrol)UDP 60000
sACN/E1.31239.255.250.214:5568 のユニバースディスカバリ。データユニバースは指定した場合のみ
NDI、OSC、WLED、RTP-MIDIBonjour
MIDI ソースと MIDI タイムコードCoreMIDI(入力のみ)

FrontierStack が送信するのは Art-Net の ArtPoll だけです。1 回のディスカバリブロードキャストを 30 秒ごとに繰り返し、新しいノードが自動で現れるようにします。自分で Poll Art-Net Now を押したい場合は、Settings の Poll for Art-Net nodes automatically をオフにします。

ショーソフトは UDP ポートを専有する必要があります。rekordbox、Engine DJ、ShowKontrol、Beat Link Trigger、PRO DJ LINK Bridge、QLC+、Resolume、MadMapper、QLab などが同じ Mac で動いている間は、対応するリスナが閉じ、ペインにその旨が表示されます。ソフトとネットワークの両方を見るには、ショーネットワーク上の 2 台目の Mac から監視してください。

セキュリティArtPoll は、Places に登録されていないオープンなネットワークでは送信しません。会場のゲスト Wi-Fi につないだノート PC が見知らぬ相手にブロードキャストすることはありません。sACN のデータユニバースを指定すると、ライブの優先度とレートを読むためにそのマルチキャストグループ(最大 16)に参加します。Wi-Fi では避けてください。

9.22.11Show Servers

Show Servers の Add Server で、メディアサーバ・LED コントローラ・照明デーモンのアドレスを追加します。各サーバは 30 秒ごとに HTTP で確認し、応答しなくなるとアラートを送ります。いくつかは実際の状態を報告します。

  • Resolume — Web サーバ経由(Preferences ▸ Webserver)。
  • WLED — LED 数、フレームレート、消費電流、Wi-Fi 信号、Art-Net/sACN のライブ入力。On/Off と明るさも操作できます。
  • Falcon Player(FPP) — プレーヤーの状態と現在のシーケンス。
  • OLA と QLC+ — デーモンや Web アクセスの応答。OLA はバージョンとユニバース数も表示します。

NovaStar/COEX、Brompton Tessera、Colorlight、MADRIX 5、Lightjams は、Web UI またはリモートポートの応答を確認します。受信カード、キャビネット温度、トポロジは各ベンダのツールで扱います。

スクリーンショット追加予定
図 9.3. Show Network ペイン:Show Dashboard のタイルの上にセンサスの 1 文、ショーは Arm 済み。撮影手順: capture: 検証用のショーネットワーク(Art-Net ノード数台、NDI ソース、CDJ 2 台)で Show Network を開き、Arm Show を押した状態

9.22.12プリセット

9.22.13警告灯、ピン留め、電源

舞台監督は一晩中画面を見ていられないので、Show Network はライトを点滅させて知らせることができます。警告灯 で WLED のストリップや回転灯、ローカルブリッジの Philips Hue(ブリッジのリンクボタンを押してからペアリング)、または HTTP リクエスト(アラーム URL と解除 URL。PATLITE のネットワーク対応積層信号灯、回転灯を切り替える Shelly リレー、Home Assistant の Webhook など)を追加します。監視対象がダウンしている間(設定した短い待ち時間の後)ライトは赤く点滅し、復帰するか確認を押すと元の状態に戻ります。1 分ごとのアラート巡回ではなく、秒単位で反応します。

ピン留め すると、プレーヤ、ミキサ、Art-Net ノード、WLED、Falcon Player、LED プロセッサがデバイス検出に加わり、デバイスパネルで電源コンセントや PDU、SwitchBot プラグ、UPS をリンクできます。ピン留めはプランの機器数の上限に含まれます。ピン留めした監視対象には 電源を入れ直す… と、任意の 自動再投入(待ち時間を選んだ場合のみ、最大 2 回、30 分間隔)が表示されます。ショー機器の UPS はタイルに表示され、バッテリ運転になると警告灯が点滅します。LED ウォールプロセッサ(NovaStar/COEX、Brompton Tessera、Colorlight)と MADRIX は Full Fleet の「ハイエンドのショーシステム」です。

Clubs & Bars プリセットには Show Network、AV Feeds、Power over Ethernet が含まれます。フェス・ツアー・企業イベントには、ショーネットワークの基盤(Places、VPN、メッシュネットワーク)を加えた Stage & Shows から始めてください。他の構成には Show Supervisor アドオンを追加できます。Pro DJ Link のプレーヤーとミキサー、LED ウォールプロセッサ、WLED、ピクセルコントローラは、到達性の確認のためデバイス検出にピン留めすることもできます。

9.17発電機:イベントと非常用の電源

コンサート、フェスティバル、屋外イベントはレンタルの発電機で動いており、発電機が止まればステージは静まり返ります。発電機 ペイン(AV & Stage の Show Network の隣)がそれを見守ります。レンタル機材はメーカーが混在するため、接続方法は 3 つあります。

  • このネットワーク上のコントローラ。 多くのセットは Deep Sea Electronics、ComAp、DEIF、CRE、Datakom のコントローラで制御され、これらは Modbus TCP で通信します。コントローラを制作ネットワークにつなぎ(DSE は Ethernet ポートか DSE855 ゲートウェイ経由)、IP を追加すると、FrontierStack が機種を識別して数秒ごとに読み取ります。クラウド契約もモバイル回線も不要です。対応マップ:DSE(GenComm。機種ファミリーごとにアラーム名を表示)、ComAp InteliLite 4、DEIF AGC 150、CRE GENSYS Compact、Datakom D-300/500/545/700。
  • ComAp WebSupervisor:ComAp のクラウドに報告しているセット向け。API キーとアプリケーションのクライアント ID・シークレットで接続し、監視するユニットを選びます。値は 1 分ごとに更新されます。
  • AEMP 2.0 テレマティクス(ISO 15143-3):レンタル業界で広く使われる Trackunit、Atlas Copco FleetLink など、多くの建機メーカーのポータル。アカウントを接続し、フリートから監視するセットを選びます。スナップショットは 5 分ごとに更新され、Trackunit の拡張データでは発電機自身の電圧、周波数、負荷も得られます。テレマティクスは燃料や「まだ運転しているか」の確認には向きますが、セット途中のトリップを捉えるには遅すぎます。

各セットについて、運転状態とモード、kW と負荷(コントローラが負荷を報告しない場合は 定格 kW を設定)、燃料(運転データが 20 分たまると残り時間の目安も表示)、相ごとの電圧と電流、周波数、冷却水温、油圧、バッテリ電圧、運転時間、コントローラ自身のアラーム名を表示します。

開場時に 運転中のセットをアーム を押します。その時点で運転中のセットはすべて運転し続けるべきものとして扱われ、停止、故障、応答なしになるとアラート(グループ「発電機」)が送られます。燃料低下、設定時間内の燃料切れ予測、高負荷、欠相、許容範囲外の周波数・電圧もアラートになります。周波数は既定で 50 Hz と 60 Hz のうち近いほうを基準にします(両方が使われる日本では重要です)。電気的な異常は 15 秒続いたときだけ扱うため、ステージの機材を一斉に投入しても誤報しません。警告灯 をオンにしたセットは、重大な問題で Show Network の警告灯を点滅させます。

セキュリティModbus にはパスワードも暗号化もありません。FrontierStack はプライベートまたは VPN アドレスのコントローラとだけ通信します。コントローラのポート 502 は決してインターネットに公開しないでください。このペインは監視専用で、FrontierStack から発電機を始動・停止することはできません。発電機のそばにいる人が、突然始動するかもしれないと心配する必要はありません。

Stage & Shows プリセットと Show Supervisor アドオンには発電機ペインが含まれます。AI 管理者は ups_status(kind: generator)ですべてのセットを読み取れます。

9.18インターネットヘルスと速度テスト

Internet Health ペインは回線そのものを見るための画面です。Targets の一覧(既定では Cloudflare の 1.1.1.1、Google と Quad9 の DNS、AWS の 2 リージョン、Tailscale のコーディネーションサーバ)を継続的に ping し、レイテンシとパケットロスを表示して 30 秒ごとに再テストします。ICMP をブロックするホストは :443 への TCP 接続レイテンシにフォールバックします。対象一覧の編集は、Internet セクションのヘッダにある歯車ボタンで開くダイアログから行います。一度設定すれば邪魔になりません。同じセクションには IPv6 の判定も表示されます。スイープごとに、グローバル IPv6 アドレスの割り当て、IPv6 トラフィックが実際に機能するか(Cloudflare/Google の v6 エニーキャストへの ping)、ネットワークが広告する IPv6 DNS サーバが応答するかを確認します。最も強く警告するのは広告されているのに壊れている IPv6 です。ルータがアドレスと IPv6 DNS サーバを配布し、接続は IPv6 を先に試すため、IPv4 へのフォールバックまですべてが固まる状態です。ペインは分かりやすい言葉で状況を示し、応答しない DNS サーバを名指しし、ルータが原因であることを示します。AI 管理者は internet_speed(check=ipv6)で同じ診断を実行でき、diagnose ツールの ping6/dig/scutil でさらに詳しく調べられます。サイドバーのインターネットヘルス行にはステータスドットが表示され、軽量なバックグラウンドスイープ(起動時、その後 5 分ごと)で更新されます。正常なら緑、IPv6 の故障や大きなパケットロスはオレンジ、すべての対象に到達できない場合は赤になります。Live Traffic は全アクティブインターフェイスのリアルタイムスループットをグラフ化し、Addresses & Networks は各インターフェイス、そのサブネット(直接到達できるネットワーク)、ゲートウェイを一覧します。組み込みの traceroute は、トラフィックが横切る ISP やトランジット事業者を示します。Speed Test セクションで Test Now を押す — または AI に internet_speed を頼む — と、ダウンロード・アップロード・レイテンシ・応答性を測定します。Ookla の speedtest CLI があればそれを、なければ Apple の networkQuality を使います。実行中は speedtest.net 風の 2 つのメータがダウンロードとアップロードをリアルタイム表示します — 針・フェーズ・現在の Mbps を Ookla のストリーミング出力から更新します(内蔵の networkQuality は最後にしか結果を返さないため、メータは待機表示になります)。また、接続したテストサーバ(プロバイダと都市)を実行中と結果の両方に表示します。テストが失敗した場合は、何も表示せず終わるのではなく理由を表示します。ただし Wi-Fi 接続の Mac では、ISP と同じくらい Wi-Fi 自体を測ってしまいます。そこで同じセクションからテストをルータや有線サーバ上で実行できます。ルータ/サーバからでデバイスを選ぶと、FrontierStack が SSH(鍵認証。ルータは root)でそのデバイス上にプローブを実行します。Ookla/speedtest-cli があればそれを、なければ curl による単一ストリームの推定値を使います。ルータ側の測定値が Mac より大幅に速ければ、ボトルネックは回線ではなく無線区間です。AI も internet_speed の source で同じ比較ができます。

1 回のテストで分かるのはその瞬間だけです。その下の Speed History(速度の履歴)セクションでは、回線が遅くなってきているかどうかが分かります。スピードテストを定期的に実行をオンにし(テストのたびに実際の帯域と、従量制の回線では実際のデータ量を使うため、初期設定はオフ)、6 時間ごと・毎日(推奨)・2 日ごと・毎週から選びます。実行時刻はランダムな分にずらされ、毎日以上の間隔では実行する時間帯で 02:00〜05:00 のような静かな時間帯に限定できます。結果を比べやすくなり、誰かのビデオ会議を邪魔することもありません。インターネットに接続できない、従量制の回線や省データモード(iPhone のインターネット共有など)、Mac がバッテリー駆動、別のテストを実行中のときは、失敗にはせずスキップして後で再試行します。指定した時刻に Mac がスリープしていないことが必要です。Ookla CLI がなければ内蔵の networkQuality で測定し、各結果にはどのエンジンで測ったかを記録します。ルータやサーバからもテストでは、ルータ自身のテストも同じスケジュールで実行でき、この Mac の Wi-Fi を介さずに回線を測定できます。履歴はデバイスごとに分かれ、2 台以上を定期テストするには Full Fleet が必要です。各結果(日時、ダウンロードとアップロード、エンジンが報告する場合はレイテンシとジッタ、エンジン、テストサーバ、この Mac が Wi-Fi(とそのネットワーク)か Ethernet か)は測定元ごとに最大 400 件保存され、基準の帯と一緒にグラフ表示されます。直近 7 日間の中央値(2 日以上にわたる定期テスト 4 件以上)が、その前の 28 日間の中央値(8 件以上)の 65% を下回ると、アラートの「Network & Routing」に長期的な低下の警告が、最近と基準の Mbps と変化率付きで表示されます。比較するのは同じ測定元・同じエンジン、この Mac の場合はさらに同じ接続種別と Wi-Fi ネットワークの結果どうしだけです。そのため、ノート型 Mac で自宅とオフィスを行き来しても低下とは判定しません。手動テストはグラフには表示しますが、遅いと感じたときに行うことが多いため傾向の判定には使いません。低下の原因は 2 通り考えられ、警告にも両方を示します。回線やプロバイダの品質が落ちたか、ネットワーク上の何かがひそかに帯域を大量に使っているかです。ルータのデバイス画面で使用量と見比べ、見覚えのない機器がないか確認してください。安いプランへの変更など意図した変化のあとは、新しい基準として受け入れるで今の速度を基準にし、警告を解除できます。AI 管理者も internet_speed(check=history)で同じ履歴と判定を読み取れます。

9.19ネットワークパス:スイッチ・ハブとホップごとの遅延

ネットワークパスペインは、IP ツールでは答えられない物理的な問い — この通信は実際にどの機器を通り、どれが遅くしているのか? — に答えます。LAN パスはマネージドスイッチのブリッジテーブルと LLDP 隣接情報を SNMP で読み取り、この Mac と LAN デバイスの間のつながりを図示します。各リンクにポートと速度を表示し、最も遅いリンクを強調。1 つのポートを複数のデバイスが共有している箇所には、直接問い合わせできない隠れたアンマネージドスイッチ/ハブを推定として破線で描きます。デバイスを特定は 1 台を突き止めます:IP・MAC・メーカー・種類、そして接続されているスイッチポートまで。ビジュアルトレースルートは各ホップの往復時間をグラフ化し、遅延を最も追加しているホップを強調します。スイッチの読み取りにはデバイス検出で設定した SNMPv2c/SNMPv3 プロファイルを使います。アンマネージド機器は本質的に見えないため推定表示します。開くと、この Mac とルータの間を自動で図示し、デバイスリンク速度は既知デバイスのネゴシエート速度をスイッチポートから調査して、遅いリンクと半二重を先頭に表示します。

9.20サブネットと VLAN

サブネットペインは、FrontierStack が把握しているすべてのネットワーク — この Mac のインタフェースと VPN 経路、ルータの LAN、サーバやデバイスがつながっているネットワーク — と、それぞれに何があるかを一覧します。上部の切り替えで同じネットワークを 3 通りに表示します:リスト、VLAN 別、図で示す VLAN レイアウトです。

各サブネットは、手に入るいちばん確かな根拠で VLAN に置かれます。最優先は自分の指定です。何も報告しないネットワークは、サブネットを右クリックして VLAN に割り当て… を選びます(割り当てはほかの設定と一緒に保存され、設定のバックアップにも含まれます)。次に、API で VLAN を一覧できるルータ — OPNsense、REST API パッケージを入れた pfSense、MikroTik RouterOS、UniFi — と各 VLAN インタフェースのアドレス、そして igb0.10 のようにタグ番号を名前に含むルータのインタフェース。その次がこの Mac 自身の VLAN インタフェース。最後がマネージドスイッチで、サブネットのデバイスの大半がスイッチの転送テーブルで 1 つの VLAN 上に学習されていれば、そのサブネットをその VLAN に置きます。置いたサブネットにはどの根拠によるかを表示し、残ったものは VLAN タグ不明にまとめます。

VLAN レイアウトはその結果を描きます。上に VLAN を運ぶルータとスイッチ、その下に 802.1Q トランク、そして VLAN ごとに色分けした列 — サブネットとゲートウェイ、使っているスイッチポート(塗りはタグなしのアクセスポート、枠線はタグ付き)、その上のデバイスとサーバ。どれもクリックでそれぞれのペインを開きます。スイッチを読み取るはポートを埋めます。デバイス検出で見つけたマネージドスイッチに、VLAN 名、ポート所属、ネイティブ VLAN、VLAN ごとの転送テーブルを、ネットワークパスと同じ読み取り専用の SNMP プロファイルで問い合わせ、複数の VLAN をタグ付きで運ぶポートをトランクとして示します。スイッチの読み取り結果はセッションの間だけ保持されるので、配線を変えたら再度押してください。AI 管理者に「NAS はどの VLAN?」と聞けば、router_info で同じ内容を読み取ります。

スクリーンショット追加予定
図 9.4. VLAN レイアウト表示のサブネットペイン:トランクの上にルータとマネージドスイッチ、管理・ユーザ・IoT の各 VLAN の列とそのスイッチポート。撮影手順: capture: VLAN が 3 つあるラボネットワークでサブネットを開き、VLAN レイアウトを選んで「スイッチを読み取る」を押して撮影
ヒントサブネットが違う VLAN の列に出るのは、たいていそのデバイスがトランクポートで学習されていたためです。自分で割り当ててください — 自分の割り当てが常に優先されます。

9.21Debug Share:localhost サーバを一時的に公開

localhost で動く開発サーバを同僚やスマホに見せたいとき、Debug Share ペインがそれをセッション中だけ公開し、その後自ら閉じます。ポートを入力(または Scan localhost で稼働中のサーバを検出)し、Expose via で公開方法を選び、Auto-close 時間を設定して、Open debug session を押します。すべての共有は FrontierStack 終了時にも自動で閉じます。

方法到達範囲
Cloudflare Quick Tunnel公開 *.trycloudflare.com URL、アカウント不要 — クライアントやスマホへの手早いプレビューに最適
Tailscale Serve非公開 — tailnet 内からのみ到達可能
Tailscale Funnel公開、Tailscale ノード経由(tailnet で Funnel を有効化する必要あり)
LAN forwarder0.0.0.0:<自動> → 127.0.0.1:port ブリッジ。同一 LAN の他マシンがループバック専用サーバへ到達できる

LAN フォワーダには 2 つの追加機能があります。ホストファイアウォールがオンなら、ペインに Open port in firewall が現れ、そのポートをセッション中だけ pf ルールで許可します。また Outside access ピッカーで UPnP・NAT-PMP・OPNsense API 経由の WAN ポートをマップし、DDNS host と組み合わせれば、LAN 共有をパブリックインターネットから到達可能にできます — マッピングは共有終了時に削除されます。AI 管理者もセッションの開始・一覧・終了ができます(debug_share_open/_list/_close)。「Allow changes」がオンなら MCP 経由でも可能です。

Debug Share のセッションはあくまで一時的です。自分の開発サーバを期限なしでテイルネットから開けるようにしておきたい場合は、Localhost ペインでサーバのTailscale でも公開をオンにします(第 4 章)。同じポートでこの Mac の Tailscale アドレスに公開され、LAN からは到達できず、サーバの停止とともに閉じます。AI 管理者は debug_share の action serve でフォルダをそのように起動し、開くべきアドレスを報告できます。

セキュリティDebug Share は TTL を中心に設計されています。各セッションは自動終了タイマーを持ち、アプリ終了時にも撤去されるため、露出があなたの注意を超えて生き残ることはありません。ウィンドウは短く保ち、トンネル方式(受信ポートを開きません)を優先し、クイックトンネル URL はそれが生きている間、知る者すべてに対して公開であることを忘れないでください。

9.22名前付きトンネル:恒久的な公開ホスト名

クイックトンネルはあえて使い捨てです。この Mac のサービスを実際のアドレスで恒久的に到達可能にしたいとき — セルフホストのアプリ、社内ダッシュボード、Webhook 受信口など — は、代わりに名前付きトンネルを使います。サービスに自分の Cloudflare ゾーン上の安定したホスト名(例:app.example.com)を与え、再起動しても維持され、他のトンネル同様に着信ポートを一切開きません:Mac が Cloudflare のエッジへダイヤルアウトするため、フォワードするものも、ポートスキャンで見つかるものもありません。

Cloudflare ペインの名前付きトンネルセクションで作成します:新規トンネル…、続いて自分のゾーン配下のホスト名と、その前段に置くローカルポート。FrontierStack はすでに保持しているトークンを使い、Cloudflare API 経由でセットアップ全体を実行します — トンネルを作成し、イングレスルール(hostname → http://localhost:PORT)を書き込み、ホスト名を <id>.cfargotunnel.com に向けるプロキシ済み CNAME を追加し、cloudflared service install で永続デーモンをインストールします。最後の手順には一度きりの管理者プロンプトが必要です(/Library 配下に LaunchDaemon を書き込みます)。cloudflared 自体は初回利用時に Homebrew から取得されます。トンネルと DNS の作成だけを行い、cloudflared を別ホストで実行したい場合は、この Mac で今すぐ実行のチェックを外します。削除はそのすべて — デーモン、DNS レコード、アカウント側のトンネル — を巻き戻します。AI 管理者も同じ 3 つの動詞(tunnel_create/tunnel_list/tunnel_delete)を持ち、作成はサービスをインターネットに公開するため赤い確認でゲートされます。

メモcloudflared service install は Mac ごとに 1 つのシステムデーモンを実行するため、ローカルで一度に動く名前付きトンネルは 1 つです。追加の名前付きトンネルをアプリで作成・ルーティングし、その cloudflared コネクタを他のマシンで実行することは可能です — アカウント・ホスト名・DNS はいずれの場合もセットアップされます。

各トンネルの行には、ライブの状態行とダウン時に通知するベル(任意)もあり、保護…でホスト名の前に Cloudflare Access のサインインを置けます — 第 7 章を参照。

FrontierStack ユーザマニュアル · バージョン 1.0.0 · 第 9