災害時でも利用可能なローカルネットワーク環境を構築する


災害時などインターネット接続ができない状況下で、ローカルなネットワークが活用できないかを考えてみました。
例えば避難所のような閉じられた空間であれば、外部との通信はできなくともそこにいる人たちが情報を共有できる仕組みは有効そうです。
そこでローカルネットワーク内で安否確認システムを公開する、という手段をまとめました。

ローカル安否確認システムの概要

想定ケース

以下のような状況を想定しています。

  • 災害が発生し、避難所に避難している
  • 利用可能なノートPCが避難所にある、または持ち込むことができた
  • インターネット接続はできない
  • 電源は確保されている

ノートPCの条件

ノートPCは以下の条件を満たす一般的なものとします。

  • モバイルホットスポット機能がある
  • Pythonが利用可能である

推奨OS

使用するノートPCにはWindows端末を推奨します。
Windowsのモバイルホットスポット機能の方がLAN内アクセスが容易にできます。
macOSの「インターネット共有」機能でも不可能ではありませんが、制限が多く難易度が高いためです。

ネットワーク構成イメージ


事前準備

肝心の安否確認システムは事前に構築しておく必要があります。
この記事ではHTMLのモックを使って代用しています。

Webサーバの起動テスト

まずはローカル端末単体でWebサーバ公開ができるかをテストします。

公開フォルダの作成

  1. Cドライブ直下に emergency フォルダを作成します。
    ここが今回の公開場所になります。
  2. 公開テスト用のテキストファイル test.txt を作成します。
    ファイルの内容は何でも構いません、今回は from emergency folder と記載しておきます。

Pythonでサーバ起動

  1. コマンドプロンプトを起動し emergency フォルダに異動します。
    cd C:\emergency
  2. 下記コマンドでサーバを起動します。
    python -m http.server 8080
  3. サーバが起動すると以下のメッセージが表示されます。
    Serving HTTP on :: port 8080 (http://[::]:8080/) ...

ブラウザからアクセス

  1. ブラウザを立ち上げ http://localhost:8080/ にアクセスします。
  2. 以下のようにサービスを実行しているフォルダ配下が表示されます。

  3. test.txt のリンクをクリックすると、今回作成したテスト用ファイルの内容が表示されます。

  4. 確認ができたら ctrl + c で処理を終了します。

外部端末に公開する

ここまでで確認した内容を、今度は外部の端末に対して公開できれば良いわけです。
次はテキストファイルではなく安否確認システムのトップページにアクセスします。
今回はモックを使用していますが、本番では正式なWebシステム(ローカルで完結するもの)を準備しておく必要があります。

公開用ファイルの配置

  • emergency フォルダに公開用ファイルを配置します。
  • 今回は安否確認システムのダミー用ファイルを使っています。
  • 実際にシステムを公開する場合はWebシステムの資源一式を配置し index.htmltop.html などのトップページに該当するファイルからアクセスすることになります。

モバイルホットスポット機能をオンにする

  1. 設定画面を開き ネットワークとインターネット > モバイルホットスポット をたどります。
  2. モバイルホットスポットをオンにします。

  3. 接続するための情報が表示されます。

Pythonでサーバ起動

先ほどと同じ作業です。

  1. コマンドプロンプトを起動し emergency フォルダに異動します。
    cd C:\emergency
  2. 下記コマンドでサーバを起動します。
    python -m http.server 8080
  3. サーバが起動すると以下のメッセージが表示されます。
    Serving HTTP on :: port 8080 (http://[::]:8080/) ...

端末にアクセスする

今回はスマホを使ってアクセスしてみます。

  1. QRコードを読み取ってアクセスします。
  2. 接続情報が表示されました

  3. IPアドレス 192.138.137.175 が割り当てられています。
  4. ipconfit コマンドで本体側のIPアドレスを確認します。

    Wireless LAN adapter ローカル エリア接続* 12:
    
    接続固有の DNS サフィックス . . . . .:
    リンクローカル IPv6 アドレス. . . . .: fe80::409e:e40e:d93f:294d%14
    IPv4 アドレス . . . . . . . . . . . .: 192.168.137.1
    サブネット マスク . . . . . . . . . .: 255.255.255.0
    デフォルト ゲートウェイ . . . . . . .:
  5. スマホには 192.138.137.175 のIPアドレスが割り当てられていますので、この 192.168.137.1 が接続元となります。
  6. スマホのブラウザから 192.168.137.1:8080 にアクセスします。
  7. 先ほどと同様に emergency フォルダ配下が表示されました。

  8. ダミーシステムのトップ画面である anpi_mock.html にアクセスします。
  9. ダミーシステムを起動することができました。

まとめ

以上より、インターネット接続ができない状況下でも、ノートPCを使ってWebサービスを公開することができました。

他にも以下のような活用法があります。

  • 災害時に特化したWiki、ノウハウ公開
  • 避難経路や避難所の電子地図を公開
  • 食料や医薬品などの物資・在庫管理システム
  • 災害対応現場担当者の受け持ちエリア・シフト管理システム

お問い合わせ

普段クラウドに依存しているサービスのうち一部でもローカルに置き換えたり、データを退避しておくだけで事業継続性を確保できます。
非常時にも業務を止めないための対策支援はお問い合わせページよりお気軽にご相談ください。
題名を「事業継続計画相談」にしていただくようお願いします。

  • 災害時に率先して情報共有を図りたい
  • 非常時に業務を止めたくない
  • 非常時に社員がとるべき行動を規定しておき安全を確保したい
    など